🔒 Locked
First 3DEngine. Please Help!!!
Advertisement
Original Post
Hello people!
I am planing to start my second game witch is my 1st 3d game.
I have some questions before start coding.i have search for this questions at google but i want and your opinion.
I want to make a 3DShoot em up Arena Game like Quake3 Arena.i will use OpenGL
with indoor levels but some of them may be outdoor but not completely outdoor.
the size of the levels will be like quake3
well...here we are:
1)
Witch is the better data structure for a game like this(indoor levels)?
KDTrees?BSPTrees?OctTrees?Portals?
were KDTrees is better than BSPTrees?
Any recommended tutorial for BSPTrees or KDTrees ect...?url?
2)
I think i will use 3DSMAX for the levels. I have hear that is very good for begining.
What do you suggest? How tha 3Dprograms like 3DSmax exports the models? The file is full of 3D Polygon Cordinates?
Lets say that I have a vary big level in 3dsmax!Then I will import it in my 3dengine.
tthen?how I will texture map this big level? what will do if i want to place a specific
texture in a specific room in a specific wall?
my previous game was tile based and I was constructing a big array with numbers for texture map. but now i have a 3dsmax level. how I will texture map it?
3)
I will use md3 for models because i dont know 3dsmax at all! and because i can find a lot of md3 models free on the internet.What you suggest for models? md3 or something else?
I will use a ready md3 loader from www.gametutorials.com! do you have to suggest any other better md3 loader from an other site?not be very complicated.
4)
What is the better(i mean quality) for dynamic lights in OpenGL?using the standard OpenGL funtions or vertex Lightning? Any other easy and quality method?
Ofcourse for static lights i will use Lightmapping.
How I can use more than 8 lights with opengl(exept lightmapping)?
5)
for shadows i think i will use stencil shadows.any other quality and easy way to make
shadows?Some people said me shadows maps. any good tutorial?
6)
what to use for reflections?I am planing to use Stencil buffer here. what you suggest?
What is exactly cube mapping? what is the difference from sphere mapping?
I cant find any good tutorial for cube mapping. do you have any? url?
8)
well...something else... i dont think i will put it in my 3dengine. because is difficult....bump mapping... I know 3 types. emboss,dot3,environment what is the best? what their differences?(between environment and dot3) better quality? witch is easiest to program(between environment and dot3)?
Witch need more proccessing power?do you know any good tutorial to suggest? url?any other type of bump mapping?
9)
lets say this:
I want in a scene to have: 8 dynamic lights moving around or flickering, 3-4 lightmaps, 5 highpoly md3 models with their shadows using stencil buffer and their reflections on the floor.
does a Athlon 2800+, with a radeon 9900(R350) can handle this?
10)where i am "saying" to OpenGL what type of filtering i want to use?
how I can use trilinear filtering or anisotropic filtering?
11) exept double buffer, does triple buffering exists? what is the difference between double and triple? how to implement?
12) were i can find any good volumetric fog tutorial? I have search google... but nothing....
13) what is the use of 3d textures? any good tutorial to suggest?
well this is my questions for now. Please try to answer if you know any of them.
thank you very much guys!! bye!!!!!
Your best resource is the red book (Open GL Programming Guide is the real title IIRC) A version is here on Gamedev free, but it''s an older version. However, I''d suggest you start with it anyway. Also, find a good theory book like "Computer Graphics : Principles and Practice in C" or "3d games : realtime rendering and software technology" Books will answer mass volumes of information quickly and give you a better undersanding of it than anything on the internet can. Use the internet as a reference once you have a good foundation developed through books. That''s my opinion, anyway...
For indoor levels...depending on your target system, I''d go the Doom3 route for geometry...you can do a lot of very interesting stuff and it''s the new technological paradigm, anyway.
Also, you might want to read all the papers you can find on developer.nvidia.com
On question 8... there is another form I use in my engine...it''s displacement mapping. it actually raises or lowers the geometry of the object based off the colormap, whereas Dot3 and other forms don''t. Also there is detail mapping, which can be seen in Serious Sam and Unreal... it gives the illusion in both games of a highres texture when viewed up close. In my opinion, there is no "best" type of bumpmapping. It depends on what type of game you''re making and what oyur target system/framerate is. In a deathmatch game, you''re not exactly going to be staring at the walls, so Emboss might work for you if you do it right.
The "there is no best" rulse applies to everything you''ve asked for comparisons on. i''d learn a bit more about the theory of each, their advantages and disadvantages, and weigh them against your game and its needs.
Also, I don''t know what type of game you''re making, but be careful on design consistency...I read you will have both lightmapped static lights and dynamic lights... IMO, it would be simpler to pick one method and not have these distinctions... which can break immersion if done wrong...do what you need, but do it carefully.
For indoor levels...depending on your target system, I''d go the Doom3 route for geometry...you can do a lot of very interesting stuff and it''s the new technological paradigm, anyway.
Also, you might want to read all the papers you can find on developer.nvidia.com
On question 8... there is another form I use in my engine...it''s displacement mapping. it actually raises or lowers the geometry of the object based off the colormap, whereas Dot3 and other forms don''t. Also there is detail mapping, which can be seen in Serious Sam and Unreal... it gives the illusion in both games of a highres texture when viewed up close. In my opinion, there is no "best" type of bumpmapping. It depends on what type of game you''re making and what oyur target system/framerate is. In a deathmatch game, you''re not exactly going to be staring at the walls, so Emboss might work for you if you do it right.
The "there is no best" rulse applies to everything you''ve asked for comparisons on. i''d learn a bit more about the theory of each, their advantages and disadvantages, and weigh them against your game and its needs.
Also, I don''t know what type of game you''re making, but be careful on design consistency...I read you will have both lightmapped static lights and dynamic lights... IMO, it would be simpler to pick one method and not have these distinctions... which can break immersion if done wrong...do what you need, but do it carefully.
Warning: long post
First off, I also think you need to learn a bit more, pick up a book on it, I recommend OpenGL game programming for starters.
Can't help ya much here, but I think the later tutorials on game tutorials may help.
Again, can't really help, game tutorials might help.
md3 models should suit your purposes well, however, any 3d model loader is gonna be complicated, and animating those models will be even more complicated.
I'm not sure about your first question, but this is how you have more than 8 lights:
Say your level has a bunch of streetlights, obviously more than 8, that means you need more than 8 lights, so what you do is set up lights for the 8 nearest streetlights to the camera and render the rest with lightmaps and coronas. As the camera moves, you update it so the nearest objects requiring lights are set up and the ones far away just use lightmaps and coronas.
Sorry, try google on this one.
Go to Nehe's site, its got all of these topics.
I think Nehe has some of these too.
An Athlon 2800+ and a R350 card will be able to handle way more than that.
Trilinear filtering you have to write in yourself, and anisotropic filtering is usually handled by the graphics card. Search google for both of those for more info.
Triple buffering does exist. In double buffering, one buffer is rendered while the other is being written to, and they they are swaped. Triple buffering is where one buffer is rendered while the other two are written to. Not sure how to implement.
www.gametutorials.com good buddy!
Don't use these, your game will run at 0.1fps. 3d textures are used for medical imaging. They are not meant for games.
Hope that helps.
-------------------
Realm Games Company
[edited by - greatone on February 20, 2003 9:04:22 PM]
First off, I also think you need to learn a bit more, pick up a book on it, I recommend OpenGL game programming for starters.
quote:
Original post by periergos
1) Witch is the better data structure for a game like this(indoor levels)? KDTrees?BSPTrees?OctTrees?Portals? were KDTrees is better than BSPTrees? Any recommended tutorial for BSPTrees or KDTrees ect...?url?
Can't help ya much here, but I think the later tutorials on game tutorials may help.
quote:
Original post by periergos
2) I think i will use 3DSMAX for the levels. I have hear that is very good for begining. What do you suggest? How tha 3Dprograms like 3DSmax exports the models? The file is full of 3D Polygon Cordinates? Lets say that I have a vary big level in 3dsmax!Then I will import it in my 3dengine. tthen?how I will texture map this big level? what will do if i want to place a specific texture in a specific room in a specific wall? my previous game was tile based and I was constructing a big array with numbers for texture map. but now i have a 3dsmax level. how I will texture map it?
Again, can't really help, game tutorials might help.
quote:
Original post by periergos
3) I will use md3 for models because i dont know 3dsmax at all! and because i can find a lot of md3 models free on the internet.What you suggest for models? md3 or something else?
I will use a ready md3 loader from www.gametutorials.com! do you have to suggest any other better md3 loader from an other site?not be very complicated.
md3 models should suit your purposes well, however, any 3d model loader is gonna be complicated, and animating those models will be even more complicated.
quote:
Original post by periergos
4) What is the better(i mean quality) for dynamic lights in OpenGL?using the standard OpenGL funtions or vertex Lightning? Any other easy and quality method?Ofcourse for static lights i will use Lightmapping. How I can use more than 8 lights with opengl(exept lightmapping)?
I'm not sure about your first question, but this is how you have more than 8 lights:
Say your level has a bunch of streetlights, obviously more than 8, that means you need more than 8 lights, so what you do is set up lights for the 8 nearest streetlights to the camera and render the rest with lightmaps and coronas. As the camera moves, you update it so the nearest objects requiring lights are set up and the ones far away just use lightmaps and coronas.
quote:
Original post by periergos
5) for shadows i think i will use stencil shadows.any other quality and easy way to make shadows?Some people said me shadows maps. any good tutorial?
Sorry, try google on this one.
quote:
Original post by periergos
6) what to use for reflections?I am planing to use Stencil buffer here. what you suggest? What is exactly cube mapping? what is the difference from sphere mapping? I cant find any good tutorial for cube mapping. do you have any? url?
Go to Nehe's site, its got all of these topics.
quote:
Original post by periergos
8) well...something else... i dont think i will put it in my 3dengine. because is difficult....bump mapping... I know 3 types. emboss,dot3,environment what is the best? what their differences?(between environment and dot3) better quality? witch is easiest to program(between environment and dot3)?
Witch need more proccessing power?do you know any good tutorial [to suggest? url?any other type of bump mapping?
I think Nehe has some of these too.
quote:
Original post by periergos
9)lets say this: I want in a scene to have: 8 dynamic lights moving around or flickering, 3-4 lightmaps, 5 highpoly md3 models with their shadows using stencil buffer and their reflections on the floor. does a Athlon 2800+, with a radeon 9900(R350) can handle this?
An Athlon 2800+ and a R350 card will be able to handle way more than that.
quote:
Original post by periergos
10)where i am "saying" to OpenGL what type of filtering i want to use? how I can use trilinear filtering or anisotropic filtering?
Trilinear filtering you have to write in yourself, and anisotropic filtering is usually handled by the graphics card. Search google for both of those for more info.
quote:
Original post by periergos
11) exept double buffer, does triple buffering exists? what is the difference between double and triple? how to implement?
Triple buffering does exist. In double buffering, one buffer is rendered while the other is being written to, and they they are swaped. Triple buffering is where one buffer is rendered while the other two are written to. Not sure how to implement.
quote:
Original post by periergos
12) were i can find any good volumetric fog tutorial? I have search google... but nothing....
www.gametutorials.com good buddy!
quote:
Original post by periergos
13) what is the use of 3d textures? any good tutorial to suggest?
Don't use these, your game will run at 0.1fps. 3d textures are used for medical imaging. They are not meant for games.
Hope that helps.
-------------------
Realm Games Company
[edited by - greatone on February 20, 2003 9:04:22 PM]
3DS files are built up out of a huge collection of lumps. Each lump can contain sub-lumps (that are related to the parent lump) and each lump has it''s own meaning.
If you want to use a 3DS object for a level (something I''ve been wondering about myself) I''m figuring that you:
- try to load the 3ds object and parse it into an oct-tree or BSP-tree, or even some kind of portal system. Possibly by writing a 3DS-max exporter. I''m not sure but I think the last option (portals) is the best and easiest for 3DS objects. To do this you may have to do some kind of sort on the polygons first, but I''m not sure. Before you can even do that however you first have to load all the data for the polygons into some kind of structure. Try lib3ds for this (find it on sourceforge). I suggest taking the code from lib3ds and cutting out all the 3DS information that you don''t need (like animations) to limit the size of the actual data you work with.
- after you''ve built your level structure you should sort the polygons in the nodes by renderstate (textures being the most important). This way you can render polygons with the least amount of statechanging.
If you can pull this off and get a decent framerate, you have my respect!
If you want to use a 3DS object for a level (something I''ve been wondering about myself) I''m figuring that you:
- try to load the 3ds object and parse it into an oct-tree or BSP-tree, or even some kind of portal system. Possibly by writing a 3DS-max exporter. I''m not sure but I think the last option (portals) is the best and easiest for 3DS objects. To do this you may have to do some kind of sort on the polygons first, but I''m not sure. Before you can even do that however you first have to load all the data for the polygons into some kind of structure. Try lib3ds for this (find it on sourceforge). I suggest taking the code from lib3ds and cutting out all the 3DS information that you don''t need (like animations) to limit the size of the actual data you work with.
- after you''ve built your level structure you should sort the polygons in the nodes by renderstate (textures being the most important). This way you can render polygons with the least amount of statechanging.
If you can pull this off and get a decent framerate, you have my respect!
well...
thank you guys i will read more i will try!!!
MOVSW: You said that i must read more... well if you have already read why dont you answer this questions?
GreatOne:first of all thank you for answering some of my question! but... if you have read the OpenGL Game Programming book you can see that none of this question are included in the book. I have this book.
well thank you!!!
thank you guys i will read more i will try!!!
MOVSW: You said that i must read more... well if you have already read why dont you answer this questions?
GreatOne:first of all thank you for answering some of my question! but... if you have read the OpenGL Game Programming book you can see that none of this question are included in the book. I have this book.
well thank you!!!
wrong thread 
[edited by - Joe Forhens on February 21, 2003 5:14:39 PM]
[edited by - Joe Forhens on February 21, 2003 5:14:39 PM]
quote:
Original post by periergos
MOVSW: You said that i must read more... well if you have already read why dont you answer this questions?
Because you asked tons of stuff. It would be better for you to pick up a book (realtime rendering for example) and read it then have to read through someone''s badly written forum post. Anyway, I can try to answer a few of your questions, but please buy a good book.
quote:
1)
Witch is the better data structure for a game like this(indoor levels)?
KDTrees?BSPTrees?OctTrees?Portals?
were KDTrees is better than BSPTrees?
Any recommended tutorial for BSPTrees or KDTrees ect...?url?
I still don''t know which spatial structure is "better", they all serve different purposes. BSP trees are popular in first person shooters and work pretty well for indoor FPS like environments, but they don''t work well outdoors or with arbitary geometry (polygon soup.) There is a very nice and detailed paper on writting a BSP\PVS system (ala Quake) on Gamedev (check the articles section, I believe it''s in there).
Portals are not really a data structure (although you could treat the sector-portal connection as a graph, which would be a data structure of sorts) they are a culling method, just like PVS, frustum culling or occulsion culling. They can be (and often are) used in conjunction with BSP trees and Octrees. Flipcode has a nice portal engine tutorial (the link is on the front page.)
For your first 3D game I would say do something simple and skip spatial structures and culling, but if you go with one I would recommend using an octree, because it''s relatively simple to implement and works very well with polygon soup (which is what your data exported from Max would be.)
quote:
2)
I think i will use 3DSMAX for the levels. I have hear that is very good for begining.
What do you suggest? How tha 3Dprograms like 3DSmax exports the models? The file is full of 3D Polygon Cordinates?
Lets say that I have a vary big level in 3dsmax!Then I will import it in my 3dengine.
tthen?how I will texture map this big level? what will do if i want to place a specific
texture in a specific room in a specific wall?
my previous game was tile based and I was constructing a big array with numbers for texture map. but now i have a 3dsmax level. how I will texture map it?
To export the data you either need to write a loader for a common file format (.3DS, .MD3, .ASE, etc.) or write an exporter to your own format using the Max SDK, Flexporter, or Max script.
quote:
3)
I will use md3 for models because i dont know 3dsmax at all! and because i can find a lot of md3 models free on the internet.What you suggest for models? md3 or something else?
I will use a ready md3 loader from www.gametutorials.com! do you have to suggest any other better md3 loader from an other site?not be very complicated.
You could use models from polycount.com, but these aren''t exactly free. If you want to use them in your game you need to get consent from the artist(s) that modeled them. You can use these models for testing purposes however.
Please do some more research. Buy a good graphics book like Real-time Rendering. Look at the links and tutorials on flipcode.com, gamedev.net, gametutorials.com, nvidia.com and gamasutra.com. Read the OpenGL Red book (which can be found at opengl.org). As you can see I''ve written a ton of stuff and I''ve barely touched most of the topics. I didn''t answer your later questions because it''s very easy to find this information in books or on websites. And learn how to use google, I typed "volumetric fog" in google and the first two links I got where http://www.gamasutra.com/features/20011003/boyd_01.htm and http://www.gamasutra.com/features/20010323/baeza_01.htm, and they both looked pretty good to me. Sure, if "good" tutorial means "Code that I can easily copy and paste" then they may not be your thing, but I think they both explain volumetric fog pretty well.
You do realise that 3dsmax costs around $3000 USD don''t you?
[edited by - The Invisible Moderator on February 20, 2003 3:33:58 PM]
[edited by - The Invisible Moderator on February 20, 2003 3:33:58 PM]
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.
Sign in to reply to this topic.
Advertisement