Starports
C++ code of "Starports: Space Defense" including the engine and tools
Install / Use
/learn @aminere/StarportsREADME
Starports Space Defense

This is the full C++ source code to <a href="https://franticsoftware.com/starports">Starports Space Defense</a>, 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 <a href="https://franticsoftware.com/vlad">VLAD Heavy Strike</a>'s engine.
:warning: Windows 10 and Visual Studio 2019 are required
How To Build
- Run
BuildEditor.batorBuildGame.bat - Or build from the solution files
EditorLauncher.slnorGameLauncher.sln
How To Run
- Run
LaunchEditor.batto launch the editor- Open
Game/data/menu/touchtostartscene.xmlto play the game in the editor
- Open
- Run
LaunchGame.batto launch the game
How To Debug
-
From
EditorLauncher.sln- Ensure the
Debugging -> Working DirectoryisGame - Hit Play
- Ensure the
-
From
GameLauncher.sln- Ensure
Shoot\tools\FileSystemGenerator\vc\FileSystemGenerator.slnwas built - Ensure game data was built by running
Game/FileSystemGenerator.bat - Ensure the
Debugging -> Working DirectoryisGame - Hit Play
- Ensure
Engine Features
Low Level:
- Cross platform targets (PC / iOS / Android / Windows Phone 8)<br>
- 3D rendering using OpenGL, GLES2.0, and DirectX11<br>
- Memory allocation tracking (full leak & allocation reporting)<br>
- 3D Math library<br>
- File system abstraction<br>
- Network socket abstraction<br>
- Multi-threading abstraction<br>
- Touch and Key input abstraction<br>
- FBX and PNG support through fbxsdk and libpng<br>
- OGG and WAV support through cricket audio<br>
- Event system<br>
High Level:
- Object Model framework, with serialization, ref. counting, weak handles, and polymorphism support<br>
- Entity Component System (ECS)<br>
- Resource abstraction model
- Generic entity hierarchy handling allowing to have 3D or 2D hierarchies, or both in the same tree<br>
- Quad-tree partitioning<br>
- Collision handling<br>
- Context stacking and switching<br>
Tool Side:
- WYSIWYG Game Editor for Game and Level design<br>
- The game can be played in the editor and game contexts can be inspected at run-time<br>
- ObjectViewer tool, allows to inspect all alive objects at any given time<br>
- DependencyViewer tool that displays reference and dependency information across objects<br>
- Data packaging tool for optimal data loading at runtime<br>
Related Skills
node-connect
352.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
