
Voxel Sandbox Engine
Description
The voxel game engine was created as a passion project, my favourite genre of games is sandbox simply because of the limitless potential of user generated content. My favourite games growing up were LittleBigPlanet and Minecraft, and thus I wanted to make a small scale engine specifically tailored to fit that genre of game and have the necessary optimisations to make it run well.
The engine is built around an entity component system but a much more lightweight one than seen in my DirectX11 game engine, this engine performs most of it's optimisations by using extra system memory. For example one thing it does is keep a list of all renderable objects in a static array for rendering, to allow rapid object instantiation this array reserves space for hundreds of objects up front and only allows usage of those addresses when they're needed.

The abstraction structure of the engine can be seen in the image above, with the public facing engine APIs sitting on top of Windows, SDL and OpenGL. The engine itself is seperated into three libraries: Engine, Engine CORE and Engine Renderer. This maintains a healthy level of seperation, something I wanted to do in my previous game engine but couldn't refactor.
What I learnt.
In the design and specification phase of this project I did a lot of research into various existing game engines, specifically looking at ID Softwares engines where they make use of dynamic link libraries to link the game into the engine rather than the other way around (giving the engine complete control). From the research I have expanded my knowledge of the field substantially.
Outside of research during implementation I learnt OpenGL and the GLSL shader language, I had experience with DirectX11 before this project but had never used OpenGL.
Media


