Skip to content

Latest commit

 

History

History
65 lines (49 loc) · 3.08 KB

File metadata and controls

65 lines (49 loc) · 3.08 KB

AGENTS.md

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.

What this project is

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.).

Build

  • First time in a fresh clone: ./Init.sh (Linux) / Init.bat (Windows). This pulls git submodules, builds/installs Catch2 locally, and configures CMake into build/.
  • 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=ON strips dev-only code gated behind #ifdef FLING_SHIPPING.
  • Full detail: Skills/building.md.

Tests

  • Tests use Catch2 3, target FlingTests, source under FlingTests/src.
  • Run the built binary directly, e.g. ./build/FlingTests/bin/FlingTests on Linux (see .github/workflows/build.yml for the exact per-platform paths).
  • Full detail, including how to add a new test file: Skills/testing.md.

Coding style

  • Style doc: Skills/coding-style.md — documentation comment conventions (no @brief, no /*!), enforced by python3 scripts/check_comment_style.py.
  • Layout/formatting is enforced by .clang-format at the repo root (run clang-format, not manual formatting judgment).
  • Applies to first-party code only (FlingEngine/, Sandbox/, FlingTests/). Never edit code under external/ — it's vendored third-party code.

Architecture / module layout

  • 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.

Contribution conventions

  • Branching: feature branches off main, PR back into main when done and tested.
  • CI (.github/workflows/build.yml) builds on Linux (GCC/Clang) and Windows (MSVC/MinGW) and runs FlingTests plus the comment-style check on every PR — make sure changes pass locally first.

For Claude Code specifically

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.