ChikaEngine is a C++20 game engine project. The goal is to build a usable, learning-oriented engine with clear architecture, readable code, and incremental milestones.
engine/: core engine source code.Assets/: runtime assets and test resources.docs/: design notes and development documentation.CMakeLists.txt: root build entry.pyproject.tomlanduv.lock: Python tooling environment used by build/codegen scripts..clang-format: C++ formatting rules.
- Prefer out-of-source builds:
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Debugcmake --build build
- Do not modify vendored third-party code under
engine/ThirdParty/unless explicitly asked. - Do not introduce new third-party dependencies without explaining why.
- Keep C++ standard at C++20 unless explicitly changed.
- Respect
.clang-format.
- Before editing, inspect relevant files and summarize the plan.
- Prefer small commits and focused changes.
- For risky refactors, first create a design note in
docs/. - After modifying C++ or CMake files, run configure/build commands when possible.
- Any task that modifies repository files must add or update a dated entry in
docs/develop.md, including the changes, reasons, architecture impact, verification, and remaining work. - When build errors occur, fix the root cause instead of hiding warnings.
- Avoid broad rewrites unless the user explicitly asks.
- Keep platform, rendering, physics, scripting, asset, and editor logic separated.
- Prefer explicit ownership and RAII.
- Avoid global mutable state unless there is a documented engine-level reason.
- Public APIs should be documented when behavior changes.
- Make the project easy to configure and build on a fresh machine.
- Improve documentation for setup and architecture.
- Stabilize core engine loop and module boundaries.
- Add tests or sample scenes where practical.