RF 2 Discussion
irrlicht
the irrlicht license is essentially the MIT license (zlib is basically the same), very similar to the RF license, looks very suitable if the community is looking to use the same kind of license that RF currently has.
if you are going to another format, i would hesitate using another game's formats as well - the md5 format in particular is a proprietary 'id' format, the mdl half-life format is a valve format, etc.
irrlicht supports the .x format, as well as the collada xml format, which are alot better options for model formats with animations & bones.
if you are going to another format, i would hesitate using another game's formats as well - the md5 format in particular is a proprietary 'id' format, the mdl half-life format is a valve format, etc.
irrlicht supports the .x format, as well as the collada xml format, which are alot better options for model formats with animations & bones.
id rather stay away from id formats due to licensing issues.
rf2 will support most popular model formats natively - .x, .obj, .ms3d, .my3d, .3ds, and many more - all with no conversion. .x and .ms3d are preferred for enemies and player models due to good bones support.
im still researching octree, but the file format isnt really tied to octree. basically, you pass octree the max number of polygons you want in a "segment", and octree splits the model/level into 8 sections. if any of those sections have more polygons than the max you requested, it will split that segment into either 2 or 8 more sections, cant remember which. after that, it performs simple frustum culling. there may also be some heirarchical sorting going on. in some senses, visibility is calculated at runtime.
i'm dumping many formats rf is using now, including the texture library format, the level format, and the model format.
EDIT: haha, Gekido and i posted at the same time.
rf2 will support most popular model formats natively - .x, .obj, .ms3d, .my3d, .3ds, and many more - all with no conversion. .x and .ms3d are preferred for enemies and player models due to good bones support.
im still researching octree, but the file format isnt really tied to octree. basically, you pass octree the max number of polygons you want in a "segment", and octree splits the model/level into 8 sections. if any of those sections have more polygons than the max you requested, it will split that segment into either 2 or 8 more sections, cant remember which. after that, it performs simple frustum culling. there may also be some heirarchical sorting going on. in some senses, visibility is calculated at runtime.
i'm dumping many formats rf is using now, including the texture library format, the level format, and the model format.
EDIT: haha, Gekido and i posted at the same time.
RF2 site: http://realityfactory2.sourceforge.net/
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
ya...i did not know that the specific formats wer owned by the companys that use them. In that case as long as ms3d and .x has bomes and can look great in game like md5 or mdl then great!
May i also suggest some kind of shader system (like doom 3 mtr's...but you can use a different format!!!)
oh and a partical syatem that uses external (not hardcoded) files (like a .fx file )
You should take a look at how q2e does some of this stuff for ideas because the way they hav it set up is very easy to use. especially the texturing
you give a brush a texture say wall1 and in the same file as wall1 you put in wall1_local (a normal map or bump map or wahtever) ans wall1_s (specular map) the engine does the rest! it adds the normal and specular map to the serface. (this works with all surfaces like models and such)
also please set it up to be able to make games like doom 3 with ppl. I looked at irrlicht and it had a engine that was made with it called the mad cat engine and it looked great (except the weapon models) something like that would rock!!!
as far as octree goes using an editor like radiant would rock so hopefully the process it uses to render or compile the maps wont stop you from using a bsp made from radiant
oh 1 word PHYSICS!!!!!! you should start a features thread for your rf2
When you get it working i can contribute media! (models textures ui ect)
I have a whole load of ideas for entitys too but you obviously arent ready for them yet......Hey i am actually excited irrlicht looks great and oncet you get it working people who program can add what ever features they want!
Well Get started!
May i also suggest some kind of shader system (like doom 3 mtr's...but you can use a different format!!!)
oh and a partical syatem that uses external (not hardcoded) files (like a .fx file )
You should take a look at how q2e does some of this stuff for ideas because the way they hav it set up is very easy to use. especially the texturing
you give a brush a texture say wall1 and in the same file as wall1 you put in wall1_local (a normal map or bump map or wahtever) ans wall1_s (specular map) the engine does the rest! it adds the normal and specular map to the serface. (this works with all surfaces like models and such)
also please set it up to be able to make games like doom 3 with ppl. I looked at irrlicht and it had a engine that was made with it called the mad cat engine and it looked great (except the weapon models) something like that would rock!!!
as far as octree goes using an editor like radiant would rock so hopefully the process it uses to render or compile the maps wont stop you from using a bsp made from radiant
oh 1 word PHYSICS!!!!!! you should start a features thread for your rf2
When you get it working i can contribute media! (models textures ui ect)
I have a whole load of ideas for entitys too but you obviously arent ready for them yet......Hey i am actually excited irrlicht looks great and oncet you get it working people who program can add what ever features they want!
Well Get started!
I know so little about shaders, going to have to learn about that before i can answer this one.
about textures, itll basically be an overloaded rf texture packer, rewritten - i will likely still store the files as bn0_texture name for base texture, bnb_texture for normal map, etc internally but it will likely have those grouped together as one "material" with seperate texture "channels" for bumpmaps, etc. all are applied as one "material" in-editor. normal maps can be generated from heightmaps, something im sure alot of people will appreciate. using textures directly from the files is also a possibility, using filenames to signify what role the texture has. it will support .jpg, .gif, .png(i believe), .tga, and .bmp, and perhaps .pcx.
particle system should behave identically to rf's, effects can be defined in ini files.
physics is a possibility.
media is definitly needed - i need as much high-quality, high-detail media as possible before release. people tend to frown upoin a game dev system with no examples.
about textures, itll basically be an overloaded rf texture packer, rewritten - i will likely still store the files as bn0_texture name for base texture, bnb_texture for normal map, etc internally but it will likely have those grouped together as one "material" with seperate texture "channels" for bumpmaps, etc. all are applied as one "material" in-editor. normal maps can be generated from heightmaps, something im sure alot of people will appreciate. using textures directly from the files is also a possibility, using filenames to signify what role the texture has. it will support .jpg, .gif, .png(i believe), .tga, and .bmp, and perhaps .pcx.
particle system should behave identically to rf's, effects can be defined in ini files.
physics is a possibility.
media is definitly needed - i need as much high-quality, high-detail media as possible before release. people tend to frown upoin a game dev system with no examples.
RF2 site: http://realityfactory2.sourceforge.net/
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
RF2 is coming at an excellent pace, even more quickly than I thought it would. What I thought would take over a week will take... maybe two days. (The realityfactory.ini reader)
RF2 site: http://realityfactory2.sourceforge.net/
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
finally overcoming a major bug in my way, ive got an irrlicht window rendering, pulling the GameName field from RealityFactory.ini and sticking it in the window caption. the IniReader class is not quite complete, but it's complete enough for non-release purposes.
sorry for the triple post.
sorry for the triple post.
RF2 site: http://realityfactory2.sourceforge.net/
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
its great to hear your making progress...shaders are one of the most useful graphic features in creating a game. And their easy to learn or figure out if you use the same style as doom 3 or quake 4 because theirs tons of tuts out there to teach you how to make them.
A doom 3 or quake 4 mtr file (you can use whatever externtion you wish for rf2) is a text file that is loaded on start up of the game. (as it goest to the main menu) in this file can be many different effects. what they do is add effects to textures. These textures can be anyware from brush textures to muzzle flashes. They can do simple things like tell the engine what textures to use for diffuse map normal map ore specular map. it can cause scroling or trasparencys. add a blinking light to a texture. add an ammo counter to your weapon like doom 3. It can do advanced things like tell the engine to use glfragmant progrramns (which you just have to add to rf2!!!!!) Fragmant programs can give effects like heat distortion, realistic water, inviorment mapping, cool glass effects...and endless others. shaders are used in practically all games now days allong with gl programs. (they just have different extentions.)
here is an example of a shader in F.E.A.R. It is a shader and a heatHaze gl program attached to a normal explosion effect. Notice how much better it looks then just a normal series of textures for an explosion.
http://pcmedia.gamespy.com/pc/image/art ... 422488.jpg
check out http://www.iddevnet.com/doom3/materials.php for detils on how doom 3 uses shaders. (this is just one way out of many of doing it...farcry uses a different way but has alot of the same effects)
also look at quake 2 evolved's waterin this next shot...A shader and a gl program...If you used doom 3's technique you can have access to many example files to use with rf2.
hope that explains them more. Programable shaders is what you need. Used along with Gl programs.
(Edited by AndyCR: Hope you dont mind, the first image was huge so i made it a link instead)
A doom 3 or quake 4 mtr file (you can use whatever externtion you wish for rf2) is a text file that is loaded on start up of the game. (as it goest to the main menu) in this file can be many different effects. what they do is add effects to textures. These textures can be anyware from brush textures to muzzle flashes. They can do simple things like tell the engine what textures to use for diffuse map normal map ore specular map. it can cause scroling or trasparencys. add a blinking light to a texture. add an ammo counter to your weapon like doom 3. It can do advanced things like tell the engine to use glfragmant progrramns (which you just have to add to rf2!!!!!) Fragmant programs can give effects like heat distortion, realistic water, inviorment mapping, cool glass effects...and endless others. shaders are used in practically all games now days allong with gl programs. (they just have different extentions.)
here is an example of a shader in F.E.A.R. It is a shader and a heatHaze gl program attached to a normal explosion effect. Notice how much better it looks then just a normal series of textures for an explosion.
http://pcmedia.gamespy.com/pc/image/art ... 422488.jpg
check out http://www.iddevnet.com/doom3/materials.php for detils on how doom 3 uses shaders. (this is just one way out of many of doing it...farcry uses a different way but has alot of the same effects)
also look at quake 2 evolved's waterin this next shot...A shader and a gl program...If you used doom 3's technique you can have access to many example files to use with rf2.
hope that explains them more. Programable shaders is what you need. Used along with Gl programs.
(Edited by AndyCR: Hope you dont mind, the first image was huge so i made it a link instead)
those look awesome. as i get into the sections of rf that use shaders, i will educate myself more completely so i can add them the right way. i know irrlicht supports them. thanks for the info, i really need all the input i can get!
i'm done with the realityfactory.ini loader class, and now im going to make a log file writer class.
edit: this just feels wierd... it's slowly becoming reality factory! when its started, it creates a file named realityfactory.log, which contains:
it kind of feels odd to recreate something youve seen and taken for granted for so long... ah well, back to code::blocks. did I mention i've switched ide's? at least for the time being, to stay open source, and to avoid any temptation to use .net 2 for rf2, i've switched to code::blocks / mingw.
i'm done with the realityfactory.ini loader class, and now im going to make a log file writer class.
edit: this just feels wierd... it's slowly becoming reality factory! when its started, it creates a file named realityfactory.log, which contains:
Code: Select all
--------------------------------------
--- Reality Factory 0.80 ---
--- For more Information, visit: ---
--- dhost.info/realityfactory ---
--------------------------------------
RF2 site: http://realityfactory2.sourceforge.net/
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
i've now completed the log writer class. progress is coming great!
RF2 site: http://realityfactory2.sourceforge.net/
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
Just to know, didi you ever run a test on RF trying to pass the renderings call from genesis to Irrlicht? Is this a feasible way? Really I don't know enough about engines and programming. I think that your work on log class is surely great, but have you thought yet at the time when you will approach that part?
basically, because two engines aren't the same, it would be quite messy, i would have to spend alot of time cleaning out the mfc stuff, and, worst of all, i wouldnt have the engine compilable until all the gen3d stuff was removed, which would be a little like sculpting for several months without looking at what your sculpting. in addition, theres a good chance it STILL wouldnt compile with any free compiler beyond microsoft's, which ceases to be free in under a year (the toolkit is still available though, wonder how that would fare) so users who came in past... november 6th i think? wouldnt be able to compile rf with a nice environment. in addition, i'm trying my hardest to not make anything that dosen't work under linux - to my knowledge, right now, everything would compile perfectly under linux, and if it wouldnt, it would be about 5 minutes work for someone who can use linux well to port the current code.
on the "showing the public what it can do" front:
no mfc, no .net, etc is used, ALL standard c++ libraries or freely available libraries, all compiles perfectly under mingw (think dev-c++) and should under any compiler worth it's weight in floppies, all clean code commented correctly. take this as an example of how to write a log file:
writes this to realityfactory.log:
the first parameter is controlled by an easy to use enum:
you can also write directly to the log if desired:
writes:
(of course, writing the correct driver name. and incase anyone didnt catch that, yes, rf2 is compatible with directx 9)
heres how you can get the window width from the rf ini file:
again, this works as similarly to rf as possible, so the user dosen't have to mess with any of this if they don;t want to.
right now, it's loading the window width, game name, driver, and window height from the .ini file. progress is coming excellent, i can barely peel myself away from rf2!
on the "showing the public what it can do" front:
no mfc, no .net, etc is used, ALL standard c++ libraries or freely available libraries, all compiles perfectly under mingw (think dev-c++) and should under any compiler worth it's weight in floppies, all clean code commented correctly. take this as an example of how to write a log file:
Code: Select all
LogWriter lwWriter;
lwWriter.WriteEntry(eleParsing, "RealityFactory.ini file");
Code: Select all
--------------------------------------
--- Reality Factory 0.80 ---
--- For more Information, visit: ---
--- dhost.info/realityfactory ---
--------------------------------------
Parsing RealityFactory.ini file...
Code: Select all
// Holds all the possible entry titles
enum eLogEntry
{
eleInit,
eleParsing,
elePreparing,
eleCreating,
eleDestroying,
eleLoading,
eleSaving,
eleShuttingDown
};
Code: Select all
lwWriter.Write("Error! Driver " + sDriver + " could not initialize. Check to see\nif your compiler is compatible with " + sDriver + ".");
Code: Select all
Error! Driver direct3d9 could not initialize. Check to see
if your compiler is compatible with direct3d9.
heres how you can get the window width from the rf ini file:
Code: Select all
IniReader irReader;
atoi(irReader.ReadField("Width").c_str());
right now, it's loading the window width, game name, driver, and window height from the .ini file. progress is coming excellent, i can barely peel myself away from rf2!
RF2 site: http://realityfactory2.sourceforge.net/
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
barring extrordinary circumstances, that will not happen. i have said and made no secret of the fact that i may not be able to finish this, but if i dont, the framework is clean enough that any rf1 programmer can pick it up if they so desire. i may have trouble and need help with the most complex math, collision detection, and shader parts of that, and by that point im sure another rf developer will be working side by side with me on it, and i will be able to help on one of their least favorite aspects.
RF2 site: http://realityfactory2.sourceforge.net/
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
I need as much inpuit as I can get, everyone out there, keep inb mind that your suggestion/idea could help shape rf2, and theres no better time than when it isn't yet set in stone!
Just did a test compile on MSVC++, and it compiled right off the bat with no modifications except for linking the appropriate irrlicht library!
Just did a test compile on MSVC++, and it compiled right off the bat with no modifications except for linking the appropriate irrlicht library!
RF2 site: http://realityfactory2.sourceforge.net/
RF2 tasks: http://sourceforge.net/pm/?group_id=179085
RF2 tasks: http://sourceforge.net/pm/?group_id=179085