- 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>
134 lines
3.4 KiB
Markdown
134 lines
3.4 KiB
Markdown
# 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
|
|
```bash
|
|
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
|
|
```bash
|
|
# 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É)
|
|
- [x] Structure projet
|
|
- [x] GroveEngine intégré
|
|
- [x] Build system
|
|
- [x] 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
|
|
```cpp
|
|
#include <spdlog/spdlog.h>
|
|
spdlog::info("[ModuleName] Message");
|
|
spdlog::debug("[ModuleName] Debug info");
|
|
spdlog::error("[ModuleName] Error message");
|
|
```
|
|
|
|
### Configuration
|
|
```cpp
|
|
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/`
|
|
|