主题
完成小游戏后选择扩展挑战
从已完成的推球小游戏出发,选择一个扩展任务,并用可观察的结果验收。
先确认手里有可运行的作品
推球撞方块的完整工程已经贯穿10 课主线,最终文件、安装步骤和回归要求集中在整理代码并交付小游戏。下载完整 Lua 工程。
本页以主线最终工程为扩展起点。Lua 包也不包含已经搭好的地图、UI 或资源,安装时仍要按场景搭建完成配套内容。
开始扩展前,至少确认:
- 玩家能推动球,命中目标后只产生一次有效计分。
- 分数归属正确,HUD 与服务端状态一致。
- 能完成结算并开始第二局,旧归属和旧回调不会影响新局。
- 缺少可选音效或特效时,基础玩法仍能继续。
哪一项失败,先用按现象排错恢复当前版本,再增加功能。
挑战一:换一组参数,保留规则
目标:从配置修改回合时长、每次分值与目标刷新范围。
前置:完成主线配置化;知道当前配置文件由哪个模块读取。
- 先记录原值与预期变化。
- 每次只改一个参数,重新启动试玩。
- 完成一局,确认计分、倒计时与结束判定一致。
- 恢复原配置,确认仍可运行。
验收:改分值只改变每次得分,不能连带改变防抖次数;改时长后两端应使用同一结束时间。
参考配置与资源引用。
挑战二:保存个人最高分
目标:当前一局结束后,更新测试玩家的历史最高分,再次进入能读回。
前置:一局成绩已经由服务端正确计算;具备允许存储的专用测试地图与账号。
- 先接普通最高分读写,使用独立、带版本的存储名。
- 测试一次较高分和一次较低分,最高分不应倒退。
- 验证读取失败不会覆盖已获得的局内分数。
- 普通存储稳定后再接排行榜,并独立处理两处写入失败。
验收:失败时玩法仍能结算;不能只根据“发起保存”日志宣称已经保存成功。
参考保存最高分与排行。本挑战不属于主线结业前置,不使用正式玩家存档练习。
挑战三:替换目标外观,保留碰撞判定
目标:给目标添加新的模型或表现,同时仍由已经验证的碰撞对象决定得分。
前置:确认资源是 preset 还是 mesh,知道它的根类型和 Parent。
- 在实验地图加载一个真实可访问的官方 preset。
- 确认外观挂载、位置和清理,再接回主线。
- 如果换用 custom 预设,补下载失败与备用资源。
- 对照修改前后,检查同一命中不会重复计分。
验收:外观加载失败时目标判定仍然明确;不能因为模型“看得见”就认为碰撞配置正确。
挑战四:只给命中者显示额外反馈
目标:全场看到共同状态,命中者额外看到本地提示或听到短音效。
前置:服务端已经取得可信玩家,并且原有快照链可用。
先写清消息包含什么、发给谁、在哪端播放。客户端不能通过“播放成功”反向要求加分。需要多人都能看到的动画时,单独验证宿主类型和跨端可见性,不假定任意客户端动画自动广播。
验收:两名玩家轮流命中时,分数和专属反馈分别归给正确的人;没有双客户端环境时,这项标记待验证。
参考RemoteEvent、声音与特效。
新作品挑战:投篮或钓鱼
这是设计任务,没有配套完整工程或可直接安装的代码包。先选择一种玩法,不同时实现两种。
| 要决定的规则 | 投篮示例 | 钓鱼示例 |
|---|---|---|
| 玩家表达的意图 | 蓄力、释放球 | 抛竿、收线 |
| 服务端检查 | 回合、出手位置、冷却、命中区域 | 区域、装备、当前阶段、操作时机 |
| 可观察成功结果 | 进入得分区后确认得分 | 合法收线后确认获得结果 |
| 需要拒绝的情况 | 重复提交同一球的得分 | 没有抛竿就请求收线奖励 |
| 第一版完成条件 | 连续投三球,成功与失败清楚 | 完整完成一次抛竿到收线 |
第一版先保留结果在内存中,玩法成立后再考虑存档。对应能力查玩家与输入、物理与触发器、UI。
新作品挑战:两人竞技场
这同样是未提供完整工程的进阶设计任务,需要能验证两名真实玩家的环境。
- 服务端维护队伍分组、血量与胜利条件;出生位置来自编辑器预先配置且公开可查找的场景对象。
- 客户端只发送技能意图;服务端检查冷却、距离和目标合法性。
- 服务端确认命中与伤害后再下发表现结果。
- 明确离开、重生、平局、结算和重开时的规则。
- 最后拆分稳定的回合、技能、分数与 UI 模块。
当前公开 Camps/Camp 不提供 AssignCamp 或 GetCampSpawnPoint,不能把它们写进方案后再寻找实现。角色碰撞先证明 EggyUnit 类型,再经公开链反查 Player。
验收:分别验证玩家 A 胜利、玩家 B 胜利、任一玩家离开、两局连续重开;只能启动单客户端时,不能声称多人测试通过。
为任何挑战写一张完成卡
| 项 | 填写示例 |
|---|---|
| 我只增加哪一项能力 | 结算保存最高分 |
| 开始前哪个版本能运行 | 主线最终版,已完成两局 |
| 哪些文件和场景会变化 | 存储模块、结算调用、测试存储名 |
| 成功时看见什么 | 重进后读回历史最高分 |
| 失败时玩家会看到什么 | 本局成绩仍显示,提示稍后重试 |
| 怎样恢复 | 回到改动前完整包并恢复配置 |
| 还有什么没验证 | 平台关闭存储时的失败场景 |
最后重跑原有的碰撞、计分、HUD、结算、重开。新功能成功且旧功能仍可用,才算完成这一项挑战。
