@lichtso: no windows for your game engine?
The engine has no Windows support so far, because MSVS doesn't even support c++11 and I'm already using c++14 features …
I tried some cross compilers, GCC and Clang for Windows but as long as you don't use MSVS you can't link against the system libraries, so it didn't work so far.
could you say whose of this features were bigger amount of work and
which ones here were less work to run?
Sorted them ascending from simple/less amount of work to hard/took long to implement:
- Localization: Support for different languages is a nice feature and really simple to code.
- Material Mapping: Only one texture lookup in the shader, no problem
- Using C++ 11 features: At the time I started this project I had no idea of c++11 only programmed c++03 so far, but it was intuitive and I learned quickly how to use all the new features of the language.
- Port from Mac OS 10.8 to Ubuntu 12.04: There are people out there who think that porting modern c++ code is nearly impossible and yes it is true, when it comes to Windows. But as long as you only want unix support, there is absolutely no problem. I installed a Ubuntu on an extern hard drive and put LLVM 3.4 and GIT on it, cloned my GIT-repository, built the make file and it worked. I just had to fix some system unique things like the path to the safe games … well, of course I had the advantage of using only cross platform libraries, right from the beginning, so it went like It went like clockwork.
- Depth of Field / Fog and Edge Smooth / Antialiasing are all simple post processing shaders using the depth buffer.
- Texture Animation: A time uniform in each shader has to be in sync with the physics engines time.
- Deformable Terrain: Needs vertex buffer objects and vertex array objects, OpenGL 3.2 "features" …
- Logarithmic Depth Buffer: The math about it were the hardest part.
- Bump/Normal Mapping and Glass Refraction: Calculating the tangent and bitangent needs a geometry shader and is the hardest part about it.
- Particle Systems on GPU: Transformation feedback is also a OpenGL 3.2 feature and are hard to debug
- GUI and Text: There is no text or GUI rendering in OpenGL. You have to use another library or do it your self. I used SDL_ttf for the text and did the GUI my self, not difficult but lots of work
- Dynamic Shadows: Calculating and applying the shadow maps for all types of light sources took me (too) long
- Dynamic Reflections (Mirrors and Water): The math behind all types of reflections and the frustum clipping of the mirrored world were the worst part about it, using frame buffers and texture projection was fairly simple
- Skeletal Animation: Parsing a COLLADA, calculating the bone poses and implementing the shaders correctly is difficult
- Parallax Occlusion Mapping: Raytracing, Whoo! Keeping the performance and nice visual results is nearly impossible, but I'm okay with that trade off now
- Screen Space Ambient Occlusion: The same as above. Optimizing the performance while keeping the visual results is really difficult
- Deferred Lighting: Well, using something advanced as deferred shading/lighting means inventing your own graphics pipeline and together with maintaining all other graphics features and transparency it is a real pain in the ass and therefore drove me crazy.