2013-05-06

Planning My Next Engine Iteration

Every 1.5 years or so I make a new iteration of my engine, Aether3D. The reason is that in that time I have learned many new aspects of engine design and I become dissatisfied with current codebase. So, here I am again, planning for the next iteration. I want to see at least the following management/tech features in my next iteration:

* Forward+ renderer (OpenGL 4.3 and D3D11 code paths)
* Unit tests (including automated tests for asset import pipeline)
* Better documentation, more example code/screencasts.
* Level editor in Qt, working on every supported desktop OS.
* Better animation support (blending, quaternions).
* 3ds Max and Blender exporter.
* OpenGL ES 3.0 instead of 2.0, using maybe a deferred renderer.
* OS X will get whatever OpenGL context is the most recent in future.
* Instancing.
* Particle system.
* Explore possibilities for using Compute Shaders for postprocessing.
* Some kind of realtime GI solution.
* No leaked resources.
* Simultaneous release of new features for every platform.

The common theme with many of the features above comes from this Wayne Gretzky quote:
A good hockey player plays where the puck is. A great hockey player plays where the puck is going to be.

Well, none of the listed features are really new, but not many current
engines support them. I don't know when I ship all those features, but I'm starting coding NOW.