Enginator5000 is a CPU-based game engine being developed in my spare time. I mostly focus on the rendering side of a game engine and coded from basic level concepts (triangle rasterization, Z-Buffer, etc.) to high-level concepts.

So far, I have implemented Bresenham’s line algorithm, triangle rasterization (filling triangles), basic camera and perspective projection, back-face culling. When I start XML based scene loading (includes loading .obj files, scene hierarchy and instancing) I took a break because of my thesis (I am in writing process…).

Enginator5000 depends on GLM for matrix operations, SDL for creating window and prompting user input (keyboard and mouse), and RapidXML for parsing scenes.

I am planning to work on Enginator5000 again in Winter 2017 (after I am done with my thesis). So, hopefully, I will update this page, tips, and GitHub page of Enginator5000 a lot in the winter.

Warning: Current code on GitHub/Enigator5000 is highly unstable, and immature. Lots of radical changes may happen in the near future.

Some Screenshots

Bresenham's line algorithm (considers all octants -cases-) with triangle filling (rasterization). here, triangle is also animated with a simple rotation.

Bresenham’s line algorithm (considers all octants -cases) with triangle filling/rasterization. Here, triangle is also animated with a simple rotation.

cruiser.obj mesh with back-face culling and triangle filling/rasterization.

cruiser.obj mesh with back-face culling and triangle filling/rasterization.