godot-genre-educational

$npx mdskill add thedivergentai/GD-Agentic-Skills/godot-genre-educational

Build educational games with adaptive learning and gamification.

  • Solves creating engaging learning apps with progress tracking and adaptive difficulty.
  • Depends on Godot 4.7+ and its built-in UI and animation systems.
  • Uses student profiles, mastery %, and spaced repetition to adjust content.
  • Delivers visual feedback like confetti, XP bars, and curriculum trees.

SKILL.md

.github/skills/godot-genre-educationalView on GitHub ↗
---
name: godot-genre-educational
description: "Expert blueprint for educational games including gamification loops (learn/apply/feedback/adapt), progress tracking (student profiles, mastery %), adaptive difficulty (target 70% success rate), spaced repetition, curriculum trees (prerequisite system), and visual feedback (confetti, XP bars). Use for learning apps, training simulations, or edutainment. Trigger keywords: educational_game, gamification, adaptive_difficulty, spaced_repetition, student_profile, curriculum_tree, mastery_tracking."
---

## Godot 4.7 Baseline

- Expert patterns in this skill target **Godot 4.7+** (stable, 2026-06-18).
- Consult the [Godot 4.7 migration guide](https://docs.godotengine.org/en/4.7/tutorials/migrating/upgrading_to_godot_4.7.html) when upgrading projects from 4.6.
- **NEVER** assume 4.6 defaults (stretch mode, audio area_mask, RichTextLabel percent flags) without checking 4.7 migration notes.

# Genre: Educational / Gamification

Expert blueprint for educational games that make learning engaging through game mechanics.

## NEVER Do (Expert Anti-Patterns)

### Pedagogy & Flow
- NEVER punish failure with a "Game Over"; strictly use **"Try Again"** or **Contextual Hints** to ensure a safe, encouraging learning environment.
- NEVER separate learning from gameplay ("Chocolate-covered broccoli"); strictly ensure the **mechanic IS the learning** (e.g., math-based trajectory calc).
- NEVER use walls of text for instructions; strictly use **Show, Don't Tell** methods: interactive diagrams, non-verbal tutorials, or 3-second looping GIFs.
- NEVER skip **Spaced Repetition** logic; strictly ensure successfully answered questions reappear at increasing intervals to verify long-term retention.
- NEVER focus on failure; strictly prominently display **Mastery %**, **XP Bars**, and **Skill Trees** to motivate through visible progress.
- NEVER assume a fixed difficulty; strictly implement **Dynamic Scaffolding** that adjusts challenge based on the student's mastery level to keep them in the "Zone of Proximal Development".
- NEVER hardcode student stats in UI components; strictly use **`Resource` scripts (`StudentProfile`)** to decouple student data from the presentation layer for persistence and scalability.
- NEVER build custom debug dashboards for performance tracking during development; strictly use **`Performance.add_custom_monitor()`** to inject live student metrics into the Godot Editor Debugger.

### Technical & Accessibility
- NEVER hardcode text into UI; strictly use **Translation Keys (PO files)** for internationalization and classroom localized support.
- NEVER force TTS without user consent; strictly provide an in-game toggle and respect OS-level screen reader settings.
- NEVER use absolute pixel positioning; strictly use the **Anchoring & Container** system for responsive scaling across tablets and classroom laptops.
- NEVER perform heavy data grading on the main thread; strictly use **WorkerThreadPool** to prevent UI freezes during automated assessments.
- NEVER forget to handle **IME updates**; strictly monitor `NOTIFICATION_OS_IME_UPDATE` for complex character input support (e.g., East Asian).
- NEVER ignore `mouse_filter` on overlays; strictly set to `PASS` to prevent invisible containers from silently consuming clicks.
- NEVER update static strings in `_process()`; strictly update labels ONLY on state change events to save mobile/tablet battery.
- NEVER embed sensitive database credentials in exports; strictly use **Environment Variables** or proxy APIs for student data security.

---

## Available Scripts

> **MANDATORY**: Read the script matching the scenario before implementing. Do not paste quiz/profile tutorials inline.

### Pedagogy / Adaptivity
- [adaptive_difficulty_adjuster.gd](scripts/adaptive_difficulty_adjuster.gd) — **MANDATORY** when targeting ~70% flow / progressive hints.
- [spaced_repetition_scheduler.gd](scripts/spaced_repetition_scheduler.gd) — **MANDATORY** when scheduling question reappearance (intervals after success/fail).
- [student_progress_config.gd](scripts/student_progress_config.gd) — **MANDATORY** before persisting mastery/XP (ConfigFile profile).
- [threaded_scoring_engine.gd](scripts/threaded_scoring_engine.gd) — **MANDATORY** before heavy assessment/grading on school hardware.

### Accessibility / Classroom UI
- [tts_manager.gd](scripts/tts_manager.gd) — **MANDATORY** before DisplayServer TTS (consent toggle first).
- [dynamic_localization.gd](scripts/dynamic_localization.gd) — Runtime locale switch / pluralization.
- [adaptive_ui_anchors.gd](scripts/adaptive_ui_anchors.gd) — Responsive tablet/laptop lesson layouts.
- [focus_navigation_manager.gd](scripts/focus_navigation_manager.gd) — Keyboard/controller focus for classroom navigation.
- [interactive_rich_text.gd](scripts/interactive_rich_text.gd) — Meta-click glossaries / formula prompts.
- [text_reveal_effect.gd](scripts/text_reveal_effect.gd) — Progressive text reveal without walls of text.

### Assessment UX
- [assessment_pause_handler.gd](scripts/assessment_pause_handler.gd) — Pause world logic while quiz UI stays interactive.
- [low_processor_optimizer.gd](scripts/low_processor_optimizer.gd) — Battery-friendly idle for ed apps on school devices.

---

## Core Loop
1. **Learn** → 2. **Apply** → 3. **Feedback** → 4. **Adapt** → 5. **Master**

## Skill Chain

| Phase | Skills | Purpose |
|-------|--------|---------|
| 1. UI | `godot-ui-rich-text`, `godot-ui-theming` | Readable text, drag-and-drop answers |
| 2. Data | `godot-save-load-systems` | Student profiles, progress tracking |
| 3. Logic | `godot-state-machine-advanced` | Quiz flow (Question → Answer → Result) |
| 4. Juice | `godot-particles`, `godot-tweening` | Making learning feel rewarding |
| 5. Meta | `godot-scene-management` | Navigating between lessons and map |
| 6. Balance | `godot-monte-carlo-balancer` | Override bands to ~70% flow / mastery |

## Architecture Decision Tree

Pick the owner script; keep SKILL free of duplicate `StudentProfile` / quiz_manager paste-ups.

| Need | Decision | MANDATORY script |
|------|----------|------------------|
| Track mastery / XP / badges | One `StudentProfile` Resource + ConfigFile I/O | [student_progress_config.gd](scripts/student_progress_config.gd) |
| Keep learners in flow (~70%) | Windowed success ratio + hint branch | [adaptive_difficulty_adjuster.gd](scripts/adaptive_difficulty_adjuster.gd) |
| Long-term retention | Interval queue (success → longer delay; fail → sooner) | [spaced_repetition_scheduler.gd](scripts/spaced_repetition_scheduler.gd) |
| Prerequisite lesson map | Curriculum Resource graph (id + required_topics) — data only, no UI | Peer `godot-resource-data-patterns` |
| Grade without hitching | Offload scoring | [threaded_scoring_engine.gd](scripts/threaded_scoring_engine.gd) |
| Classroom a11y | TTS + locale + focus + anchors | `tts_manager` / `dynamic_localization` / `focus_navigation_manager` / `adaptive_ui_anchors` |
| Live debugger metrics | `Performance.add_custom_monitor("edu/...")` — no custom dashboards | (inline one-liner OK) |

**StudentProfile (single shape):** `@export` mastery Dictionary + XP; emit change signals; persist via `student_progress_config.gd`. Do not redefine the class twice in this skill.

**Quiz curtain:** state machine owns Question → Answer → Result → Adapt; spaced-repetition + adaptive-difficulty scripts decide *what* is next — do not inline a full `quiz_manager.gd` tutorial here.

## Juice (Duolingo Effect)
Learning is hard — reward effort: satisfying SFX, particles on correct, Tweened XP bars. Pedagogue first; juice never substitutes for spaced repetition / ZPD scaffolding.

## Common Pitfalls

1. **Chocolate-Covered Broccoli** — mechanic must *be* the learning.
2. **Punishing Failure** — Try Again / hint, never Game Over for wrong answers.
3. **Wall of Text** — show/interact first; use `text_reveal_effect` / rich-text meta.

## Expert knowledge (on demand)

> **LLM-ignorance rule:** If a general agent would not know it before reading, load the reference — never delete expert deltas.

- [expert-educational-patterns.md](references/expert-educational-patterns.md) — restored baseline pedagogy (architecture, WHY, implementation depth)
- [student_profile.gd](scripts/student_profile.gd)


## Reference

> Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing to a peer domain — do not preload the whole lattice.

### Official Documentation
- [Internationalizing games](https://docs.godotengine.org/en/stable/tutorials/i18n/internationalizing_games.html) — `tr()` / locale workflow for classroom multi-language UI without hardcoding strings.
- [Localization using gettext](https://docs.godotengine.org/en/stable/tutorials/i18n/localization_using_gettext.html) — PO/CSV pipeline and plural forms used by runtime locale switching.
- [Text-to-speech](https://docs.godotengine.org/en/stable/tutorials/audio/text_to_speech.html) — DisplayServer TTS voices, speak/stop, and consent-friendly accessibility read-aloud.
- [BBCode in RichTextLabel](https://docs.godotengine.org/en/stable/tutorials/ui/bbcode_in_richtextlabel.html) — Colored keywords, formulas, meta links, and custom RichTextEffect reveals for lessons.
- [Using Containers](https://docs.godotengine.org/en/stable/tutorials/ui/gui_containers.html) — Responsive quiz/layout composition for tablets and classroom laptops.
- [Size and anchors](https://docs.godotengine.org/en/stable/tutorials/ui/size_and_anchors.html) — Anchor/offset rules that replace absolute pixel placement across orientations.
- [Keyboard/Controller Navigation and Focus](https://docs.godotengine.org/en/stable/tutorials/ui/gui_navigation.html) — Focus neighbors and grab_focus patterns for keyboard-only classroom navigation.
- [Resources](https://docs.godotengine.org/en/stable/tutorials/scripting/resources.html) — StudentProfile / curriculum node Resources decoupled from presentation.
- [Saving games](https://docs.godotengine.org/en/stable/tutorials/io/saving_games.html) — Persist mastery, XP, and progress without baking credentials into exports.
- [Using multiple threads](https://docs.godotengine.org/en/stable/tutorials/performance/using_multiple_threads.html) — WorkerThreadPool grading so heavy assessment never freezes the quiz UI.
- [Pausing games](https://docs.godotengine.org/en/stable/tutorials/scripting/pausing_games.html) — Tree pause + `process_mode` so assessments freeze world logic while UI stays interactive.
- [Performance](https://docs.godotengine.org/en/stable/tutorials/performance/index.html) — Custom monitors, low-processor mode, and battery-friendly idle screens for ed apps.

### Related Skills

#### Prerequisites
- [godot-project-foundations](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-project-foundations/SKILL.md) — Project locale, display, and input map defaults must exist before classroom UI and TTS toggles.
- [godot-gdscript-mastery](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-gdscript-mastery/SKILL.md) — Typed Resources, signals, and await patterns underpin student profiles and quiz flow.
- [godot-ui-containers](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-ui-containers/SKILL.md) — Anchors/containers are the non-negotiable layout base for multi-device lesson screens.

#### Complements
- [godot-ui-rich-text](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-ui-rich-text/SKILL.md) — BBCode, meta clicks, and custom effects for glossaries and formula-heavy prompts.
- [godot-ui-theming](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-ui-theming/SKILL.md) — Readable theme scales and contrast for mixed tablet/laptop classrooms.
- [godot-save-load-systems](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-save-load-systems/SKILL.md) — Durable StudentProfile / mastery persistence beyond ad-hoc ConfigFile snippets.
- [godot-tweening](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-tweening/SKILL.md) — XP bars, confetti timing, and overlay fades that sell the “Duolingo effect.”
- [godot-signal-architecture](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-signal-architecture/SKILL.md) — Mastery-up, hint-revealed, and difficulty-changed events without UI↔logic hardwiring.
- [godot-input-handling](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-input-handling/SKILL.md) — Focus actions, drag-and-drop answers, and IME-safe text entry for assessments.

#### Downstream / consumers
- [godot-monte-carlo-balancer](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-monte-carlo-balancer/SKILL.md) — Simulate override bands so adaptive difficulty actually lands near ~70% flow/mastery success.
- [godot-state-machine-advanced](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-state-machine-advanced/SKILL.md) — Question → Answer → Result → Adapt quiz FSMs once the curtain grows beyond one script.
- [godot-scene-management](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-scene-management/SKILL.md) — Lesson map ↔ quiz ↔ results transitions without leaking paused tree state.
- [godot-performance-optimization](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-performance-optimization/SKILL.md) — Escalate when scoring threads, TTS, or rich-text effects still show profiler cost on school hardware.
- [godot-particles](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-particles/SKILL.md) — Confetti/reward bursts wired to correct-answer juice without blocking pedagogy.

#### Master
- [godot-master](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-master/SKILL.md) — Library router and mirrored module entry; open when discovering which Domain Skill owns a cross-cutting educational concern.

More from thedivergentai/GD-Agentic-Skills

SkillDescription
godot-2d-animationExpert patterns for 2D animation in Godot using AnimatedSprite2D and skeletal cutout rigs. Use when implementing sprite frame animations, procedural animation (squash/stretch), cutout bone hierarchies, or frame-perfect timing systems. Trigger keywords: AnimatedSprite2D, SpriteFrames, animation_finished, animation_looped, frame_changed, frame_progress, set_frame_and_progress, cutout animation, skeletal 2D, Bone2D, procedural animation, animation state machine, advance(0).
godot-2d-physicsExpert patterns for Godot 2D physics including collision layers/masks, Area2D triggers, raycasting, and PhysicsDirectSpaceState2D queries. Use when implementing collision detection, trigger zones, line-of-sight systems, or manual physics queries. Trigger keywords: CollisionShape2D, CollisionPolygon2D, collision_layer, collision_mask, set_collision_layer_value, set_collision_mask_value, Area2D, body_entered, body_exited, RayCast2D, force_raycast_update, PhysicsPointQueryParameters2D, PhysicsShapeQueryParameters2D, direct_space_state, move_and_collide, move_and_slide.
godot-3d-lightingExpert patterns for Godot 3D lighting including DirectionalLight3D shadow cascades, OmniLight3D attenuation, SpotLight3D projectors, VoxelGI vs SDFGI, and LightmapGI baking. Use when implementing realistic 3D lighting, shadow optimization, global illumination, or light probes. Trigger keywords: DirectionalLight3D, OmniLight3D, SpotLight3D, shadow_enabled, directional_shadow_mode, directional_shadow_split, omni_range, omni_attenuation, spot_range, spot_angle, VoxelGI, SDFGI, LightmapGI, ReflectionProbe, Environment, WorldEnvironment.
godot-3d-materialsExpert patterns for Godot 3D PBR materials using StandardMaterial3D including albedo, metallic/roughness workflows, normal maps, ORM texture packing, transparency modes, and shader conversion. Use when creating realistic 3D surfaces, PBR workflows, or material optimization. Trigger keywords: StandardMaterial3D, BaseMaterial3D, albedo_texture, metallic, metallic_texture, roughness, roughness_texture, normal_texture, normal_enabled, orm_texture, transparency, alpha_scissor, alpha_hash, cull_mode, ShaderMaterial, shader parameters.
godot-3d-world-buildingExpert patterns for 3D level design using GridMap with MeshLibrary, CSG constructive solid geometry, occlusion, and runtime GridMap builders. Use when building 3D levels, modular tilesets, or BSP-style geometry. For sky/fog/Environment recipes, route to godot-3d-lighting. Trigger keywords: GridMap, MeshLibrary, set_cell_item, get_cell_item, map_to_local, local_to_map, CSGCombiner3D, CSGBox3D, CSGSphere3D, CSGPolygon3D, OccluderInstance3D, bake CSG.
godot-ability-systemExpert patterns for RPG/action ability systems including cooldown strategies, combo systems, ability chaining, skill trees with prerequisites, upgrade paths, and resource management. Use when implementing unlockable abilities, character progression, or complex skill systems. Trigger keywords: PlayerAbility, AbilityManager, cooldown, SkillTree, SkillNode, prerequisites, can_use, execute, ComboSystem, ability_chain, global_cooldown, charge_system, upgrade_path.
godot-adapt-2d-to-3dExpert patterns for migrating 2D games to 3D including node type conversions, camera systems (third-person, first-person, orbit), physics layer migration, sprite-to-model art pipeline, and control scheme adaptations. Use when porting 2D projects to 3D or adding 3D elements. Trigger keywords: CharacterBody2D to CharacterBody3D, Area2D to Area3D, Camera2D to Camera3D, Vector2 to Vector3, collision_layer migration, sprite to MeshInstance3D, 2D to 3D conversion.
godot-adapt-3d-to-2dExpert patterns for simplifying 3D games to 2D including dimension reduction strategies, 2.5D fake-depth, isometric ports, camera flattening, physics conversion, 3D-to-sprite art pipeline, and control simplification. Use when porting 3D to 2D, building 2.5D / isometric / fake-depth gameplay, creating 2D versions for mobile, or prototyping. Trigger keywords: CharacterBody3D to CharacterBody2D, Camera3D to Camera2D, Vector3 to Vector2, flatten Z-axis, 2.5D, isometric, fake depth, Y-sort, simulated Z, orthogonal projection, 3D to sprite conversion, performance optimization.
godot-adapt-desktop-to-mobileExpert patterns for porting desktop games to mobile including touch control schemes (virtual joystick, gesture detection), UI scaling for small screens, performance optimization for mobile GPUs, battery life management, and platform-specific features. Use when creating mobile ports or cross-platform mobile builds. Trigger keywords: TouchScreenButton, virtual_joystick, gesture_detector, InputEventScreenTouch, InputEventScreenDrag, mobile_optimization, battery_saving, adaptive_performance, MOBILE_ENABLED.
godot-adapt-mobile-to-desktopExpert patterns for scaling mobile games to desktop including mouse/keyboard controls, increased resolution and graphical fidelity, expanded UI layouts, settings menus, window management, and platform-specific features. Use when creating desktop ports or cross-platform releases. Trigger keywords: mouse_controls, keyboard_shortcuts, resolution_scaling, graphics_settings, fullscreen_toggle, window_modes, Steam_integration, desktop_optimization.