- 游戏开发
- 教育
- 前端
- 后端
【免费下载链接】codecombat
Game for learning how to code.
本文是一份面向教师(以及课程设计者)的实操指南,围绕 CodeCombat 开源仓库中的 create-task-practice-1-pt-BR.md 文档展开,说明如何利用 CodeCombat 的《游戏开发 1》(Game Development 1,简称 GD1)课程,为学生提供 AP 计算机科学原理(AP CS Principles,AP CSP)"创建任务"(Create Task / Create Performance Task)的第一次系统化练习机会。读完本文,你将掌握:GD1 课程与 AP CSP 学习目标(5.1.1 / 5.1.2)的对应关系、如何在第 1—3 天引导学生完成"头脑风暴—过程记录",以及如何在第 4 天执行完整的"设计—实现—测试—迭代"闭环,并最终指导学生用日志回答官方书面问题(2a / 2b)的练习版。配套的课程细节可进一步参考 gd1-5day 课程指南。
背景:为什么用 GD1 来练习 Create Task
编程是一个把想法变为现实的创造性过程:程序可以解决问题、催生创新,也可以表达个人兴趣。AP CSP 的 Create Performance Task 要求学生自主选择编程语言、自主选择主题开发一个程序——要么解决自己感兴趣的问题,要么作为创意表达。这与 CodeCombat 的计算机科学(CS)课程里"解决给定谜题(关卡)"的学习方式截然不同,因此需要一个能让学生从零开始创作原创作品的载体。
CodeCombat 的游戏开发(GD)和网页开发(WD)课程恰好提供了这一载体:每门课程都以一个"最终项目"收尾,学生在其中创作属于自己的原创作品。这些项目正是练习 AP CSP Create Task 的绝佳机会。根据英文原版文档 create-task-practice-1.md 的表述,本指南聚焦于 AP CSP 大纲中第一次这样的练习机会——即位于《游戏开发 1》课程内的实践(对应学习目标 5.1.1 与 5.1.2)。
需要注意的是,学生既可以在 CodeCombat 内完成最终项目,也可以使用他们熟悉的其他编程环境(文档中的"备注"明确允许这种做法)。
Create Task 官方要求速览
在开始教学前,需要先让学生(以及教师自己)明确 AP CSP Create Task 的硬性指标:
- 占总分比例:最终成绩的 24%;
- 课堂时间投入:最终项目至少需要 12 小时的课堂时间;
- 迭代式开发流程:程序必须通过"设计 → 实现 → 测试"的迭代过程产出;
- 独立创作要求:至少独立创建以下各一项:一个算法(Algorithm)和一个抽象(Abstraction);
- 视频展示:录制一段展示程序运行并演示其功能的视频;
- 书面回答:针对程序写出规定问题的回答;
- 代码提交:将完整程序代码提交至 AP Digital Portfolio(AP 数字作品集)。
官方文件(文档中给出的 College Board 参考资料)还明确了教师视角与 Student Handout 的对应页码:教师版 Performance Task: Create 概览见第 79 页,学生版任务说明见第 113 页。
GD1/GD2/GD3 三阶段练习矩阵
文档用一张矩阵表说明 Create Task 的各组成果件分别在哪门课程中得到练习,这是规划整个 AP CSP 教学路径的关键参考:
| 组成要件 | 游戏开发 1(GD1) | 游戏开发 2(GD2) | 游戏开发 3(GD3) |
|---|---|---|---|
| 创建(Create) | — | — | — |
| 迭代过程 | 是 | 是 | 是 |
| └ 设计(Design) | 是 | 是 | 是 |
| └ 实现(Implement) | 是 | 是 | 是 |
| └ 测试(Test) | 是 | 是 | 是 |
| 代码要求:算法(Algorithms) | — | — | 是 |
| 代码要求:抽象(Abstractions) | — | 是 | 是 |
| 视频录制(Capture Video) | — | — | — |
| 书面回答(Written Responses) | 是 | 是 | 是 |
| 提交 AP 作品集 | — | — | — |
从这张表可以清晰看到 GD1 的定位:它的核心贡献是"迭代过程"与"书面回答"两方面的练习,算法和抽象要到 GD2、GD3 才被正式引入(对应文档 create-task-practice-2-pt-BR.md 中"在 GD2 中练习应用算法、在后续课程中练习抽象"的设计)。
用 GD1 作为练习:教学聚焦点与学习目标
文档明确列出 GD1 阶段覆盖的 AP CSP 学习目标:
- 5.1.1开发一个程序用于创造性表达、满足个人好奇心或创造新知识;
- 5.1.2开发一个正确的程序以解决问题。
在教授 GD1 课程时,教师应把教学焦点放在四件事上:
- 头脑风暴(Brainstorming for Ideas)——帮助学生从零生成游戏创意;
- 游戏设计过程(The Process of Game Design)——让学生理解游戏由哪些要素构成、如何把这些要素组织成可玩的游戏;
- 过程记录(Journaling about the Process)——用日志持续记录设计、实现与测试过程,为最终书面回答积累素材;
- 协作的价值(The Value of Collaboration)——作为共同创作者与试玩者与同伴协作。
文档特别提醒:由于 GD1 阶段学生的编程基础还很薄弱,他们在本课程中练习"抽象"或"算法"组件的能力有限——这两项要留给 GD2 及后续课程。因此 GD1 阶段不要强求学生写出复杂的算法结构,重点是打好迭代式开发与过程记录的习惯。
关于 GD1 的教学细节,仓库中还提供了完整的逐关卡指南 gd1-5day-pt-BR.md(对应英文版 gd1-5day.md),其中定义了贯穿整个课程的核心词汇:**目标(Objetivo)**是玩家为获胜(或推进)必须完成的任务;**机制(Mecânica)**是规定玩家如何与游戏交互、游戏如何响应玩家的规则;**零件(Peça)**是构成游戏的具体元素;**可放置物(Adicionável)**是学生可以"生成/添加"进游戏的零件类型。GD1 课程按"5 次 × 45—60 分钟的编程课时"设计,第 1—3 天学基础知识,第 4 天设计并实现自己的游戏,第 5 天进行全班 Show and Tell 分享。
第 1—3 天:建立设计语言与头脑风暴
前三天(Dias 1-3)的教学重点,是教会学生用零件(peças)、机制(mecânicas)与目标(metas)这三个维度来"读懂"和"设计"游戏。学生通过游玩关卡学到实现细节,但教师必须围绕关卡引导讨论——文档强调,要提前告诉学生:他们很快就要设计自己的游戏,现在学的每一种技巧和概念都会用在自己的游戏里。
记录过程(Documente o processo)
在日志中持续记录零件、机制和目标清单,不仅帮助学生记住所有可用工具,更是在示范"如何记录自己的 GD 开发旅程"。好的笔记会让设计过程更顺畅,帮助学生回忆起制作项目时克服的挑战——这会直接让最终的书面回答变得更容易。
由于 Create Task 要求学生针对特定问题提供书面或音频回答,作为最终提交的练习,学生应在设计游戏的过程中,在日志中回答以下问题:
- 识别所使用的编程语言;
- 识别你的程序的目的;
- 描述你程序的增量式、迭代式开发过程;
- 描述遇到的困难和/或机遇,以及它们是如何被解决的;
- 清楚说明所描述的开发过程是协作式还是独立式。
头脑风暴(Brainstorming)
在第 3 天结束时,帮助学生开始为自己的课程项目头脑风暴创意。鼓励他们创造性地组合已学到的工具来制作新类型的游戏——课程中他们只看到了几个基础游戏的示例,那只是起点,要放手让学生用新的方式组合零件、机制与目标。同时,从头脑风暴开始并贯穿整个迭代设计过程,学生之间应互相协作,尤其在自己卡住的时候。
第 4 天:迭代式设计的主战场
第 4 天(Dia 4)承载了迭代式设计过程的大部分内容,其核心循环是四步:
- 设计(Design)
- 实现(Implement)
- 测试(Test)
- 重复(Repeat)
设计(Design)
设计是把学生头脑中的想法转化为具体计划的过程。每位学生应写出自己创意的简短描述,然后用"零件、机制、目标"的框架说明如何把它变为现实;教师还应鼓励学生画出想象中的游戏地图草图,以及玩家将如何与游戏交互。
设计阶段,学生应在日志中回答:
- 这个游戏的目的是什么,背后的想法是什么?
- 玩家的目标有哪些?
- 将使用哪些零件?
- 将使用哪些核心机制?
- 将使用什么编程语言?
- 设计游戏时你与别人协作了吗?他们的贡献是什么?
实现(Implement)
有了设计,就进入实现——写出让游戏真正跑起来的代码。文档明确指出:学生应使用Tabula Rasa 关卡(GD1 的第 17 关,即课程的最终项目关卡)来创建这个练习项目。根据 gd1-5day-pt-BR.md 中的描述,Tabula Rasa 是一块"白板":通过该关卡的最低要求只是生成一个玩家并添加一个目标,但真正的价值在于鼓励学生创造性地运用课程中学到的所有技巧。该关卡还提供"GAME"按钮,点击后会生成游戏的可分享版本链接,方便学生把游戏发给朋友试玩。
GD1 阶段学生在 Tabula Rasa 中可用的核心命令(来自课程指南逐关引入的命令集)包括:
game.spawnXY(type, x, y)——在指定坐标生成一个新零件,type是零件类型的字符串,x/y是地图坐标(x 从左到右增大,y 从下到上增大);game.spawnPlayerXY(type, x, y)——生成可操控的玩家零件(注意:用spawnXY生成的玩家零件是不可操控的);game.addMoveGoalXY(x, y)——添加移动目标(地图上的红色 X 标记);game.addCollectGoal()——添加收集目标(收集所有宝石与宝箱);game.addDefeatGoal()——添加击败目标(击败所有敌人);game.addSurviveGoal()/game.addSurviveGoal(seconds)——添加生存目标(无参数表示"在完成其他目标前存活",带秒数参数则要求存活指定秒数);game.spawnMaze(seed)——用种子数生成随机迷宫(改变种子会得到不同迷宫,如game.spawnMaze(42));- 单位属性:
maxSpeed、maxHealth、attackDamage、behavior(可选"AttacksNearest"、"Scampers"、"Defends"等字符串值)。
文档要求教师提醒学生:记录下遇到的任何困难,以及他们如何绕开这些问题。最终项目中他们需要回答关于"克服过的挑战"的问题,所以这是练习做好笔记的好机会。此外,如果学生在实现阶段与他人协作,他们必须清楚标注任何并非独立编写的代码及其来源——这一要求直接对应 Create Task 对"独立开发"证据的审查。
实现阶段,学生应在日志中回答:
- 实现游戏时遇到了哪些困难?
- 你是如何解决这些困难的?
- 实现过程中出现了哪些新想法或新机会?
- 你是如何决定采纳或放弃这些新想法的?
- 实现游戏时你与别人协作了吗?他们的贡献是什么?
测试(Test)
测试是练习协作的绝佳机会。首先,学生互玩彼此的游戏:游戏创作者只需在一旁观察玩家并记录任何出乎意料的现象——玩家是否按预期方式与游戏交互?他们是否尝试了完全意外的操作?是否发现了 Bug?他们喜欢游戏的哪一部分?哪一部分让他们感到挫败?然后,向玩家征求反馈,问同类问题——喜欢什么、什么令人沮丧。
文档给出了重要的心理建设建议:鼓励学生遇到问题时不要气馁——所有伟大的游戏一开始都有问题!正是通过测试与迭代,他们最爱的游戏才变得如此出色。测试中暴露的问题不是失败,而是指示牌,指引学生把游戏做得更好。
测试阶段,学生应在日志中回答:
- 谁测试了你的游戏?
- 你的试玩者测试时发现了哪些 Bug?
- 玩家是否以令人惊讶或非预期的方式与你的游戏交互?
- 你如何利用测试中获得的信息改进你的游戏?
重复(Repeat)
迭代意味着把过程重复多次,每次都做出调整与改进。带着试玩者的反馈,学生应回到设计阶段为问题设计解决方案,然后实现它们,再测试新版本的游戏。
迭代阶段,学生应在日志中回答:
- 你将如何解决本轮迭代中发现的问题?你将改变什么、为什么改变?
从源码实现上看,GD 关卡的命令与属性都挂载在game对象上,通过点号访问(如game.spawnXY),这与课程指南中"所有游戏命令都是game对象的属性,用同样的点号记号访问"的说明一致(参见 gd1-5day-pt-BR.md 第 12 关的讲解)。玩家与单位属性(maxSpeed等)的修改正是通过保存spawnPlayerXY返回值到变量再赋值的模式实现的,这是 GD 关卡区别于 CS 关卡的特殊"超能力"——在 CS 课程关卡中,学生被限制直接修改单位属性。
AP CSP 练习:书面回答(Respostas Escritas)
书面回答是 Create Task 的核心组件之一,而 GD1 为学生提供了练习其中一部分问题的机会。文档明确指出:由于学生大概率没有为 GD1 项目录制视频,问题 2a 可以只提供书面回答。以下是文档原样复现的官方问题(同样收录于官方学生手册 "Performance Task: Create – Applications from Ideas" 部分):
程序目的与开发
2a.提供书面回答或视频中的音频旁白,内容需:
- 识别所使用的编程语言;
- 识别你的程序的目的;并解释视频所展示的内容。
(不超过 150 词)
2b.描述你程序的增量式、迭代式开发过程,聚焦于该过程中的两个不同节点。描述你遇到的困难和/或机遇,以及它们是如何被解决或纳入的。
在你的描述中,清楚说明所描述的开发是协作式还是独立式。至少有一个节点必须涉及独立程序开发。
(不超过 200 词)
文档还给出了教师批改时的两个要点(依据 College Board 评分标准):
- 2a:确保学生准确解释游戏做了什么,并识别出零件、机制与目标。在本练习情境中,游戏的"目标"即程序的"目的"——这一等价关系能帮助学生理解官方题目中"purpose"的指向。
- 2b:确保学生描述开发过程中两个不同时刻做出的重大决策,并说明他们与谁合作、发生了怎样的协作。
英文原版文档 create-task-practice-1.md 中还提示教师可参照官方评分准则(scoring guidelines)来批改学生上述回答——这一点可作为教学评估的延伸参考。关于后续课程中如何满足"应用算法"的报告类别(含if判断的函数调用结构、直接调用 vs 事件处理器调用的区别等),可进一步阅读姊妹篇指南 create-task-practice-2-pt-BR.md。
下一步(Qual é o próximo)
文档在结尾给出了课程衔接路径:学生需要先完成《计算机科学 2》(CS2)课程,才能进阶到《游戏开发 2》(GD2)。在 CS2 中,学生将学到 Create Task 所需的更多技能,包括使用数学与逻辑概念来开发抽象(abstrações)——这正是 GD1 阶段刻意留白、留给后续课程的能力点,也呼应了前文矩阵表中"抽象在 GD2 起才正式练习"的安排。
结语:从"解题"到"创作"的教学转换
CodeCombat 的 GD1 课程价值不在于教会学生复杂的算法,而在于完成一次关键的教学范式转换:从"解决给定谜题"切换到"设计并实现自己的作品",并在这个过程里训练 AP CSP Create Task 真正考察的核心素养——迭代式开发、过程记录、协作与书面表达。按照本文梳理的三阶段节奏(第 1—3 天的头脑风暴与记录、第 4 天的四步迭代闭环、配套的书面回答练习),教师可以让学生在 GD1 内完成一次完整、可评估的 Create Task 预演,为后续 GD2/GD3 中算法与抽象的训练打下坚实基础。仓库内 create-task-practice-1.md(英文版)、gd1-5day.md(逐关教学指南)与 create-task-practice-2-pt-BR.md(GD2 实践指南)可共同构成完整的 AP CSP 实践教学资料包。
- 游戏开发
- 教育
- 前端
- 后端
【免费下载链接】codecombat
Game for learning how to code.
相关推荐
CodeCombat Game Development 1 课程教案全解析:从 Spawnables 到 Tabula Rasa 的完整教学指南
CodeCombat Game Development 1 课程教案全解析:从 Spawnables 到 Tabula Rasa 的完整教学指南 Game De
游戏开发教育前端后端CodeCombat AP CSP Explore 任务教学指南:基于计算创新的影响开展 Performance Task 演练
CodeCombat AP CSP Explore 任务教学指南:基于计算创新的影响开展 Performance Task 演练 导读 本文围绕 CodeCom
游戏开发教育前端后端CodeCombat AP CSP 单元 1 教学指南:Who is a Computer Scientist 的课程设计与学习目标落地
CodeCombat AP CSP 单元 1 教学指南:Who is a Computer Scientist 的课程设计与学习目标落地 本文面向使用 Code
游戏开发教育前端后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考