A C++20 3D application & game framework (with support for "Pseudo-2D"), built on top of SDL2 & OpenGL.
- 64-bit Windows
No plans to support 32-bit systems.
Important
This library does not currently support clang/LLVM!
- GCC (13+) via MinGW (MSYS (Recommended), Cygwin, TDM-GCC)
- Make
- 7-zip: Only required for packing library releases.
If using MSYS, all of them must be installed via pacman:
For toolchain (GCC): pacman -S mingw-w64-x86_64-toolchain
For make: pacman -S make
(Optionals)
For 7-zip: mingw-w64-x86_64-7zip
In a single line: pacman -S mingw-w64-x86_64-toolchain make mingw-w64-x86_64-7zip
For the old system, se the legacy-system
branch.
- Clone the repository (or just download it);
- Enter the repository via command line (whichever has GCC);
- Run
make all
; - Done! The result is located in the generated
output/
folder.
Inclusion of these on your project are not required, and strictly forbidden (except OpenGL, which is required). Since a version of (most of) them are bundled1, including your own version of those will cause issues.
Name | Purpose | Bundled? |
---|---|---|
SDL2 | Window & Input handling | Yes (Lib file2) |
GL3W | OpenGL Wrangling | Yes ("Implementation" file3) |
GLAD | OpenGL Wrangling | Yes ("Implementation" file3) |
OpenGL | Graphics backend | No |
SDL2_Mixer | Audio backend | Yes (Lib file2) |
SDL2_Net | Networking Backend | Yes (Lib file2) |
stb_image | Image loading | Yes (Implementation file4) |
nlohmann::jsoncpp | Multiple things | Yes (Header-only5) |
cppcodec | Data encoding & decoding | Only used internally, not required |
CryptoPP | Encryption, decryption, compression & decompression | Yes (Lib file2) |
The API is documented. Should be able to be generated via doxygen (TODO: figure out that).
In the meantime, you can read the headers directly.
see Issues.
See TODO.
Footnotes
-
I.E. specified bundled libraries. Located in the
lib
folder. ↩ -
Either the contents of
.a
files, or the.o
file associated with it. ↩ ↩2 ↩3 ↩4 -
A copy of the source file is located in the
src/new/impl/
folder, and is compiled when all other program parts are. ↩ ↩2 -
Implementation part of header-only libraries. Implementations are located under
src/new/impl/
. ↩ -
"Pure" header-only libraries. ↩