Skip to content

Add CLAUDE.md: AI assistant guide for MMO project#38

Open
bryfur wants to merge 1 commit into
mainfrom
claude/claude-md-ml2e7392tzdi6q9b-Gwbck
Open

Add CLAUDE.md: AI assistant guide for MMO project#38
bryfur wants to merge 1 commit into
mainfrom
claude/claude-md-ml2e7392tzdi6q9b-Gwbck

Conversation

@bryfur
Copy link
Copy Markdown
Owner

@bryfur bryfur commented Jan 31, 2026

Summary

Added comprehensive CLAUDE.md documentation to guide AI assistants (like Claude) working on the MMO project. This file serves as a quick reference for project structure, architecture, build instructions, and coding conventions.

Key Changes

  • Project Overview: High-level description of the 3D MMO architecture (C++20, SDL3, EnTT ECS, Jolt Physics, Asio networking)
  • Quick Reference: Essential build and run commands with critical warnings about avoiding clean rebuilds
  • Critical Rules: Documented build best practices, testing approach, and shader compilation requirements
  • Repository Structure: Complete directory layout with descriptions of each major component
  • Architecture Documentation:
    • ECS pattern and component/system organization
    • Networking layer (TCP, serialization, connection flow)
    • Rendering pipeline (SDL3 GPU, HLSL shaders, features)
    • Physics integration (Jolt, collision layers, server-authoritative)
  • Coding Conventions: Naming standards (enforced by clang-tidy), namespace organization, formatting rules, coordinate system, and shader conventions
  • Build System: CMake configuration, dependency management, and CI setup
  • Key Files Reference: Table of important files with their purposes

Notable Details

  • Emphasizes that incremental builds are mandatory (clean rebuilds take excessive time)
  • Documents the Y-up coordinate system and radian-based rotations
  • Specifies shader binding sets and uniform struct alignment requirements
  • Includes complete namespace hierarchy for the project
  • References all major dependencies and their integration method (FetchContent)

https://claude.ai/code/session_01XoDW63YfhCcAW74Gwe1sve

Copilot AI review requested due to automatic review settings January 31, 2026 14:21
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds CLAUDE.md, a focused guide for AI assistants working on the MMO project, documenting architecture, build system, conventions, and key project structure so tools can navigate and reason about the codebase effectively.

Changes:

  • Introduces a comprehensive project overview covering ECS, networking (Asio/TCP), rendering (SDL3 GPU + HLSL→SPIR-V), and physics (Jolt).
  • Documents build and run workflows, repository layout, coding conventions, shader conventions, and dependency management via CMake + FetchContent.
  • Adds a quick-reference section listing key files and their roles across client, server, engine, and data layers.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread CLAUDE.md
## Build System

- CMake 3.20+ with FetchContent for all dependencies
- Dependencies are statically linked and auto-fetched: SDL3, EnTT, Jolt, Asio, tinygltf, GLM, nlohmann/json, SDL3_ttf, SDL3_image, SDL_shadercross
Copy link

Copilot AI Jan 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The statement that all dependencies are "statically linked and auto-fetched" is slightly misleading for the SDL3/SDL3_ttf/SDL3_image stack: src/engine/CMakeLists.txt first tries find_package and only falls back to vendored static builds when system libraries are missing, so on systems with SDL3 installed they won't actually be auto-fetched or necessarily statically linked. It would be more accurate to clarify that these libraries are vendored and linked statically only when system versions are unavailable or incorrect.

Suggested change
- Dependencies are statically linked and auto-fetched: SDL3, EnTT, Jolt, Asio, tinygltf, GLM, nlohmann/json, SDL3_ttf, SDL3_image, SDL_shadercross
- Most dependencies are statically linked and auto-fetched via FetchContent: EnTT, Jolt, Asio, tinygltf, GLM, nlohmann/json, SDL_shadercross
- SDL3, SDL3_ttf, and SDL3_image are used from system packages when available (via `find_package`) and only auto-fetched / linked statically when suitable system versions are unavailable or incorrect

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants