2013-07-20

Developing a New Engine


I'm now two months into developing my new engine and here's a breakdown of currently working features:

Scene Graph
Models and Cameras are scene graph nodes so you can make hierarchies like in Unity.

Rapid Iteration
You can modify shaders and textures while the game is running, allowing fast iteration. This is implemented using a FileWatcher class that registers created objects.

Unit Testing
I'm not using any framework, my tests are simple programs that use return codes that are used to generate a HTML report.

D3D11 Shader Reflection
Because my engine has GL and D3D renderers with support for user supplied shaders, I reflect the uniform names and create constant buffers from them.

BMFont support
BMFont is widely used in games industry so I wrote a reader for its ASCII and binary formats.

Texture Atlas support
Supports Texture Packer exported Ogre/CEGUI format.

C++11 lambdas
Useful for iterating containers of models, render queue elements  etc. and applying operations on them.