重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
godot-genre-educational by thedivergentai/gd-agentic-skills
npx skills add https://github.com/thedivergentai/gd-agentic-skills --skill godot-genre-educational通过游戏机制使学习变得引人入胜的教育游戏专家蓝图。
NOTIFICATION_OS_IME_UPDATE 以支持复杂字符输入(例如,东亚语言)。mouse_filter;严格设置为 ,以防止不可见的容器静默消耗点击事件。广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
PASS_process() 中更新静态字符串;严格仅在状态变更事件时更新标签,以节省移动设备/平板电脑的电量。强制要求:在实现相应模式之前,请阅读相应的脚本。
| 阶段 | 技能 | 目的 |
|---|---|---|
| 1. 用户界面 | godot-ui-rich-text, godot-ui-theming | 可读文本,拖放答案 |
| 2. 数据 | godot-save-load-systems, json-serialization | 学生档案,进度跟踪 |
| 3. 逻辑 | state-machine | 测验流程(问题 -> 答案 -> 结果) |
| 4. 效果 | godot-particles, godot-tweening | 让学习感觉有回报 |
| 5. 元 | godot-scene-management | 在课程和地图之间导航 |
管理单个“课程”或“测验”的流程。
# quiz_manager.gd
extends Node
var current_question: QuestionData
var correct_streak: int = 0
func submit_answer(answer_index: int) -> void:
if current_question.is_correct(answer_index):
handle_success()
else:
handle_failure()
func handle_success() -> void:
correct_streak += 1
EffectManager.play_confetti()
StudentProfile.add_xp(current_question.topic, 10)
load_next_question()
func handle_failure() -> void:
correct_streak = 0
# 间隔重复:将此问题重新加入队列
question_queue.push_back(current_question)
show_explanation()
用于跟踪掌握程度的持久化数据。
# student_profile.gd
class_name StudentProfile extends Resource
@export var topic_mastery: Dictionary = {} # "math_add": 0.5 (50%)
@export var total_xp: int = 0
@export var badges: Array[String] = []
func get_mastery(topic: String) -> float:
return topic_mastery.get(topic, 0.0)
定义知识的依赖关系图。
# curriculum_node.gd
extends Resource
@export var id: String
@export var title: String
@export var required_topics: Array[String] # 先决条件
如果玩家表现出色,则提供更难的问题。如果遇到困难,则降低难度。
func get_next_question() -> QuestionData:
var player_rating = StudentProfile.get_rating(current_topic)
# 以 70% 的成功率为“心流状态”目标
var target_difficulty = player_rating + 0.1
return QuestionBank.find_question(target_difficulty)
学习是困难的。游戏必须在视觉上大力奖励努力。
_get_drag_data 和 _drop_data 方法。非常适合“匹配项目”类型的谜题。TranslationServer。每周安装次数
61
仓库
GitHub 星标数
88
首次出现
2026年2月10日
安全审计
安装于
opencode58
gemini-cli57
codex57
github-copilot56
kimi-cli56
amp56
Expert blueprint for educational games that make learning engaging through game mechanics.
NOTIFICATION_OS_IME_UPDATE for complex character input support (e.g., East Asian).mouse_filter on overlays; strictly set to PASS to prevent invisible containers from silently consuming clicks._process(); strictly update labels ONLY on state change events to save mobile/tablet battery.MANDATORY : Read the appropriate script before implementing the corresponding pattern.
| Phase | Skills | Purpose |
|---|---|---|
| 1. UI | godot-ui-rich-text, godot-ui-theming | Readable text, drag-and-drop answers |
| 2. Data | godot-save-load-systems, json-serialization | Student profiles, progress tracking |
| 3. Logic | state-machine | Quiz flow (Question -> Answer -> Result) |
| 4. Juice | godot-particles, |
Manages the flow of a single "Lesson" or "Quiz".
# quiz_manager.gd
extends Node
var current_question: QuestionData
var correct_streak: int = 0
func submit_answer(answer_index: int) -> void:
if current_question.is_correct(answer_index):
handle_success()
else:
handle_failure()
func handle_success() -> void:
correct_streak += 1
EffectManager.play_confetti()
StudentProfile.add_xp(current_question.topic, 10)
load_next_question()
func handle_failure() -> void:
correct_streak = 0
# Spaced Repetition: Add this question back to the queue
question_queue.push_back(current_question)
show_explanation()
Persistent data tracking mastery.
# student_profile.gd
class_name StudentProfile extends Resource
@export var topic_mastery: Dictionary = {} # "math_add": 0.5 (50%)
@export var total_xp: int = 0
@export var badges: Array[String] = []
func get_mastery(topic: String) -> float:
return topic_mastery.get(topic, 0.0)
Defining the dependency graph of knowledge.
# curriculum_node.gd
extends Resource
@export var id: String
@export var title: String
@export var required_topics: Array[String] # Prereqs
If player is crushing it, give harder questions. If struggling, ease up.
func get_next_question() -> QuestionData:
var player_rating = StudentProfile.get_rating(current_topic)
# Target a 70% success rate for "Flow State"
var target_difficulty = player_rating + 0.1
return QuestionBank.find_question(target_difficulty)
Learning is hard. The game must heavily reward effort visually.
_get_drag_data and _drop_data methods. Perfect for "Match the items" puzzles.TranslationServer from day one.Weekly Installs
61
Repository
GitHub Stars
88
First Seen
Feb 10, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode58
gemini-cli57
codex57
github-copilot56
kimi-cli56
amp56
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
127,000 周安装
godot-tweening| Making learning feel rewarding |
| 5. Meta | godot-scene-management | Navigating between lessons and map |