跳过正文
  1. 文章/

30天极速编程挑战 - 第1天 - 平台跳跃游戏

Nuno Coração
作者
Nuno Coração
Principal Product Manager @ Docker
目录
30 Days of Vibe Coding - 这篇文章属于一个选集。
§ 1: 本文

第1天。让我们看看当我让AI帮我做一款游戏时会发生什么。

提示词
#

我是这样开始的:

“我想创建一个基于网页的平台跳跃游戏,共10关”

就这一句话。这就是全部的创意方向。

构建过程
#

这是我最早使用 Watchfire 的项目之一。我只给了它这一个提示词,它就将工作拆解成了21个独立任务:

  1. 项目搭建与游戏画布
  2. 游戏引擎核心,含游戏循环与渲染
  3. 玩家角色,含移动与动画
  4. 物理系统与碰撞检测
  5. 平台与障碍物系统
  6. 关卡系统,含加载器与摄像机
  7. 简单关卡(第1-3关)
  8. 中等关卡(第4-6关),含危险元素
  9. 困难关卡(第7-10关)
  10. 界面/抬头显示系统
  11. 游戏状态与菜单
  12. 音频系统,含8位音效与背景音乐
  13. 精细打磨、存档系统、触摸控制

随后是漏洞修复报告:浏览器兼容性修复、为部署进行的代码重构,以及我在试玩过程中发现的若干游戏玩法问题。

我并没有坐在那里逐一审批每一处文件改动。Watchfire将任务排入队列并逐一处理,我回来时就看到了一个可以运行的游戏,然后进行试玩测试。

最终成果
#

我完全没想到会是这样。

主菜单

有真实的画面。 不是占位用的方块。有一个带眼睛的小角色,有不同颜色的平台,落地时还有粒子效果。整个游戏拥有一种统一的视觉风格,而这完全不在我的要求之内。

有背景音乐。 游戏过程中循环播放的8位背景音乐。我从来没要求过音频,它自己加上去的。

第1关游戏画面

关卡难度确实递增。 第1关是一个轻松的教程,叫"第一步"。到第4关,出现了尖刺(“危险来袭”)。第7关叫"速度恶魔"。难度曲线是存在的,而且合情合理。

第4关,含危险元素

有完整的菜单系统。 主菜单、关卡选择、暂停界面、游戏结束界面、关卡通关界面。我可以选择任何已解锁的关卡。这比我要求的要精良得多。

关卡选择

保存了我的进度。 关闭浏览器,之后再回来,已解锁的关卡依然在那里。使用了localStorage持久化存储,这也是我没有要求的。

18个模块。 GameEngine、Player、Physics、Camera、LevelLoader、LevelManager、ParticleSystem、AudioManager、SaveManager、TouchControls……它构建了一个具有关注点分离的完整架构。每个模块都有明确的职责。这些我一个都没有指定。

漏洞修复过程
#

第一次运行并不完美。我需要试玩并反馈问题:

  • “只看到一个蓝色方块”(浏览器兼容性问题,需要roundRect的polyfill补丁)
  • “到达旗子时关卡不会结束”
  • “进入下一关时玩家一直向右移动”
  • “关卡选择总是加载第1关”
  • “背景音乐太单调重复”

描述都很简单。我自己没有调试任何东西,只是描述了我看到的现象。修复结果返回后都有效。

第7关

游戏结束

数据统计
#

  • 18个游戏模块,具有清晰的关注点分离
  • 10个关卡,基于JSON格式的关卡定义
  • 约3500行原生JavaScript(游戏本身不依赖任何框架)
  • 21个Watchfire任务,从初始搭建到最终漏洞修复
  • 实际投入时间: 大约30分钟的试玩测试和编写漏洞报告

试玩一下
#

玩平台跳跃游戏

方向键或WASD移动,空格键跳跃。手机也可以玩。

第1天总结
#

一句话提示词。一款完整的游戏,有10个关卡、背景音乐、菜单系统和存档功能。

问题是这样的:我已经十多年没写过游戏引擎了——上一次还是在大学的时候。碰撞检测和关卡难度递进系统的知识早就忘光了。我自己是做不出来的。不是一天,可能一周也不行。

这是有史以来最好的平台跳跃游戏吗?远远不是。但它存在了。它能运行。人们可以玩。而这只花了我几个小时,而不是几周。这就是改变所在。制作这样一个复杂东西的成本刚刚大幅下降。如果我愿意,我可以继续打磨它,增加关卡,改进物理系统。起点不再是一个空白文件。

我认为这将成为全部30个项目的共同规律。我不会做出任何东西的最佳版本。但我将以极快的速度,做出那些我以前根本无法实现的东西的可运行版本。


这是 30天极速编程挑战 的第1天。跟随我,见证我如何在30天内用AI辅助编程交付30个项目。

30 Days of Vibe Coding - 这篇文章属于一个选集。
§ 1: 本文

相关文章