QBasic Gorillas 复刻版(Repeeled)
文章摘要
这是对 1991 年经典游戏《QBasic Gorillas》(GORILLAS.BAS)的一次网页复刻,作者是 HN 用户 TonyAlicea10,项目名字里的 “Repeeled”(重新剥皮,谐音 banana peel 香蕉皮)也点了个题。原版是随 MS-DOS 的 QBasic 一起附赠的示例小游戏:两只大猩猩站在城市天际线的高楼顶上,轮流输入角度和力度,互相投掷会爆炸的香蕉,还要把风力算进去。因为源码就摆在那儿,它成了整整一代人的编程启蒙——很多人正是靠拆读它的 BASIC 源码学会写程序的。
这个复刻版用纯原生 JavaScript 实现,不依赖任何框架或第三方库,并且是在 AI 大量协助下完成的(作者提到用了 Fable 和 Opus 两个模型)。玩法上忠实还原并做了增强:支持单人(对战电脑)与多人”热座”(hotseat)模式;难度分 Easy/Medium/Hard;胜负可设为先得 1/3/5/7 分;重力可在”月球 / 地球 / 重型”之间切换;风力有”无 / 每回合固定 / 阵风(每次投掷都变)”三档;还加了 CRT 复古滤镜,以及一个会跟随香蕉飞行轨迹的镜头。作者自述分工是:”架构、规格、UX 由我做大量的设计与规划,代码则主要交给 LLM 生成,坚持不用任何 JS 框架和依赖。”这也让讨论从游戏本身,延伸到了”AI 辅助编程到底还算不算技术活”这一更有争议的话题上。
HN 评论精华
-
disillusionist、BrunkenClaas 与作者 TonyAlicea10:贡献了满屏的怀旧共鸣。大家纷纷回忆《QBasic Gorillas》如何成为自己的编程入门——Tony 说自己是”《俄勒冈之旅》之后紧接着就是 Gorillas 和 Nibbles”,并感慨那是一次”开源式的启蒙教育”,因为源码就大方地摆在所有人面前。
-
rjh29 与 TonyAlicea10:这是讨论里最针锋相对的一场争论。rjh29 认为 AI 已经”干了这活儿 95% 的工作量”,相比手写代码,作者付出的努力微不足道;Tony 则反驳:产出质量会因上下文(context)而有明显差异,前期的规格、规划和 UX 设计都很关键,”说这四年来 AI 辅助开发不需要任何技巧,纯属胡扯”。
-
vunderba:给出了最专业的技术反馈。他指出灰色楼房上的文字辨识度不够、CRT 滤镜略显简陋(只是”高频噪点 + 人工横向扫描线”的简单叠加)、镜头与香蕉轨迹绑得太死。他推荐参考 RetroArch 的 shader 来做更地道的 CRT 效果。作者随后据此更新了文字辨识度和镜头行为。
-
pimlottc:从游戏性角度质疑——蓄力箭头的长度和实际力度是否成正比,并建议把力度和方向分成两个独立指示。Tony 解释说这是刻意沿袭 1991 年原版的设计:如果让计算太容易,反而会放大”先手方”的优势,破坏平衡。
-
netsharc:吐槽鼠标瞄准的手感不直观。Tony 坦言 v1 版本的鼠标和触屏瞄准是”直接交给 LLM 处理的一次实验”,并主动征求改进意见——这也侧面印证了他对 AI 分工的坦诚态度。
-
elsig60 与 TonyAlicea10:聊到了做这类项目的意义——用趣味小项目来练手新工具。Tony 说这类东西”要么是你平时根本不会花时间去做的,要么是你烂熟于心、值得重做一遍的经典”,做起来最能上手也最有成就感。