OpenTechEngine / OpenTechBFG

Engine based on (RB) Doom 3 BFG aiming to allow the creation of standalone games
Other
84 stars 11 forks source link

How to Approach OTE Development #28

Closed DoomedNerd closed 8 years ago

DoomedNerd commented 9 years ago

I've got OTE to compile with VS10 with one compiler error involving idLib::strcmp. I renamed all instances of strcmp to "strCmp," and viola. The OpenTechBFG.exe loads up, but the gui displays an empty game select menu that looks all wrong. It doesn't do much else. Is there a test map that it can load, because I can't get it to load up Doom 3 maps or the regular test maps. Is OTE in an unstable state of development, or am I doing something wrong, or what?

kortemik commented 9 years ago

It's a work in progress, it works with doom3 bfg assets just fine at the moment, but we are up to adding our standalone kit so one could create releaseable games with it. the assets branch has a test map and cegui_rebase has a menu wip system which is not based on flash.

On Wed, Mar 4, 2015 at 12:11 AM, DoomedNerd notifications@github.com wrote:

I've got OTE to compile with VS10 with one compiler error involving idLib::strcmp. I renamed all instances of strcmp to "strCmp," and viola. The OpenTechBFG.exe loads up, but the gui displays an empty game select menu that looks all wrong. The console says there is textures it can't find. It doesn't do much else. Is there a test map that it can load, because I can't get it to load up Doom 3 maps or the regular test maps. Is OTE in an unstable state of development, or am I doing something wrong, or what?

— Reply to this email directly or view it on GitHub https://github.com/OpenTechEngine/OpenTechBFG/issues/28.

DoomedNerd commented 9 years ago

I put the Doom 3 bfg assets in base folder, but it won't load most things up. It will load the Doom 3 bfg menu if I type into the console "maps testmaps/test." I'm not sure what I'm doing wrong, but RBDoom 3 BFG works perfectly with a clone setup...

Thanks for the info.

kortemik commented 9 years ago

Could you give me a screenshot of the menu? one needs to press enter when there is the "game selection" to get to the real menu.

On Wed, Mar 4, 2015 at 12:30 AM, DoomedNerd notifications@github.com wrote:

I put the Doom 3 bfg assets in base folder, but it won't load most things up. It will load the Doom 3 bfg menu if I type into the console "maps testmaps/test." I'm not sure what I'm doing wrong, but RBDoom 3 BFG works perfectly a clone setup...

— Reply to this email directly or view it on GitHub https://github.com/OpenTechEngine/OpenTechBFG/issues/28#issuecomment-77051107 .

DoomedNerd commented 9 years ago

Print screen isn't working for me on Win7 with OTE (not sure why.) F12 isn't working either... I'm pretty new to working with Doom 3 bfg source, so sorry if I made a dumb mistake. Pressing enter does get me to the real game menu. Starting a new game, or picking a map from the "Dev" tab only drops me back to the game menu with the console open. Actually, the bink intro video plays when I load the OTE.exe up, and the intro UAC movie plays when I load up a new game, but then brings me back to the main menu. It isn't telling me anything is wrong.

kortemik commented 9 years ago

i really suggest you try out the cegui_rebase branch on github, it has decent fixes merged and i can assist further with that

On Wed, Mar 4, 2015 at 12:47 AM, DoomedNerd notifications@github.com wrote:

Print screen isn't working for me on Win7 with OTE (not sure why.) I'm pretty new to working with Doom 3 bfg source, so sorry if I made a dumb mistake. Pressing enter does get me to the real game menu. Starting a new game, or picking a map from the "Dev" tab only drops me back to the game menu with the console open. It isn't telling me anything is wrong.

— Reply to this email directly or view it on GitHub https://github.com/OpenTechEngine/OpenTechBFG/issues/28#issuecomment-77055570 .

DoomedNerd commented 9 years ago

Okay, I'll try it out. Thanks for your help kortemik :+1:

I've done some small projects with CEGUI and Ogre 3d before, so it's possible that I can get that setup properly.

DanielGibson commented 9 years ago

