galaxy
Application Programming Library using C++20, with a Data driven design and Test driven development.
galaxy

Windows Linux Documentation Status Code Quality CII Best Practices Apache 2.0 Licensed

Application Programming Library using C++20, with a Data driven design and Test driven development.

galaxy

Supercluster - Application Builder/Editor for Galaxy.

supercluster

Videos on Supercluster

Building

Only supports 64bit systems. Windows 10 and Ubuntu are the only officially supported OS. MacOS is not supported.

Windows:

You will need to install at least Visual Studio 2019 16.11 Preview 3, and set the Win-SDK minimum version to 10.0.19041.0.

Make sure C++ desktop development, cmake tools, linux development, and game development with C++ are enabled when installing.

git clone --recursive https://github.com/DomRe/galaxy.git galaxy_engine
git submodule update --init --recursive
cd galaxy_engine
cmake -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Release -DGALAXY_BUILD_TESTS=ON -DGALAXY_ENABLE_DOXYGEN=OFF -Bbuild -H.
cd build
msbuild galaxy_engine.sln

OR open galaxy_engine.sln and press F5 to build.

Linux:

This has only been tested on Ubuntu 21.04.

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt upgrade
sudo apt install make build-essential perl dkms git manpages-dev software-properties-common gcc gcc-11 g++-11 cmake libfreetype-dev libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libasound2-dev libglu1-mesa-dev doxygen
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 --slave /usr/bin/g++ g++ /usr/bin/g++-11 --slave /usr/bin/gcov gcov /usr/bin/gcov-11
git clone --recursive https://github.com/DomRe/galaxy.git galaxy_engine
cd galaxy_engine
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DGALAXY_BUILD_TESTS=ON -DGALAXY_ENABLE_DOXYGEN=OFF -Bbuild -H.
cd build
make all

Documentation

See online documentation.

Or generate offline with Doxygen, with ENABLE_DOXYGEN set to ON:

cmake -DGALAXY_ENABLE_DOXYGEN=ON -Bbuild -H.
cd build
make doxygen

Features

  • Uses Modern C++ design principles, built on C++20.
  • Tiled map editor parsing.
  • Modern Core OpenGL renderer.
  • Platform abstraction.
  • Audio streaming.
  • Entity component System.
  • Fast Logging.
  • Physics Engine.
  • Event Dispatcher.
  • JSON support.
  • Lua Scripting.
  • GUI.
  • Development Toolset.
  • Resource Management.
  • Filesystem Management.
  • Application Management.

Tiled Implementation.

  • 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.

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