This is the full C++ source code to Starports Space Defense, a mobile 3D tower defense released in 2015.
In addition to the game source, this includes the full game pipeline (engine, editor, and tools). This engine is a continuation of VLAD Heavy Strike's engine.
- Run
BuildEditor.bat
orBuildGame.bat
- Or build from the solution files
EditorLauncher.sln
orGameLauncher.sln
- Run
LaunchEditor.bat
to launch the editor- Open
Game/data/menu/touchtostartscene.xml
to play the game in the editor
- Open
- Run
LaunchGame.bat
to launch the game
-
From
EditorLauncher.sln
- Ensure the
Debugging -> Working Directory
isGame
- Hit Play
- Ensure the
-
From
GameLauncher.sln
- Ensure
Shoot\tools\FileSystemGenerator\vc\FileSystemGenerator.sln
was built - Ensure game data was built by running
Game/FileSystemGenerator.bat
- Ensure the
Debugging -> Working Directory
isGame
- Hit Play
- Ensure
Low Level:
- 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
High Level:
- 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
Tool Side:
- 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