Commit Graph

12 Commits

Author SHA1 Message Date
Denis Defolie d0380a76af Add several boards per level, CM1/CM2 levels and the CE1 'plage des sons' pilot board (0.6.0)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 11:05:00 +02:00
Denis Defolie 6625342163 Make the five music tracks clearly distinct (0.5.2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 23:06:11 +02:00
Denis Defolie 0089ac0c27 Add choice between five background music tracks (0.5.1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 23:02:56 +02:00
Denis Defolie 2d7001105d Add sound effects, ambient music and volume mixing (0.5.0)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 22:57:37 +02:00
Denis Defolie dbf513e686 Add settings screen and adult space with progress report and save export/restore (0.4.0)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 22:49:01 +02:00
Denis Defolie 97a065879c Visual overhaul: theme, illustrations, redesigned screens (0.3.0)
Phase "habillage" of the post-0.1.0 plan. Rendering was reviewed on real
screenshots (new tools/screenshot.gd, `make screenshot`), which also
caught and fixed map markers overlapping and truncated titles.

- Global Godot theme (Atkinson Hyperlegible font, cream/green/gold
  palette, raised buttons, rounded cards, thick keyboard focus).
- Original vector art: forest/marsh backdrops, Plume the owl, stars,
  exercise-type icons, correct/try-again icons, 10 collection items.
- Redesigned world map (markers as cards with icon, title and stars,
  responsive layout), profile screens, mission intro, exercise host,
  rule/feedback panels, reward screen and collection grid.
- Motion helper (pop-in, fade) honouring an animations setting.
- Settings: animations flag; base window 1152x648 with canvas_items.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 22:36:43 +02:00
Denis Defolie 57182172a9 Produce version 0.1.0: single-file exports and make package
Re-read the specification (§12, §13, §15) before producing the game:
Linux and Windows are the target platforms for this version. Embed
the PCK for one executable per platform, add config/version, and add
`make package` which re-exports from scratch and builds
dist/*.tar.gz, dist/*.zip and SHA256SUMS (executable + LICENSE +
READMEs + CREDITS + a short notice). READMEs updated to the real
status. Known gaps against the spec are listed in decisions.md.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 22:07:06 +02:00
Denis Defolie b0dcedb402 Replace eSpeak NG with Piper neural voice for dictation audio
Manual test reported the eSpeak NG dictation voice as unintelligible.
Formant synthesis is inherently mechanical; slowing it down doesn't
fix that. Switched tools/generate_dictation_audio.py to piper-tts
(fr_FR-siwis-medium neural voice, MIT/CC-BY 4.0, attribution in
assets/CREDITS.md). The voice model (~60MB) downloads once on demand
into the untracked .cache/piper-voices/, never at game runtime.

Adds piper-tts to tools/setup.sh's venv and a pyrightconfig.json
pointing pyright at .venv, needed once tools/ imports a real
third-party package (`make lint` was silently checking against the
wrong interpreter before).

Regenerated ce1_accord_adjectif_dictee_01.ogg with the new voice.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-11 19:07:40 +02:00
Denis Defolie 73440ba226 Generate provisional dictation audio so dictée missions can be played
Manual testing confirmed the "La clairière de l'écho" dictée mission
was unplayable: no audio file existed yet (decisions.md point 8), so
there was nothing to listen to before transcribing the sentence.

Adds tools/generate_dictation_audio.py (offline eSpeak NG synthesis +
ffmpeg encoding to Ogg Vorbis, exposed as `make
generate-dictation-audio`) and uses it to generate
ce1_accord_adjectif_dictee_01.ogg. A new headless test
(tests/data/test_dictation_audio.gd) guards against future dictées
being added without regenerating their audio.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-11 18:40:11 +02:00
Denis Defolie 19831807b0 Wire up Linux and Windows exports
export_presets.cfg is hand-written (no editor GUI available here): a
minimal preset per platform (name, platform, path, x86_64
architecture) is enough, since Godot fills every other option from
its platform defaults. tools/setup.sh now also fetches the matching
export templates (~1.2GB, cached outside the repo like the Godot
binary itself) -- note the directory it unpacks into uses a dot
before "stable" while .godot-version and the download URLs use a
hyphen, two different spellings of the same version that are easy to
conflate.

Both make export-linux and make export-windows now actually run and
produce a working package; tests/ and addons/gut/ are excluded from
the exported .pck (124KB vs 1.5MB before -- a dev-only dependency has
no business shipping to a child's machine). The Linux binary was
smoke-tested headless and boots cleanly; the Windows .exe could only
be confirmed as a valid PE32+ binary, since no Windows machine or
Wine is available in this environment -- flagged in
docs/testing/manual-checklist.md rather than claimed as verified.

This closes out every step in the launch prompt's "Ordre de
construction." README status lines updated to reflect the first
playable prototype rather than a bare skeleton.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-11 17:46:34 +02:00
Denis Defolie d057c8ee77 Add JSON schemas, data validator, and first CE1 content
Introduces a generic JSON-Schema-subset validator in GDScript
(scripts/data/schema_validator.gd) used both by `make validate-data`
and, later, by ExerciseEngine at load time, plus semantic_checks.gd
for cross-field constraints a schema can't express (answer index
bounds, at least one faulty token in sentence correction, word count
matching between a dictation's target_text and its annotations).

Schemas cover rule, exercise (dispatched per type: multiple_choice,
sentence_correction), dictation, curriculum, and save (save.schema.json
is not yet wired into validate-data; saves live in user://, handled
at the Profiles/Saves step).

First draft content for the CE1 "accord_adjectif" rule (one rule, two
multiple-choice exercises, one sentence correction, one dictation,
one curriculum entry) exercises the full pipeline end to end and
seeds docs/review/content-review.md, regenerated by the new
tools/generate_content_review.py (`make content-review`).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-11 16:47:28 +02:00
Denis Defolie a1f749de40 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>
2026-10-11 16:15:19 +02:00