Too much techniques

Started by
0 comments, last by MJP 15 years, 8 months ago
I'm currently in the process of making a small game engine (still basic). I have DX10 and PhysX running, Input/Sound, a small model loader (static, no animation/bones) and an entity system for the game and renderer. I am still missing lot of things like a scenegraph system (all my objects have their position, but it's not hierarchical), some culling algorithm and mostly 3D gfx eye candy. I wanted to implement some lighting/shadow first. I already done it in DX9 with the included lights and shadow volume, but now as I see it there have been so much new techniques that I don't know what I should use. Just check the DirectX SDK/NVIDIA SDK/FX Composer samples, there are like 10 different light techniques and 10 others for shadowing. I run a few, check the result, check the explanation, but I can't tell really which one seems better than another, which one is possible for a realtime game and is not only for demo-making. Which one is the "lower" or "higher" version of another technique in case the computer can't do it (I use DX10 so I would assume computers running my game can use the best one anyway). If I browse through SIGGRAPH, Google and even this site, the number of possible technique increase exponentially. Doing some point/directional light in HLSL code look fair simple enough, but as other topics here stated, it gives problems when using multiple lights/objects. If a new way gives better results without too much problem I think I should be aware and use it instead. After reading some post here I decided to check out Deferred Shading, but the thread was in 2003 so it might have changed a lot since then. Nvidia sample of deferred shading don't look like current games (too much blurry/strange) so I think there must be something else. Same thing for shadow, ShadowVolume/ShadowMap/SoftShadows/Variance Shadow Mapping/Percentage Closer Soft Shadows/ParallaxOcclusionMapping/etc. Theses are simply what the sample gives me, and I'm sure there a many others. I also know what the basics are, but not which one would give the best result while staying realistically possible for a real time game. This probably apply to tons of others element needed in games, there are too much techniques out there and we don't know what to look for anymore. The best answer to this thread would be a list of new commercial games using approximately the same technology (Unreal3, Devil may Cry4, GRID, Crysis (if not too different), and list the name of the techniques they use for various aspect of the game.
Advertisement
My advice would be to only focus on the things you actually think you need for your game. You don't want your game to just use a bunch of cool trendy techniques just because you implemented them, you want your engine to be good a the things needed to make your game work. So if you're looking at Nvidia SDK samples or papers for SIGGRAPH or something of the sort, you should ask yourself the following questions:

-What benefits does the technique give me?
-What restrictions or drawbacks associated with it?

If you can come up with concise answers for these questions, you can evaluate whether they fill a need for your game. This way you can match needs to different techniques, and choose them based on which fulfills your requirements the best. For example let's say your engine needs shadows. This is general problem, so it will have general solutions: the two popular choices being shadow maps and shadow volumes. Then within shadow maps there are other problems that require solutions:

shadow map filtering:
-Percentage Closer Filtering
-Variance Shadow Maps
-Exponential Shadow Maps

shadow map resolution optimization for directional lights:
-Cascaded Shadow Maps
-Perspective Shadow Maps

soft-shadows:
-Percentage-closer soft shadows
-Screen-space blur

Then from here you could compare techniques individually, and evaluate their relative strengths and weaknesses.

This topic is closed to new replies.

Advertisement