This branch contains the complete rewrite of Cosec Engine, inspired by The Cherno's Game Engine series. The goal of this rewrite is to build a high-performance, modular, and scalable game engine from the ground up, following best practices.
- C++17 or later
- CMake (minimum version 3.20)
- spdlog (included as a submodule)
- GLFW (included as a submodule)
- Glad (included in the repository)
- ImGui (included as a submodule)
- GLM (included as a submodule)
-
Clone the repository and switch to the rewrite branch:
git clone -b rewrite https://github.com/CosecSecCot/Cosec-Engine.git cd Cosec-Engine
-
Create a build directory and configure CMake:
mkdir build && cd build cmake ..
By Default
CosecEngine
builds as a Static library.If you want to build
CosecEngine
as a Shared library use:mkdir build && cd build cmake .. -DCOSEC_SHARED=ON # Build as a Shared library instead
By default, X11 is selected.
If you want to enable Wayland instead use:
cmake .. -DUSE_WAYLAND=ON
-
Compile the engine:
For Release Mode:
cmake --build . -DCMAKE_BUILD_TYPE=Release
For Debug Mode:
cmake --build . -DCMAKE_BUILD_TYPE=Debug
-
Run the executable:
Executable file is stored in
bin/Release-x86_64/Sandbox/
for Release Mode:cd <root-directory> ./bin/Release-x86_64/Sandbox/Sandbox
bin/Debug-x86_64/Sandbox/
for Debug Mode:cd <root-directory> ./bin/Debug-x86_64/Sandbox/Sandbox
- Logging
- Setup Window with GLFW
- Window Events
- Input Handling
- ImGui Setup
-
Renderer
draws a triangle - Abstraction of
Renderer
API
This README is for the rewrite
branch of Cosec Engine and will be
updated as development progresses.