@kortemik: I think you mentioned that the cegui gui editor (ceed) isn's as crappy/unstable as it seems on Linux, if it's built with the right dependencies. Can you write down somewhere (this project's wiki perhapos?) how to create working Linux binaries of it?

kortemik commented 9 years ago

Here this: http://cegui.org.uk/wiki/CEED#Build_CEGUI_and_PyCEGUI

And if I recall something like default renderer was needed too. I did not use our build settings but the general ones and with freetype and l ibxml2 and freeimage and
CEGUI_OPTION_DEFAULT_IMAGECODEC as FreeImageImageCodec note the stupid spelling image twice, that has propably been the wrong config as it was faulty in the old version of the instructions mentioned here http://static.cegui.org.uk/docs/0.8/build_options.html i got it fixed with mpreisler and ident

kortemik commented 8 years ago

[kordex@attitude build]$ cmake -DCEGUI_BUILD_PYTHON_MODULES=ON -DCEGUI_BUILD_RENDERER_OPENGL=ON -DCEGUI_BUILD_RENDERER_OPENGL3=ON -D CEGUI_BUILD_IMAGECODEC_FREEIMAGE=ON -DCEGUI_OPTION_DEFAULT_IMAGECODEC=FreeImageImageCodec -DCEGUI_BUILD_XMLPARSER_LIBXML2=ON -DCEGUI_OPTION_DEFAULT_XMLPARSER=LibXMLParser ../

And on fedora as it doesn't find glfw it would be: [kordex@attitude build]$ cmake -DCEGUI_BUILD_PYTHON_MODULES=ON -DCEGUI_BUILD_RENDERER_OPENGL=ON -DCEGUI_BUILD_RENDERER_OPENGL3=ON -D CEGUI_BUILD_IMAGECODEC_FREEIMAGE=ON -DCEGUI_OPTION_DEFAULT_IMAGECODEC=FreeImageImageCodec -DCEGUI_BUILD_XMLPARSER_LIBXML2=ON -DCEGUI_OPTION_DEFAULT_XMLPARSER=LibXMLParser -DGLFW_H_PATH=/usr/include/GLFW/ ../

Deperture commented 8 years ago

Sorry to barge in uninvited, but I was wondering if anyone was going to try and port Sikkpin's depth of field into this? I'd do it myself, but my C++ is rusty (and learned in an unsupported IDE) and the shaders in the GPL version are .fp files. I'm unsure if these are OpenGL or not, nor if they are even compatible with the "Frankenstein's Monster" BFG Engine.

kortemik commented 8 years ago

There was talk about it on the other issue, #17 i think BielBdeLuna mentioned about it. BFG uses GLSL so no ARB programs are directly compatible, meaning it needs to re-written. No big deal however, if you are familiar with GLSL.

I am positive it's somewher on the roadmap, but in case you want to start working on it, our active branch is currently cegui_layout.

On Wed, Jul 8, 2015 at 1:22 PM, TheNorseHorse notifications@github.com wrote:

Sorry to barge in uninvited, but I was wondering if anyone was going to try and port Sikkpin's depth of field into this? I'd do it myself, but my C++ is rusty (and learned in an unsupported IDE) and the shaders in the GPL version are .fp files. I'm unsure if these are OpenGL or not, nor if they are even compatible with the "Frankenstein's Monster" BFG Engine.

— Reply to this email directly or view it on GitHub https://github.com/OpenTechEngine/OpenTechBFG/issues/28#issuecomment-119424643 .

DoomedNerd commented 8 years ago

I forgot to give the final word of success or failure with getting it to work on windows 7, but yeah it's working fine. Pretty awesome work you guys have done and are doing with the BFG engine. If a dummy like me can get it to work on a windows pc, probably anyone else could.

kortemik commented 8 years ago

@DoomedNerd have you got some ideas where you'd like to use the engine in?

I set up some instruction pages at wiki: Usage Instructions CEGUI

BielBdeLuna commented 8 years ago

BFG doesn't use directly GLSL shaders it uses Nvidia's CG shaders and translates them to GLSL at runtime.

kortemik commented 8 years ago

CG is EOL https://developer.nvidia.com/cg-toolkit

it made me read about these but nvFX seems not compatible with cg, just another way of doing glsl/hlsl

https://github.com/tlorach/nvFX https://github.com/p3/regal

DoomedNerd commented 8 years ago

@kortemik I don't have the technical know-how or the drive to make anything useful with the engine at the moment, unfortunately. Like so many ambitious young gamers, I've fiddled with programming as a hobby off and on for a few years, and I like to read open source c++ code for leisure and learning, but I don't know any ambitious programmers in life that would care to guide me along towards being a competent programmer, so I haven't gotten very far with it. Mostly I get advice like "Step 1: Switch to Linux, you moron!" One ideal that you guys might be able to implement, if interested, is to redesign the BFG code to exclude the classic doom games (maybe making them stand alone games), and to put back in place the original gui and main menu, and to structure the code so that most of the old mods for the original Doom 3 would work with OTE. That's probably a way taller order to handle than my skills or attention span is capable of dealing with, but maybe you guys might be interested in this endeavor? One of the old mods I found for the original D3 allows for cool graphical enhancements not present in BFG edition, but definitely require the original gui to configure at runtime.

ghost commented 8 years ago

@DoomedNerd Doom 3 used OpenGL assembly language shaders which was used in Sikkmod and the other enhancement mods, BFG uses GLSL which is in turn turned into CG. BFG's gui uses flash, OTE is using cegui, which is currently in development however working on basic level, current functionality is mainly console based from the working release I'm using for mapping. Note that OTE is not an enhancement for D3, but a project to release a open game engine which does not contain code/assets from Doom 3, to avoid any legal issues with the license holders of the content.

For graphical enhancements on BFG or RBDoom3BFG, i'd suggest tweaking the settings through the console, some neat things can be done simply by changing values on variables, try listCmds and listCvars, pageup and pagedown to navigate, some times a vid_restart is required to see changes. The only other option is to learn to code GLSL for BFG. There is a console command to extract the resource files for BFG, you'll be able to see the shader files from the extracted files. The following forum has some discussions related to idTech 4/5 as well as good resources related to game development, http://forum.xentax.com/.

BielBdeLuna commented 8 years ago

well technically idTechX uses CG which internally transforms to GLSL, I wonder why didn't they chose directly GLSL, the open sourced shaders are CG.

Robert Backebans is looking forward to port RBDoom3BFG to Vulkan, and I guess within that port he will have to port the CG shaders to GLSL as it's the natural language for Vulkan.

in the original doom3 there isn't any improvement that BFG can't do, there were mods that improved the shaders, those can't be easily ported to BFG because the change of the language of the shaders (albeit it should be much easier to recreate those effects in either CG or GLSL than the inverse, ARB machine code is not friendly)

for idTechX and idTech4 discussion I would strongly suggest the http://idtechforums.fuzzylogicinc.com/index.php which is the same community from the doom3world.org forums

DanielGibson commented 8 years ago

I wonder why didn't they chose directly GLSL, the open sourced shaders are CG

because they didn't only target PC/OpenGL but also xbox360 and ps3 which use different shader languages. you can probably generate shaders in those languages from CG.

BielBdeLuna commented 8 years ago

here is some answers straight from Wikipedia: https://en.wikipedia.org/wiki/PSGL it's a Sony API for ps3 ( I guess it's a driver for their GPU, but they call it API, maybe it does more than graphics and so it's like an API ? ) it's based in OpenGL ES 1.1 and here is the deal: Nvidia CG shading language

but what about XBOX360? is it really limited to Directx? is there support for OpenGL within their drivers? is there a version of idTechX with DirectX renderer?

DanielGibson commented 8 years ago

no xbox360 does not support opengl, only directx. (it's a microsoft-console, what do you expect?)

so yeah, there obviously exists a version of the engine with a directx renderer (no idea how different desktop directx and xbox360 directx are)

anyway, now you know why it uses CG instead of GLSL. you're welcome.

DanielGibson commented 8 years ago

the original issue has been resolved (by using another branch, but now everything is in master, too), so let's close this