godot-genre-educational について
Godotで教育ゲームを開発するためのスキルガイドです。教育設計、学習進捗、適応型難易度、教室でのアクセシビリティを扱い、学習とゲームプレイの統合や長期的な習得を支援します。
主な機能
- 01学習目標をゲームメカニクスに統合
- 02間隔反復と適応型難易度
- 03生徒プロフィール・習熟度・XPの保存
- 04ローカライズ、TTS、キーボード操作
- 05スレッド採点とパフォーマンス監視
活用シーン
- 01ヒントと段階的な難易度を備えたクイズ設計
- 02生徒の習熟度と学習進捗の追跡
- 03多言語の教室向けインターフェース構築
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ thedivergentai/ game-dev-agentic-skills --skill godot-genre-educationalインストール後、Claude Code で/godot-genre-educationalを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/expert-educational-patterns.mdmigration-notes.mdscripts/adaptive_difficulty_adjuster.gdadaptive_ui_anchors.gdassessment_pause_handler.gddynamic_localization.gdfocus_navigation_manager.gdinteractive_rich_text.gdlow_processor_optimizer.gdspaced_repetition_scheduler.gdstudent_profile.gdstudent_progress_config.gdtext_reveal_effect.gdthreaded_scoring_engine.gdtts_manager.gd詳細
絶対に避けること(エキスパートが陥りがちなアンチパターン)
教育設計と進行
- 失敗に対して絶対に「ゲームオーバー」で罰を与えないでください。安全で励みになる学習環境を確保するため、必ず 「もう一度挑戦」 または 状況に応じたヒント を使用してください。
- 学習とゲームプレイを絶対に切り離さないでください(「チョコレートで包んだブロッコリー」)。必ず 学習そのものをゲームの仕組みにしてください(例:数学に基づく軌道計算)。
- 説明に長文を絶対に使わないでください。必ず 「見せて、説明しない」 方法を使ってください。たとえば、インタラクティブな図、言葉を使わないチュートリアル、3秒のループ GIF などです。
- 間隔反復 の仕組みを絶対に省略しないでください。長期的な定着を確認できるよう、正解した問題は間隔を徐々に広げて再び出題してください。
- 失敗に絶対に焦点を当てないでください。目に見える進捗を通じて意欲を高めるため、習熟度%、XP バー、スキルツリー を目立つように表示してください。
- 難易度が固定されていると絶対に決めつけないでください。「発達の最近接領域」にとどまれるよう、生徒の習熟度に合わせて課題を調整する 動的な足場かけ を必ず実装してください。
- UI コンポーネントに生徒のステータスを絶対にハードコードしないでください。永続化とスケーラビリティのため、生徒データをプレゼンテーション層から切り離す
Resourceスクリプト(StudentProfile) を必ず使用してください。 - 開発中のパフォーマンス追跡用に、カスタムのデバッグダッシュボードを絶対に作らないでください。Godot Editor Debugger に生徒の指標をリアルタイムで表示するには、必ず
Performance.add_custom_monitor()を使用してください。
技術とアクセシビリティ
- UI にテキストを絶対にハードコードしないでください。国際化と教室でのローカライズ対応には、必ず 翻訳キー(PO ファイル) を使用してください。
- ユーザーの同意なしに TTS を絶対に強制しないでください。ゲーム内で切り替えられるようにし、OS レベルのスクリーンリーダー設定を尊重してください。
- 絶対的なピクセル位置指定を絶対に使わないでください。タブレットや教室用ノートパソコンでレスポンシブに拡大縮小できるよう、必ず アンカーとコンテナ の仕組みを使用してください。
- メインスレッドで負荷の高い採点処理を絶対に実行しないでください。自動評価中の UI のフリーズを防ぐため、必ず WorkerThreadPool を使用してください。
- IME の更新 への対応を絶対に忘れないでください。複雑な文字入力(例:東アジア言語)に対応するため、必ず
NOTIFICATION_OS_IME_UPDATEを監視してください。 - オーバーレイの
mouse_filterを絶対に無視しないでください。不可視のコンテナがクリックを気付かれずに消費しないよう、必ずPASSに設定してください。 _process()内で静的な文字列を絶対に更新しないでください。モバイル端末やタブレットのバッテリー消費を抑えるため、ラベルの更新は状態変更イベント時のみにしてください。- 機密性の高いデータベースの認証情報をエクスポートに絶対に埋め込まないでください。生徒データのセキュリティを確保するため、必ず 環境変数 またはプロキシ API を使用してください。
利用可能なスクリプト
必須:実装前に、シナリオに該当するスクリプトを読んでください。クイズやプロフィールのチュートリアルをインラインで貼り付けないでください。
教育設計/適応機能
- adaptive_difficulty_adjuster.gd — 70%程度のフロー状態/段階的なヒントを目指す場合は 必須。
- spaced_repetition_scheduler.gd — 問題の再出題(正解/不正解後の間隔)をスケジュールする場合は 必須。
- student_progress_config.gd — 習熟度/XP を永続化する前に 必須(ConfigFile のプロフィール)。
- threaded_scoring_engine.gd — 学校のハードウェアで負荷の高い評価/採点を行う前に 必須。
アクセシビリティ/教室向け UI
- tts_manager.gd — DisplayServer TTS の前に 必須(先に同意を得る切り替え機能を用意してください)。
- dynamic_localization.gd — 実行時のロケール切り替え/複数形処理。
- adaptive_ui_anchors.gd — タブレット/ノートパソコン向けのレスポンシブな授業レイアウト。
- focus_navigation_manager.gd — 教室での操作に向けたキーボード/コントローラーのフォーカス制御。
- interactive_rich_text.gd — メタクリックで表示する用語集/数式のプロンプト。
- text_reveal_effect.gd — 長文を表示せずに、テキストを段階的に表示。
評価 UX
- assessment_pause_handler.gd — クイズ UI の操作性を保ちながら、ワールドのロジックを一時停止します。
- low_processor_optimizer.gd — 学校のデバイスで使う教育アプリの、バッテリーにやさしいアイドル処理です。
コアループ
- 学習 → 2. 応用 → 3. フィードバック → 4. 適応 → 5. 習得
スキルチェーン
| フェーズ | スキル | 目的 |
|---|---|---|
| 1. UI | godot-ui-rich-text, godot-ui-theming | 読みやすいテキスト、ドラッグ&ドロップでの解答 |
| 2. データ | godot-save-load-systems | 学生プロフィール、進捗の追跡 |
| 3. ロジック | godot-state-machine-advanced | クイズの流れ(問題 → 解答 → 結果) |
| 4. 演出 | godot-particles, godot-tweening | 学習に達成感を持たせる |
| 5. メタ | godot-scene-management | レッスンとマップ間の移動 |
| 6. バランス調整 | godot-monte-carlo-balancer | フロー/習得度を約70%にするオーバーライド範囲 |
アーキテクチャの意思決定ツリー
担当スクリプトを選び、SKILL 内で StudentProfile や quiz_manager の重複した貼り付けを行わないでください。
| ニーズ | 決定 | 必須スクリプト |
|---|---|---|
| 習得度/XP/バッジを追跡する | 1つの StudentProfile Resource と ConfigFile I/O | student_progress_config.gd |
| 学習者をフロー状態(約70%)に保つ | ウィンドウ化した成功率とヒント分岐 | adaptive_difficulty_adjuster.gd |
| 長期的な定着 | インターバルキュー(成功 → 間隔を延長;失敗 → 間隔を短縮) | spaced_repetition_scheduler.gd |
| 前提条件を示すレッスンマップ | カリキュラム Resource グラフ(id + required_topics)— データのみ、UI なし | 同領域の godot-resource-data-patterns |
| 引っかかりなく採点する | 採点処理を別スレッドに移す | threaded_scoring_engine.gd |
| 教室でのアクセシビリティ | TTS + ロケール + フォーカス + アンカー | tts_manager / dynamic_localization / focus_navigation_manager / adaptive_ui_anchors |
| ライブデバッガーのメトリクス | Performance.add_custom_monitor("edu/...") — カスタムダッシュボードなし | (インラインの1行記述は可) |
StudentProfile(単一の構造): @export する mastery Dictionary + XP。変更シグナルを発行し、student_progress_config.gd 経由で永続化します。このスキル内でクラスを二重に定義しないでください。
クイズの進行管理: 状態マシンが「問題 → 解答 → 結果 → 適応」を管理します。間隔反復と難易度適応のスクリプトが次に 何を出すか を決めます。ここに quiz_manager.gd のチュートリアル全体をインラインで記載しないでください。
演出(Duolingo 効果)
学習は大変です。努力に報いるために、心地よい効果音、正解時のパーティクル、Tween で動く XP バーを使いましょう。教育を最優先し、演出を間隔反復/発達の最近接領域(ZPD)に基づく足場かけの代わりにしてはいけません。
よくある落とし穴
- チョコレートで包んだブロッコリー — ゲームの仕組みそのものを学習にしましょう。
- 失敗への罰 — 不正解でもゲームオーバーにせず、「もう一度試す」やヒントを用意しましょう。
- テキストの壁 — まず見せて操作できるようにし、
text_reveal_effect/ リッチテキストのメタデータを使いましょう。
エキスパート知識(必要に応じて)
LLM の無知に関するルール: 一般的なエージェントが読む前には知らない情報なら、リファレンスを読み込みます。エキスパートによる追加情報は削除しないでください。
- expert-educational-patterns.md — 復元された教育学の基盤(アーキテクチャ、理由、実装の詳細)
- student_profile.gd
リファレンス
段階的開示:特定の API を調査するときにのみ公式ドキュメントのリンクを開き、関連する領域に案内するときにのみ関連スキルを読み込みます。スキルの全体構造をあらかじめ読み込まないでください。
公式ドキュメント
- ゲームの国際化 — 文字列をハードコードせず、教室で複数言語に対応した UI を実現するための
tr()/ロケールのワークフローです。 - gettext を使ったローカライズ — 実行時のロケール切り替えで使用する PO/CSV パイプラインと複数形の形式です。
- テキスト読み上げ — DisplayServer の TTS 音声、読み上げ/停止、同意に配慮したアクセシビリティ向けの読み上げ機能です。
- RichTextLabel の BBCode — 授業で使うキーワードの色付け、数式、メタリンク、カスタム RichTextEffect による表示です。
- コンテナの使用 — タブレットや教室のノート PC に対応する、レスポンシブなクイズ/レイアウト構成です。
- サイズとアンカー — 画面の向きにかかわらず、絶対ピクセル配置の代わりに使用するアンカー/オフセットのルールです。
- キーボード/コントローラーによるナビゲーションとフォーカス — 教室でキーボードのみを使って操作するための、フォーカス移動先と grab_focus のパターンです。
- リソース — 表示処理から切り離された StudentProfile /カリキュラムノードの Resources です。
- ゲームの保存 — 認証情報をエクスポートに埋め込まずに、習熟度、XP、進捗を保存します。
- 複数スレッドの使用 — 負荷の高い評価処理でクイズ UI がフリーズしないようにする WorkerThreadPool による採点です。
- ゲームの一時停止 — アセスメント中に UI の操作性を保ちながらワールドの処理を停止する、ツリーの一時停止と
process_modeです。 - パフォーマンス — 教育アプリ向けのカスタムモニター、低プロセッサーモード、バッテリーに配慮した待機画面です。
関連スキル
前提条件
- godot-project-foundations — 教室向け UI と TTS の切り替えを実装する前に、プロジェクトのロケール、表示、入力マップの既定値を設定しておく必要があります。
- godot-gdscript-mastery — 型付き Resources、シグナル、await のパターンは、生徒プロフィールとクイズのフローの基盤となります。
- godot-ui-containers — アンカー/コンテナは、複数デバイスに対応する授業画面の必須レイアウト基盤です。
補完
- godot-ui-rich-text — 用語集や数式を多用するプロンプト向けの BBCode、メタデータのクリック、カスタムエフェクト。
- godot-ui-theming — タブレットとノートパソコンが混在する教室向けの、読みやすいテーマのスケールとコントラスト。
- godot-save-load-systems — その場しのぎの ConfigFile スニペットに頼らない、StudentProfile/習熟度の永続化。
- godot-tweening — 「Duolingo 効果」を生み出す XP バー、紙吹雪のタイミング、オーバーレイのフェード。
- godot-signal-architecture — UI とロジックを密結合させずに、習熟度アップ、ヒント表示、難易度変更のイベントを扱います。
- godot-input-handling — アセスメント向けのフォーカス操作、ドラッグ&ドロップでの回答、IME に安全なテキスト入力。
下流/利用側
- godot-monte-carlo-balancer — オーバーライド範囲をシミュレーションし、適応型難易度がフロー/習熟度の成功率約 70%を実現できるようにします。
- godot-state-machine-advanced — カーテンが 1 つのスクリプトを超える規模になったときの、質問 → 回答 → 結果 → 適応というクイズ FSM。
- godot-scene-management — 一時停止中のツリー状態を漏らさずに、レッスンマップ ↔ クイズ ↔ 結果を遷移します。
- godot-performance-optimization — 採点スレッド、TTS、リッチテキストエフェクトが学校のハードウェアで引き続きプロファイラーの負荷として現れる場合に、最適化を進めます。
- godot-particles — 正解時の演出に紙吹雪や報酬のバーストを連動させつつ、教育効果を妨げません。
マスター
- godot-master — ライブラリのルーター兼、ミラーされたモジュールのエントリです。複数領域にまたがる教育上の課題をどのドメインスキルが担当するかを調べるときに開きます。