galaxy
galaxy copied to clipboard
Real-Time C++20 Game/App Engine. Built on data-driven design principles and agile software engineering.
galaxy
Real-Time C++20 Game/App Engine. Built on data-driven design principles and agile software engineering.
Building
Requirements: 64bit OS Doxygen Doxygen Dark Theme
Windows:
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
andif 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.
- Supported:
- 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/