Pyxis Game Engine
- C++
- Engine Programming
- Graphics Programming
About
A game engine written in C++ for learning purposes. The goal is to make an adorable 2D game engine engine with an aseprite-like theme.!
This engine was made by following TheCherno's game engine series on Youtube, where he creates the Hazel game engine. For this reason, the code will be almost, if not exactly, the same as it is there.
The project uses Premake 5 to build solution files, and currently has support for windows, but should be feasable to make Linux or Mac support using it.
I currently have a Logging system using spdlog, an Event system, Window and Layers system, ImGui for rendering, and I am currently working on abstracting rendering into my own API so that the engine can use different Renderer API's than just OpenGL, like DirectX12.
Currently Used Frameworks/Libraries/Software/ect.
- GLFW (GLFW is an Open Source, multi-platform library for OpenGL)
- GLAD (Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator)
- GLM (GLM is an OpenGL based C++ mathematics library for graphics software)
- ImGui (Dear ImGui is a bloat-free graphical user interface library for C++)
- spdlog (Very fast, header-only/compiled, C++ logging library.)
- (Planned) ASSIMP (In repository, not yet implemented)
What I've learned
I've learned a lot about:
Projects / Solutions
- Pre-Processor Definitions
- Precompiled Headers
- Core - App Linking
- Solution Building Through Premake5 / Cmake / ect
Programming
- Using linear algebra for lighting calculations and different space matrices
- A lot of practice with Header Definitions and CPP Implementations
- Picking a style and sticking to it (cleaner and more consistent code)
- Static Cast(Compile Time) vs Dynamic Cast (Runtime, does inheritance check)
OpenGL/GLAD/GLFW/ImGui
- Rendering / Graphics pipeline
- Creating and using GLSL shaders
- Phong Lighting
- More practice with meshes, vertices, triangles, ect
- ImGui GUI rendering