- Dependencies
- CMake
- pkg-config
- Mesa OpenGL development files
- Wayland development files
- Wayland protocols
- Google Test development files
- XKB common library development files
- XRandR development files
- Xinerama development files
- XCursor development files
- XInput development files
On Ubuntu, you can install the following packages:
sudo apt-get install \
cmake pkg-config \
libgl1-mesa-dev \
libwayland-dev wayland-protocols \
libgtest-dev libxkbcommon-dev \
libxrandr-dev libxinerama-dev \
libxcursor-dev libxi-dev
On Fedora, you can install the following packages:
sudo dnf install \
cmake pkgconfig \
mesa-libGL-devel \
wayland-devel wayland-protocols \
gtest-devel libxkbcommon-devel \
libXrandr-devel libXinerama-devel \
libXcursor-devel libXi-devel \
bullet bullet-devel \
assimp assimp-devel \
openexr openexr-devel \
imath imath-devel
On Arch-based systems, you can install the following packages:
yay -S \
cmake pkg-config \
mesa libwayland libwayland-protocols \
gtest xkbcommon libxrandr \
libxinerama libxcursor libxi
- Clone the repository
git clone https://github.com/GinOwO/Game-Engine.git
cd GameEngine
- Create a build directory and configure CMake
mkdir -p build
cmake -B build -S .
- Get submodules and build GLFW
git submodule update --init --recursive
cd include/glfw
cmake -B build
cmake --build build
sudo cmake --install build
cd ../../
- Build the project
cmake --build <Repository directory>/GameEngine/build --config Debug --target all --
Note: Copy the absolute path to the build folder and replace "/GameEngine/build"
- Run the project from the build directory
./build/GameEngine
Git pre-push hooks can be enabled by running the following command:
./.githooks/init-hooks.sh
To run the tests, you can use the following command:
cd build/tests
ctest --rerun-failed --output-on-failure --verbose
Style guidelines are enforced using clang-format. To format the code, you can run the following command:
clang-format -i -style=file $(find . -name "*.cpp" -o -name "*.h")
A modified version of the LKML coding style is used in this project.
This project is licensed under the GPL-2.0 License - see the LICENSE file for details