AtomBuilder Game Engine

AtomBuilder is a game engine built in C++. The latest stable version runs under my home-made playable 2D game – Asteroid. The game is simply controlling a rocky to shoot down all the enemy turret, while avoiding enemies’ bullets. The 4 walls can bounce of the player’s rocky, and the top cyan walls can bounce of the bullets too.

asteroid

2D game Asteroid built on AtomBuilder game engine

You can download the source code of the latest stable version with Asteroid from my GitHub repository. I developed the engine and game in Visual Studio 2010, and Asteroid run with DirectX. I am still figuring out how to build a portable exe file. So if you want to try the game, you might need Visual Studio 2010 and DirectX SDK to compile the source code. As you might see, only Windows PC supported.

Besides 2D, I extend the engine to support 3D. Although it is still not stable, the engine now support OpenGL to render 3D scene, with per-fragment lighting shading. I also build a tool to support FBX files so that it can convert a custom FBX file into my engine recognizable binary file. The engine also support Octree spatial partitioning now. With Octree supported, the collision detection became faster.

GameEngineOctreeAndLight

Octree render enable in debug mode. Different level of octree node drawn with different color of bounding box (for example, level 0 is black, level 1 is blue, level 2 is green, etc.). The white frame boxes are the objects’t bounding box itself. Notice this scene also rendered with per-fragment lighting enable.

GameEngineOctreeDemo

Another Octree drawing enable scene but without lighting, only texture color render for objects.

If you are interested to look at my unstable source codes which support Octree, thrid-person camera, FBX converting, and OpenGL per-fragment shading, you can submit a contact form to me (Please indicate the reasons for requesting my source code in Comments session because I don’t want someone copy my code for academic assignments submission):

Leave a Reply

Your email address will not be published. Required fields are marked *