- 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>
3.4 KiB
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
- Le jeu tourne:
./build/mobilecommand.exe - Éditer un module:
src/modules/GameModule.cpp - Rebuild:
cmake --build build --target modules - 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::IIOpour 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()etdestroyModule()
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/