What is this repository about?
This is the full source code to VLAD Heavy Strike, a mobile 3D shooter I made and released in 2013.
In addition to the game source, this includes the full game pipeline (engine, editor, and tools), which I developed from scratch on my free time, starting around January 2010.
Why make a game engine from scratch?
I've been interested in game development technology for a long time, even more than playing or making games. I made my university's thesis project about a Game Development Environment.
Non exhaustive list of Engine Features
- Cross platform targets (PC / iOS / Android / Windows Phone 8)
- 3D rendering using OpenGL, GLES1.1, and DirectX11
- Memory allocation tracking (full leak & allocation reporting)
- 3D Math library
- File system abstraction
- Network socket abstraction
- Multi-threading abstraction
- Touch and Key input abstraction
- FBX and PNG support through fbxsdk and libpng
- OGG and WAV support through cricket audio
- Event system
- Object Model framework, with serialization, ref. counting, weak handles, and polymorphism support
- Entity Component System (ECS)
- Generic entity hierarchy handling allowing to have 3D or 2D hierarchies, or both in the same tree
- Quad-tree partitioning
- Collision handling
- Context stacking and switching
- WYSIWYG Game Editor for Game and Level design
- The game can be played in the editor and game contexts can be inspected at run-time
- ObjectViewer tool, allows to inspect all alive objects at any given time