|
1 | 1 | # Forces — Godot 4 |
2 | 2 |
|
3 | | -Portage du jeu **Forces** (Unity / JavaScript, stage 42, 2013) vers **Godot 4.6** (4.x compatible). |
| 3 | +Portage jouable du jeu **Forces** (Unity / JavaScript, 2013) vers **Godot 4.6**. |
4 | 4 |
|
5 | | -Le dépôt Unity d’origine reste à la racine (`Assets/`, etc.). Ce dossier est le client Godot autonome. |
| 5 | +Le dépôt Unity d’origine reste à la racine (`Assets/`). Ce dossier est le client Godot autonome. |
6 | 6 |
|
7 | | -## Branche |
| 7 | +## Statut (v1 solo) |
8 | 8 |
|
9 | | -Développement sur `godot4-port`. |
| 9 | +| Domaine | État | |
| 10 | +|---------|------| |
| 11 | +| Menu → config → bataille | OK | |
| 12 | +| Plateau atlas (tuiles, mer, QG) | OK | |
| 13 | +| Terre / mer / air + surbrillances | OK | |
| 14 | +| Power, réserve, achats, échanges 3→1, déploiement QG | OK | |
| 15 | +| Bombes H (fusion 100 F, frappe) | OK | |
| 16 | +| Combats multi-camps + capture drapeau | OK | |
| 17 | +| IA (Facile / Normal / Difficile) | OK | |
| 18 | +| Tutoriel, options (volumes persistés) | OK | |
| 19 | +| Multijoueur réseau | Non | |
| 20 | +| Monétisation / pub | Hors scope (sur demande) | |
| 21 | +| Tuiles directionnelles pixel-perfect Unity | Optionnel | |
10 | 22 |
|
11 | | -## Ouvrir le projet |
| 23 | +## Branche |
12 | 24 |
|
13 | | -1. Installer [Godot 4.6](https://godotengine.org/download) (ou la version que tu utilises déjà). |
14 | | -2. Importer le dossier `godot/` comme projet. |
15 | | -## Flux joueur |
| 25 | +`godot4-port` |
16 | 26 |
|
17 | | -1. **Menu** — Jouer / Partie rapide / Tutoriel / Options / Quitter |
18 | | -2. **Créer partie** — Vert = vous ; Bleu/Rouge/Jaune = IA ou joueur (+ difficulté IA) |
19 | | -3. **Bataille** — planification des ordres (moteur actuel) |
| 27 | +## Lancer |
20 | 28 |
|
21 | | -F5 démarre sur le **menu principal**. |
| 29 | +1. Godot 4.6 → importer `godot/` |
| 30 | +2. **F5** : menu principal |
| 31 | +3. **Partie rapide** ou **Jouer** → bataille |
22 | 32 |
|
23 | | -## Tests headless (CLI / CI / agent) |
| 33 | +Contrôles bataille : clic case ; reclic = changer de pièce ; clic destination = ordre ; **Fin manche** = IA + résolution. |
24 | 34 |
|
25 | | -Sans ouvrir l’éditeur, pour vérifier compilation + moteur : |
| 35 | +## Tests headless |
26 | 36 |
|
27 | 37 | ```powershell |
28 | 38 | cd godot |
29 | | -# Une fois Godot installé, optionnel : |
30 | | -$env:GODOT_BIN = "C:\Users\tom\Downloads\Godot_v4.6.3-stable_win64.exe" |
31 | | -.\tools\run_headless.ps1 # smoke (défaut) |
32 | | -.\tools\run_headless.ps1 compile # charge le projet 3 frames |
33 | | -.\tools\run_headless.ps1 import # importe les assets |
34 | | -``` |
35 | | - |
36 | | -Linux/macOS : |
37 | | - |
38 | | -```bash |
39 | | -cd godot |
40 | | -export GODOT_BIN=/path/to/godot |
41 | | -./tools/run_headless.sh smoke |
| 39 | +$env:GODOT_BIN = "C:\...\Godot_v4.6.3-stable_win64_console.exe" |
| 40 | +.\tools\run_headless.ps1 |
42 | 41 | ``` |
43 | 42 |
|
44 | | -Équivalent manuel : |
45 | | - |
46 | | -```bash |
47 | | -godot --headless --path . "res://scenes/headless_test.tscn" |
48 | | -godot --headless --path . "res://scenes/menu/main_menu.tscn" --quit-after 2 |
49 | | -``` |
50 | | - |
51 | | -Le workflow GitHub `.github/workflows/godot-headless.yml` lance les mêmes checks sur push `godot/**`. |
52 | | - |
53 | 43 | ## Architecture |
54 | 44 |
|
55 | 45 | | Dossier | Rôle | |
56 | 46 | |---------|------| |
57 | | -| `scenes/menu/` | Menu principal, config partie, options, tutoriel | |
58 | | -| `scenes/battle/` | Écran de bataille (ex-UI debug) | |
59 | | -| `scripts/app/game_session.gd` | Autoload — config persistée menu → bataille | |
60 | | -| `scripts/core/` | Moteur sans UI | |
61 | | -| `data/land_adjacency.json` | Graphe terrestre | |
62 | | - |
63 | | -## Roadmap |
64 | | - |
65 | | -Voir [`CHANGELOG.md`](CHANGELOG.md) pour le détail daté. |
| 47 | +| `scenes/menu/` | Menu, config, options, tutoriel | |
| 48 | +| `scenes/battle/` | Carte + sidebar | |
| 49 | +| `scripts/core/` | Moteur (`game_state`, graphes, combats) | |
| 50 | +| `scripts/ai/` | `ai_planner.gd` | |
| 51 | +| `data/*.json` | Layout plateau, adjacences, atlas | |
66 | 52 |
|
67 | | -1. ~~**Moteur terrestre**~~ — état, ordres multi-camps, résolution simplifiée, capture drapeau |
68 | | -2. ~~**Menus & flux**~~ — menu → config → bataille |
69 | | -3. ~~**IA basique**~~ — `ai_planner.gd` (Facile/Normal/Difficile) |
70 | | -4. **Mer / air** — parsers `Dep_mer.js` / `Dep_air.js` |
71 | | -5. **Plateau visuel** — assets Unity / JP |
72 | | -6. **Règles Power** — jetons, réserve, échanges, bombes H |
73 | | -7. **UI bataille** — remplacement `infoButtons.js` / `playerTurn.js` |
74 | | -8. **Multijoueur** — WebSocket / ENet |
| 53 | +Journal détaillé : [`CHANGELOG.md`](CHANGELOG.md). |
75 | 54 |
|
76 | 55 | ## Legacy Unity |
77 | 56 |
|
78 | | -Référence : `../Assets/Scripts/` |
| 57 | +Référence règles / parsers : `../Assets/Scripts/` |
0 commit comments