Skip to content

aminere/starports

Repository files navigation

Starports Space Defense

Thumbnail Thumbnail2

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.

⚠️ Windows 10 and Visual Studio 2019 are required

How To Build

  • Run BuildEditor.bat or BuildGame.bat
  • Or build from the solution files EditorLauncher.sln or GameLauncher.sln

How To Run

  • Run LaunchEditor.bat to launch the editor
    • Open Game/data/menu/touchtostartscene.xml to play the game in the editor
  • Run LaunchGame.bat to launch the game

How To Debug

  • From EditorLauncher.sln

    • Ensure the Debugging -> Working Directory is Game
    • Hit Play
  • 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 is Game
    • Hit Play

Engine Features

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

About

C++ code of "Starports: Space Defense" including the engine and tools

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published