Akavjah Creations / 起点记录
我从没写过一行代码。 但我还是做出了一款游戏。
几周前,我根本不相信 AI 真能做出足够打磨、可以正式发布的东西——不是演示,不是原型,而是一款真正上架的应用。后来我决定用最笨的办法亲自验证——一条提示词、一次崩溃、一场捉虫,一步一步来——看看一个从没编过程的人,能不能在整整六天里,从一个空文件夹走到一个真正的 Apple 开发者账号。
Akavjah Creations™
Akavjah Creations / 起点记录
几周前,我根本不相信 AI 真能做出足够打磨、可以正式发布的东西——不是演示,不是原型,而是一款真正上架的应用。后来我决定用最笨的办法亲自验证——一条提示词、一次崩溃、一场捉虫,一步一步来——看看一个从没编过程的人,能不能在整整六天里,从一个空文件夹走到一个真正的 Apple 开发者账号。
我为什么不信
我不是开发者。我不懂 Swift,不懂 Xcode,直到不久前我都说不清“build target”是什么。我在网上看到的每一个“vibe coding”故事,都停在一张漂亮的截图上——没有一个真正经受住真实设备、真实的 App Store 审核,或者一个真人玩家用谁也没料到的方式狂点屏幕的考验。
于是我挑了一个想法:小到能做完,又刁钻到足以暴露这套方法的每一个弱点——一款单指点按的街机游戏,一个小球绕着中心旋转,你要从不断收缩的圆环缺口中钻过去。描述起来很简单,做对却极难——碰撞必须精确,难度必须公平地递增,而一帧出错,这一局就结束了。
真实的开发日志
从零开始。我用大白话描述了这个游戏——一个小球绕着中心旋转,从不断收缩的圆环缺口里穿过去——然后亲眼看着它第一次跑了起来。
第一个构建编译成功 · 我自己也不敢信吃了亏才明白,“看着对”和“真的对”是两回事。碰撞必须在整个重叠区域内持续检测——而不是每帧只查一次——否则肉眼可见的擦碰都不算命中。
GameEngine.swift · 重写碰撞检测做了一个“演示模式”,让游戏自己玩自己,去压测那些我手动根本到不了的关卡难度。结果它总是可疑地死在终点线前。
加入自动游玩 · 记下一个谜之 bug追着这个 bug 翻了 33 轮控制台日志,才终于找到它:游戏让小球穿过了闸口,却悄悄忘了它在下一帧仍然可能死。修好了。演示模式终于打到了最高关。
33 份日志文件 · 一个真正的根因亲手创作并剪辑了原创音乐和音效——细到为点按音效单独截出一段 0.35 秒的“啵”声,免得它带出回声。
音频打磨 · sfx_tap.wav,第 6 版注册了一个真正的 Apple 开发者账号,并通过了审批。
开发者账号 · 已批准第六天:Mad Orbit Dash 于 7 月 31 日提交给 Apple。被退回过一次——界面在 iPad Air 11 英寸和 iPhone 17 Pro Max 屏幕上显得局促——于是修正后才真正成功上线,随后又推出第二版,新增教程、新增 7 种语言,以及可免费试玩至第 15 关的体验。
状态:已上线 · 第二版已发布游戏本身
点按一下,环绕方向就反转。操作方式就这么多。你存活得越久,圆环收缩得越快,缺口越窄,到 40 关前后,整个局面都在和你作对。它刻意做得很小——小到每一处毛边都得由我自己去发现、去修。
接下来
Mad Orbit Dash 是一次概念验证:一个毫无编程背景的人,可以在六天里把一个想法从空文件夹带到提交上架。它上线了,随后又更新推出教程、新增 7 种语言,以及可免费试玩至第 15 关的体验。Fool Me Once 紧随其后,于 8 月 24 日上线。另外三款游戏已经在开发中。