AI readme

This commit is contained in:
Chewico 2026-10-04 20:50:43 +02:00
parent 9953bc13e9
commit 26edf2c408

211
README.md
View File

@ -1,2 +1,211 @@
# DeerithEngine # MyEngine
A C++20 game engine project built with CMake and OpenGL.
## Requirements
Ubuntu with the following packages installed:
* CMake >= 3.20
* GCC / G++
* Make or Ninja
* OpenGL development libraries
* GLFW3
* GLM
* spdlog
* fmt
Install the dependencies with:
```bash
sudo apt update
sudo apt install \
build-essential \
cmake \
ninja-build \
libglfw3-dev \
libglm-dev \
libspdlog-dev \
libfmt-dev \
libgl1-mesa-dev
```
## Building
Clone the repository and enter the project directory:
```bash
git clone <repository-url>
cd DeerithEngine
```
Create a separate build directory:
```bash
cmake -S . -B build -G Ninja
```
Build the project:
```bash
cmake --build build
```
The project uses C++20.
## Running
After a successful build, run the sandbox application with:
```bash
./build/sandbox/Sandbox
```
If the executable is generated in a different location depending on the CMake configuration, you can find it with:
```bash
find build -type f -executable -name "Sandbox"
```
Then execute the resulting path.
## Project Structure
```text
MyEngine/
├── CMakeLists.txt
│
├── deerith_engine_core/
│ ├── CMakeLists.txt
│ ├── include/
│ │ └── deerith/
│ └── src/
│
├── deerith_engine_client/
│ ├── CMakeLists.txt
│ ├── include/
│ │ └── deerith/
│ ├── src/
│ └── shaders/
│
├── sandbox/
│ ├── CMakeLists.txt
│ └── src/
│ └── main.cpp
│
└── build/
```
The `build/` directory is generated by CMake and should not be committed to Git.
## CMake Targets
### DeerithCore
`DeerithCore` is the engine's core library.
Dependencies:
* `spdlog`
* `fmt`
It exposes its headers through:
```text
deerith_engine_core/include
```
### DeerithClient
`DeerithClient` contains the graphics/client-side engine functionality.
Dependencies:
* `DeerithCore`
* OpenGL
* GLFW
* GLM
It also copies the engine shaders into the build directory automatically.
### Sandbox
`Sandbox` is the executable used to test and develop the engine.
It links against:
```text
DeerithClient
```
## Shader Files
Shaders are located in:
```text
deerith_engine_client/shaders/
```
CMake automatically copies them to the corresponding build directory:
```text
build/deerith_engine_client/shaders/
```
This is done by the `DeerithClientShaders` custom target.
## Clean Build
To completely remove the generated build files:
```bash
rm -rf build
```
Then configure and build again:
```bash
cmake -S . -B build -G Ninja
cmake --build build
```
## Debug Build
For a Debug build:
```bash
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug
cmake --build build
```
Run the application:
```bash
./build/sandbox/Sandbox
```
## Release Build
For a Release build:
```bash
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
```
## Development
When adding new `.cpp` files to the engine, CMake automatically detects them through `GLOB_RECURSE` with `CONFIGURE_DEPENDS`.
After adding or removing source files, rebuild normally:
```bash
cmake --build build
```
If CMake does not detect a project configuration change correctly, reconfigure:
```bash
cmake -S . -B build -G Ninja
```