Add project skeleton: Godot setup, tooling, and smoke test

Pins Godot 4.6.3-stable and GUT 9.6.0 (9.6.1+ reference
AccessibilityServer, unavailable in 4.6.3) via tools/setup.sh. Wires
make check (gdlint + gdformat config for 4-space indent, headless
GUT run, and a JSON well-formedness check ahead of real schema
validation). Seven autoload stubs match the architecture in the
cahier des charges; real logic lands with the following steps.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Denis Defolie
2026-10-11 16:15:19 +02:00
parent 50198a49a2
commit a1f749de40
48 changed files with 475 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
# Les Aventuriers des mots (The Word Adventurers)
An educational French-language game for 7-9 year olds (French grades CE1-CE2): an offline 2D adventure with an explorable map, a guide character, and grammar, spelling, and dictation exercises.
Open source project, in development. Current status: technical skeleton (see `docs/specs/decisions.md` for scoping decisions and `docs/specs/cahier-des-charges.md` for the full specification, both in French — this is a French-curriculum product).
## Tech stack
- Godot 4.6 (typed GDScript)
- Exercises and pedagogical content as JSON data, validated on load
- Headless tests (GUT), GDScript lint/format (gdtoolkit)
## Getting started
```sh
make setup # installs Godot (pinned), GUT and gdtoolkit locally, nothing is committed
make run # runs the game
```
## Commands
| Command | Effect |
|---|---|
| `make setup` | installs tooling (lint, tests, export templates) |
| `make run` | runs the game |
| `make lint` / `make format` | GDScript static analysis and formatting |
| `make validate-data` | validates the JSON files in `data/` |
| `make test` | headless tests |
| `make check` | lint + validate-data + test, must pass before every commit |
| `make export-linux` / `make export-windows` | exports into `build/` (from the export step onward) |
## Structure
- `autoload/`: global modules (game lifecycle, profiles, progress, exercises, saves, audio, settings)
- `scenes/`: self-contained Godot scenes communicating via signals
- `scripts/`: pure logic (correction, pedagogy) and data loading
- `data/`: pedagogical content as JSON, validated against schemas
- `assets/`: graphics and audio (placeholder at this stage, see `assets/CREDITS.md`)
- `tests/`: headless tests (GUT)
- `docs/specs/`: specification and scoping decisions (French)
## License
Code and content under the [GNU Affero General Public License v3](LICENSE).