What is this repository about?
This is the full source code to Starports Space Defense, a mobile 3D tower defense I made and released throughout 2014/2015
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. This engine is a continuation of VLAD Heavy Strike's engine.
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, GLES2.0, 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)
- Resource abstraction model
- 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
- DependencyViewer tool that displays reference and dependency information across objects
- Data packaging tool for optimal data loading at runtime