Files
jimmyabvandClaude Sonnet 4.6 ab31bba21e Adopt Claude Code Game Studios template, configure Unity engine, document Combat Mode
- Install CCGS agent/skill/hook framework (.claude/, docs templates, GitHub issue/PR templates)
- Configure CLAUDE.md and technical-preferences.md for Unity 6000.3.3f1 (C#, URP, collider-based mouse picking)
- Point engine reference import at docs/engine-reference/unity/ and remove unused Godot/Unreal reference docs
- Add Version Awareness section to unity-specialist agent
- Set production/review-mode.txt to lean
- Add design/gdd/combat-mode.md: reverse-documented GDD for the vs-AI Combat mode, confirming it as the foundation for the guion.md narrative campaign (separate from Classic mode)
- Add docs/architecture/ADR-0001: documents the existing board-state/singleton/per-mode architecture and the decision to keep Classic and Combat modes permanently separate
- Add docs/architecture/control-manifest.md: programmer rules sheet sourced from ADR-0001 and Unity 6 engine reference docs
- Continue in-progress Mono/Classic and Mono/Combat refactor (ScoreManager, scene/prefab updates)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-20 10:08:10 -03:00

1.0 KiB

paths
paths
src/gameplay/**

Gameplay Code Rules

  • ALL gameplay values MUST come from external config/data files, NEVER hardcoded
  • Use delta time for ALL time-dependent calculations (frame-rate independence)
  • NO direct references to UI code — use events/signals for cross-system communication
  • Every gameplay system must implement a clear interface
  • State machines must have explicit transition tables with documented states
  • Write unit tests for all gameplay logic — separate logic from presentation
  • Document which design doc each feature implements in code comments
  • No static singletons for game state — use dependency injection

Examples

Correct (data-driven):

var damage: float = config.get_value("combat", "base_damage", 10.0)
var speed: float = stats_resource.movement_speed * delta

Incorrect (hardcoded):

var damage: float = 25.0   # VIOLATION: hardcoded gameplay value
var speed: float = 5.0      # VIOLATION: not from config, not using delta