Guidance for AI coding assistants working in this repository.
This file is the entry point — read it first. Topic-specific
detail lives under Skills/ and is linked from the relevant section below.
Fling Engine is a cross-platform Vulkan game engine in C++, currently built as one
CMake project with a FlingEngine library, a Sandbox game/editor, and a FlingTests
Catch2 test target. See the root README.md for the project pitch and
platform setup (Vulkan SDK, GLFW, etc.).
- First time in a fresh clone:
./Init.sh(Linux) /Init.bat(Windows). This pulls git submodules, builds/installs Catch2 locally, and configures CMake intobuild/. - Day to day: reconfigure
build/for the mode you want, e.g.cmake -B build -DCMAKE_BUILD_TYPE=Debug, then build with your generator (e.g.cmake --build build --parallel). -DDEFINE_SHIPPING=ONstrips dev-only code gated behind#ifdef FLING_SHIPPING.- Full detail:
Skills/building.md.
- Tests use Catch2 3, target
FlingTests, source underFlingTests/src. - Run the built binary directly, e.g.
./build/FlingTests/bin/FlingTestson Linux (see.github/workflows/build.ymlfor the exact per-platform paths). - Full detail, including how to add a new test file:
Skills/testing.md.
- Style doc:
Skills/coding-style.md— documentation comment conventions (no@brief, no/*!), enforced bypython3 scripts/check_comment_style.py. - Layout/formatting is enforced by
.clang-formatat the repo root (runclang-format, not manual formatting judgment). - Applies to first-party code only (
FlingEngine/,Sandbox/,FlingTests/). Never edit code underexternal/— it's vendored third-party code.
- Orientation for where things live today, and the in-progress module split
(Core, Graphics, Gameplay, Resources, Editor):
Skills/architecture.md— read it before restructuring includes or CMake targets. - Adding a new CMake module (folder +
fling_add_module, with a UI example):Skills/adding-modules.md.
- Branching: feature branches off
main, PR back intomainwhen done and tested. - CI (
.github/workflows/build.yml) builds on Linux (GCC/Clang) and Windows (MSVC/MinGW) and runsFlingTestsplus the comment-style check on every PR — make sure changes pass locally first.
CLAUDE.md at the repo root imports this file directly (@AGENTS.md), so there is
nothing Claude-specific to duplicate here.
This repo ships a committed .claude/settings.json that registers the
flingengine/skills-marketplace
marketplace and enables its fling-engine plugin (build/test/coding-style/module-
architecture skills). Opening this repo in Claude Code and trusting the folder will
offer to install it automatically — no manual /plugin marketplace add needed.