galaxy icon indicating copy to clipboard operation
galaxy copied to clipboard

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.
  • Only US keyboard layout is supported.

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

  • Uses SMAA. Copyright (C) 2011 by Jorge Jimenez, Jose I. Echevarria, Belen Masia, Fernando Navarro and Diego Gutierrez.
  • doxygen-dark-theme.
  • sercode.ttf.
    • Used in various icons and logos.
  • galaxy image.
    • Image Credit: ESA/Hubble & NASA, A. Filippenko.
    • See NASA media guidelines.
    • Used for non-commerical purposes.
  • Supercluster Icon and Logo.
    • Image Credit: NASA/JPL-Caltech/University of Wisconsin
    • See NASA media guidelines.
    • Used for non-commerical purposes.
  • Any "dependency" i.e. "software library" should/will usually have an associated LICENSE/COPYING/AUTHORS file included.
  • Resources used in sandbox:
    • Various from OpenGameArt. No copyright infringement intended.
  • https://learnopengl.com/
  • https://github.com/ocornut/imgui/issues/707
  • https://github.com/Asmodean-/SMAA-OpenGL/
  • https://github.com/lettier/3d-game-shaders-for-beginners
  • https://materialdesignicons.com/