project-mobile-command/CLAUDE.md
StillHammer 3dfaffc75a Setup initial: Mobile Command project with GroveEngine
- Architecture basée sur GroveEngine (hot-reload C++17)
- Structure du projet (src, config, external)
- CMakeLists.txt avec support MinGW
- GameModule de base (hot-reloadable)
- Main loop 10Hz avec file watcher
- Configuration via JSON
- Documentation README et CLAUDE.md

 Build fonctionnel
 Hot-reload validé
🚧 Prochaine étape: Prototype gameplay

🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 11:05:51 +08:00

3.4 KiB

Claude - Mobile Command Development

Rôle

Je suis l'assistant de développement pour le projet Mobile Command.

Contexte du Projet

Mobile Command est un jeu de gestion/survie où le joueur commande un train blindé mobile à travers l'Ukraine en guerre (2022-2025).

Stack Technique

  • Engine: GroveEngine (C++17 hot-reload module system)
  • Build: CMake 3.20+ avec MinGW/GCC
  • Architecture: Main loop + modules hot-reloadable

Structure du Projet

mobilecommand/
├── external/GroveEngine/   # Lien symbolique vers ../groveengine
├── src/
│   ├── main.cpp           # Boucle principale (10Hz)
│   └── modules/           # Modules hot-reloadable (.dll)
│       └── GameModule.*   # Module de jeu principal
├── config/
│   └── game.json          # Configuration
└── build/                 # Dossier de build

Workflow de Développement

Build Initial

cmake -B build -G "MinGW Makefiles"
cmake --build build -j4

Hot-Reload Workflow

  1. Le jeu tourne: ./build/mobilecommand.exe
  2. Éditer un module: src/modules/GameModule.cpp
  3. Rebuild: cmake --build build --target modules
  4. Le module se recharge automatiquement avec préservation d'état

Commandes Utiles

# Build complet
cmake --build build -j4

# Build modules seulement (rapide)
cmake --build build --target modules

# Run
cd build && ./mobilecommand.exe

Principes GroveEngine

Modules

  • Héritent de grove::IModule
  • Implémentent: process(), getState(), setState(), shutdown()
  • Chargés dynamiquement (.dll/.so)
  • Hot-reload < 1ms avec état préservé

Communication

  • grove::IIO pour pub/sub entre modules
  • Messages via grove::IDataNode (JSON)
  • Topics: module:event (ex: game:tick, train:damaged)

Configuration

  • Fichiers JSON dans config/
  • Chargés via grove::JsonDataNode
  • Hot-reload de config supporté

Roadmap

Phase 1 - Setup (COMPLÉTÉ)

  • Structure projet
  • GroveEngine intégré
  • Build system
  • Hot-reload validé

Phase 2 - Prototype Gameplay (EN COURS)

  • Train basique (3 wagons)
  • Système de craft simple
  • 1 mission de combat
  • 3-5 événements
  • Boucle de jeu complète

Phase 3 - MVP

  • Train complet
  • Système d'expéditions
  • Campagne Act 1

Conventions de Code

Modules

  • Nom: XyzModule (PascalCase)
  • Fichiers: XyzModule.cpp + XyzModule.h (optionnel)
  • Exports: createModule() et destroyModule()

Logging

#include <spdlog/spdlog.h>
spdlog::info("[ModuleName] Message");
spdlog::debug("[ModuleName] Debug info");
spdlog::error("[ModuleName] Error message");

Configuration

auto config = loadConfig("config/module.json");
int value = config->getInt("key", defaultValue);

Objectifs du Projet

Primaire

Créer un jeu de gestion/survie autour d'un train blindé mobile

Secondaire

Valider GroveEngine en conditions réelles de production

Notes Importantes

  • Le projet est en phase prototype
  • Focus sur la validation des mécaniques de base
  • Hot-reload est essentiel au workflow
  • Garder les modules simples et focalisés

Ressources

  • Concept complet: ../couple-repo/Projects/CONCEPT/mobile_command_v2.md
  • GroveEngine docs: external/GroveEngine/README.md
  • Architecture GroveEngine: external/GroveEngine/docs/architecture/