galaxy
Real-Time C++20 Game/App Engine. Built on data-driven design principles and agile software engineering.
galaxy

Windows Documentation Status Code Quality CII Best Practices Apache 2.0 Licensed

Real-Time C++20 Game/App Engine. Built on data-driven design principles and agile software engineering.

galaxy

Building

Requirements: 64bit OS Doxygen Doxygen Dark Theme

Windows:

Visual Studio 2022

Major Components:

Desktop development with C++
Game development with C++

Minor Components:

Windows Universal CRT SDK
Windows SDK 10.0.20348.0
Windows Universal C Runtime

Building Instructions:

git clone --recursive https://github.com/DomRe/galaxy.git galaxy
git submodule update --init --recursive
cd galaxy
Open galaxy.sln and go Build -> Rebuild Solution.

Linux:

Only ubuntu is supported.

CMake v3.24 Ubuntu 22.04 LTS – OR – WSL2 - Ubuntu

Coming Soon.

MacOS:

Unsupported, due to terrible support of Modern C++ and OpenGL.

Scripts:

There are additional helper scripts located in the scripts folder. In order to run these, you require a MSYS2 installation installed on your PATH.

Documentation

See online documentation.

Features

May be out of date.

  • Uses Modern C++ design principles, built on C++20.
  • Unit Testing and Sandbox Testing.
  • Application and State Management.
  • AI Algorithms.
  • Async programming.
  • Audio streaming and abstraction.
  • Entity-Component-System.
  • Config Engine.
  • GUID generator.
  • Scene Stack.
  • Error Handling.
  • Logging using Sinks and leveraging constexpr and if constexpr.
  • Event dispatcher based on subscribing and listeners.
  • Virtual FileSystem
  • Database Support using SQLite.
  • Serialization to JSON.
  • Real-Time 2D rendering framework.
    • Modern Core OpenGL 4.5
    • Animations
    • Text
    • Post-Processing
    • Primitives
    • Shading/Textures
    • Etc.
  • Input Abstractions.
  • Tiled Map parsing and rendering.
    • Supported:
      • Tiled 1.4.3 .json maps.
      • Loading maps from Tiled Worlds.
      • Base64 encoding.
      • zlib compression.
      • gzip compression.
    • Limitations:
      • Only renders right-down maps.
      • Only renders topdown objects.
    • Unsupported:
      • Tiled projects.
      • External Tiled assets.
      • Text objects.
      • Terrain.
      • Wang-Sets.
      • Tile Flipping.
  • Compression/Decompression Algorithms.
  • Rect Packing.
  • Physics Engine using Box2D.
  • Platform Abstractions.
  • Resource Management.
    • Fonts
    • Languages
    • Audio
    • Scripts
    • Shaders
    • Textures
  • Lua Scripting.
  • RMLUI Support.
  • ImGui Support.

Contributing / Feedback / Issues

Feel free to open an issue for feedback, bug reports, ehancements, issues, etc, and pull requests for contributions. (Don't forget to add yourself to the credits section below.)

Credits