DavidAdas Posted December 9, 2008 Posted December 9, 2008 I will say this much. In writing the 3D portion of my game, I've come to appreciate Empire at War just a bit more than I did originally. In doing a stress test of my code, I was only able to fit about twenty or so capital ships on each side before seeing any unplayable lag (and my desktop packs a punch). This, too, was before loading the fighters, background debris and planets, interface, et cetera. http://photos-a.ak.fbcdn.net/photos-ak-snc1/v374/119/59/26005819/n26005819_32035432_9547.jpgGranted, that's the reason why. Now I can scale this thing back. Decrease the size, lower the quality, and get it to less than a mb and could then reasonably fit quite a few on the screen. But then reviewers give my game a low score because of the low quality Typically, game reviewers are few and far from programmers but anyway. It's ultimately going to be a tough call. Or I can just create some really ingenious system to load and display huge models without your system exploding. That's the option I will likely end up going for
Slocket Posted December 10, 2008 Author Posted December 10, 2008 The original EAW had both sides limited in how many ships you could have , via points, around 20 per side? It is a problem. What I was using in those above pictures are much, much lower polygons and simple textures no shaders. If you can figure out a way to place all those displayed up close and those further away less polygons, and far away a bitmap billboard. Some of those models on the net I seen are quite huge!
JanDeis Posted December 10, 2008 Posted December 10, 2008 Well, the above pictures from before I bumped the topic were all low-poly VSDs. I would immediately assume that a ship with that amount of detail, multiplied by a number only around 20-25, would crash the game (or lag like you said). Maybe at different zoom levels a lower-poly model is shown instead of your high poly ISD? I'm not sure how that would work, if you've tried it, or what, but it makes sense in my head right now... http://www.freewebs.com/deisgames/index.htm
SWR Staff - Executive Evaders99 Posted December 10, 2008 SWR Staff - Executive Posted December 10, 2008 Yep that's called "Level of Detail" (LOD) and that's what most games use. Evaders99http://swrebellion.com/images/banners/rebellionbanner02or6.gif Webmasterhttp://swrebellion.com/images/banners/swcicuserbar.png Administrator Fighting is terrible, but not as terrible as losing the will to fight.- SW:Rebellion Network - Evaders Squadron Coding -The cake is a lie.
Slocket Posted December 10, 2008 Author Posted December 10, 2008 Yep, I guess they figured that one out years ago. I guess the DB engine uses mipmaps. A basic technique. It seems that even the original Rebellion used three LOD object mesh models/textures for the ships. Near, Medium, Far distance. There maybe even an application to produce three levels of lower polygon models from an original model. Reading that article, it seems to be different methods to achieve the desired results. It can be simple to rather complicated. I learn something new every day. Good find. EDIT: Actually, I do not know what the DB engine uses. I guess it must be similiar to DX9 algorithms since there is only one model loaded into memory.
JanDeis Posted December 11, 2008 Posted December 11, 2008 Is it possible to program code into the game that alters models (like combining vertices and edges) so that certain models would have a lower poly count? I'm not sure what this would do to lag though. Having to watch every model/object's distance from the camera may end up taking as much memory as any other method. Anyway, with code that would automatically cut triangles off the model, you could have high-res models up close, and then very far away there could be models with only 6 triangles, then just about every extreme in between. Ex: 20m away: 500+ polys100m away: 200-500 polys250m away: 80-200 polys350m away: 25-80 polys500+m away: 25- polys note: I'm just learning to program games like this, so if I saw something that is either really simple (like the LOD thing I said before) or something totally outrageous, please tell me. All I'm trying to do is think of concepts that maybe nobody else has thought of before, however unlikely that is to happen... http://www.freewebs.com/deisgames/index.htm
SWR Staff - Executive Evaders99 Posted December 11, 2008 SWR Staff - Executive Posted December 11, 2008 You can generate different details of polys through a Geometry shaderhttp://en.wikipedia.org/wiki/Geometry_shader All of this isn't new, most games do them but it isn't exactly easy. Evaders99http://swrebellion.com/images/banners/rebellionbanner02or6.gif Webmasterhttp://swrebellion.com/images/banners/swcicuserbar.png Administrator Fighting is terrible, but not as terrible as losing the will to fight.- SW:Rebellion Network - Evaders Squadron Coding -The cake is a lie.
JanDeis Posted December 11, 2008 Posted December 11, 2008 Ok then... I learn something new everyday. For some reason, it never comes from my schooling -_- So now I'm interested in how many triangles did that Star Destroyer have in the 10,000 VSDs pic? And, what would be the most detailed amount of triangles that around 3,000 models on screen could have? (including particle effects, textures, lighting and shading, and sounds) http://www.freewebs.com/deisgames/index.htm
Moribundus Posted December 12, 2008 Posted December 12, 2008 You can generate different details of polys through a Geometry shaderhttp://en.wikipedia.org/wiki/Geometry_shader All of this isn't new, most games do them but it isn't exactly easy. Geometry shaders require extra processing time during rendering and newer graphics cards. I believe that the usual way of doing this is having multiple models stored in video memory and simply swapping them as needed. Also sprites are often used for models that are really far away (see Total War). These low detail models could be automatically generated at the start of the game, but this needs some decent algorithm. And as for triangle nubers..imho LOD tries to hide invisible details. So that shapes or curves that are rendered into one pixel (or otherwise indistinguishable) are merged together, detail "popping" is undesired artifact after all. -rebellion2 enthusiast-Terra Reconstructed
JanDeis Posted December 12, 2008 Posted December 12, 2008 Geometry shaders require extra processing time during rendering and newer graphics cards. I believe that the usual way of doing this is having multiple models stored in video memory and simply swapping them as needed. Also sprites are often used for models that are really far away (see Total War). These low detail models could be automatically generated at the start of the game, but this needs some decent algorithm. That is what I've decided to do for Dominance. The EaW-style battles will use lower detail models while the Battlefront-style ones use higher detail. Then the far away objects will use low (very low) detail models. I haven't thought about using sprites though. But everything in Dominance is basically in constant motion so how might that work? And as for triangle nubers..imho LOD tries to hide invisible details. So that shapes or curves that are rendered into one pixel (or otherwise indistinguishable) are merged together, detail "popping" is undesired artifact after all. So, is LOD something I have to learn to code myself, or does the graphics card or the code do it for me? Sorry for the stupid question, I just really don't know.. http://www.freewebs.com/deisgames/index.htm
steel Posted January 9, 2009 Posted January 9, 2009 Pretty sure LOD is handled by the graphics card. Once you set it up does it automattically... could be wrong though
Moribundus Posted January 10, 2009 Posted January 10, 2009 No, graphics card knows nothing about higher level abstractions above data (like LOD, animations, etc.) These must be managed by the 3d engine. -rebellion2 enthusiast-Terra Reconstructed
Markus_Ramikin Posted November 17, 2010 Posted November 17, 2010 Hm... unless you're changing the game in more ways than I think you should, won't the galaxy size itself, I mean the maintenance possible to derive from planets, make sure that there aren't thousands of capital ships in a battle? EDIT: never mind me, I guess if you're designing a moddable game, anything can happen.
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now