无法游玩的圆珠笔海战游戏 Ink Armada:作者用 Claude Fable 5.1 亲手复刻
The Ballpoint Pen Game Nobody Could Play, So I Built One
针对 X 上一条宣称由未公布的 "Fable 5.2" 生成、播放量超 60 万的圆珠笔风格海战游戏视频 Ink Armada 却无任何可玩链接,作者用 Claude Fable 5.1 在 Claude 应用中自行复刻了这款游戏。成品为单个 53 KB 的自包含 HTML 文件,基于 Canvas 2D、无依赖无 CDN,可离线双击运行,所有船只与波浪均由模拟笔触的折线绘制,不含任何图片素材。
9月18日深夜,X 上有一段视频从我眼前划过,让我久久无法忘怀。@chetaslua 发布了一段海战片段,完全是用圆珠笔在横线笔记本纸上绘制的。帆船交火、一座灯塔、一座棕榈岛、一张带有罗盘玫瑰的藏宝图、一个风向指示器。得分弹窗写着“RESCUED! +50”和“HELP!”。页边空白处,是一道没做完的数学题,关于一艘船以12节航行3小时,还有老师用红笔写的批注。角落里一个标签写着“EVERY LINE HERE IS BALLPOINT PEN”。其构思是一个无聊的孩子在练习本上画海战,而不是听讲。
这是一件可爱的作品。到第二天,它的观看量已超过60万。配文是“Fable 5.2 made this video and game both < routed from fable 5.1 >”。
我想玩它。我玩不了,而这恰恰成了有趣的部分。
我能核实的,和我无法核实的
没有可玩的链接。不在帖子里,不在回复里,也不在他的 GitHub 上——他有八个公开仓库,没有一个属于这个游戏。片段自己的标题画面用大号粗体大写字母写着 INK ARMADA,所以名字从来不是秘密,有人找得足够仔细,甚至在他一个不相关的仓库上开了一个 issue,正文全部内容就是“ink armada link for game ?”。它没有得到任何回应。
这种缺失很显眼,因为这不符合他通常发布作品的方式。他的 little-neighbourhood 项目有一个单独的 index.html、一个 GitHub Pages 链接和一个可下载的 HTML 版本。那是一个懂得如何把一个自包含的浏览器小玩具呈现在人们面前的人。而这里,什么都没有。
然后是模型声明。“Fable 5.2”并不是一个已公布的模型。截至9月18日,它没有出现在任何 Anthropic 文档、任何站点地图和任何 OpenRouter 目录中。我能找到的最新标识符是 claude-fable-5-1,于9月1日发布。“Routed from 5.1”意味着他相信一个未公布的检查点悄悄服务了他的 Claude Code 请求。
为此提供的证据,来自他本人和另一个账号,是一个回忆提示。他们在禁用搜索的情况下询问某个冷门人物是谁,得到了与之前不同的答案。这真的就是全部了。没有模型标识符,没有模型列表的截图。另一个账号把同样的结果解读为发布不会很快到来的证据,这足以说明这个测试有多少分量。对冷门名字的回忆会随温度、系统提示和测试框架而变化,因此它无法把新的检查点与普通波动区分开来。
然后我做了本该一开始就做的事,把这段视频逐帧拆开,以半秒为间隔共 61 帧。有两件事明晃晃地摆在里面。第一,视频在整个播放过程中都带着一条固定字幕:“made by Claude Fable 5.1 · 2 prompts · sprites via ChatGPT Images”。这并不与他的路由说法矛盾,因为他用的工具无论如何都标着 5.1,但这是游戏内横幅没有做出的披露:那些船和云是钢笔风格的 AI 生成图像精灵,所以“EVERY LINE HERE IS BALLPOINT PEN”描述的是外观,而不是方法。第二,这些帧显示出一个真实且出人意料地有深度的游戏。一个带操作说明的标题画面。用 A 和 D 航行。一个会消耗墨水槽的涂鸦打击特殊技。有名字的波浪,一个叫 The Black Biro 的 Boss,一条带着“保持移动”警告的巨妖触手,要躲避的闪电,火药桶,像打水漂一样弹跳的平射,还有像漂流瓶消息一样飘过的提示。这确实是出色的作品,这让缺失的那一环更奇怪,而不是没那么奇怪。
我在这里要谨慎,因为这篇帖子有一个懒惰的版本,而我不是在写那个版本。他不是捏造者。2025 年 10 月他发布的早期 Gemini 3.0 Pro 演示经受住了检验。我不是在说这个说法是假的。
我要说的更窄。演示视频不是一件制品。你没法运行一段视频,没法读它的源码,没法检查它是否做到了剪辑所暗示的事。而“是哪个检查点服务了我的请求”这件事,从服务它的公司外部是无法知道的,他、我或回复里的任何人都不知道。两件事可以同时为真:他看到了他说他看到的东西,而我们没人能验证它。对一个关于模型的不可验证说法,正确的回应不是去争论那个模型。而是去把那个东西做出来,看看它到底有多难。
这是一个原创游戏,不是对他那个的复刻。我从没见过他的源码,我也不是在试图重现他的输出。这也是一个我真心想做的游戏,而不只是我想证明的一个观点。我写了一份简报,并在 Claude 应用里用 Claude Fable 5.1 把它做了出来。第一个可玩版本来自一次会话;把它从可玩变成我愿意署上自己名字的东西花了更长时间,而且我离完成还差得远。我保留了 Ink Armada 这个名字,也就是他自己开始画面上的标题,因为大家已经这么称呼那个他们玩不到的东西了。
它是一个自包含的 HTML 文件,按实际提供时是 53 KB,Canvas 2D,无依赖,无 CDN,无第三方请求。双击它就能离线运行;它唯一一次网络调用是把你的分数发送到这个网站自己的排行榜,而那次失败只意味着分数留在本地。在他的精灵来自 ChatGPT Images 的地方,我的里面没有任何图像:每一艘船、每一道波浪和每一个涂鸦都是一条通过模拟钢笔推出来的折线,而这正是这篇帖子真正要讲的部分。
操作:用鼠标瞄准,按住蓄力,松开开火。方向键、空格和 R 也可以,触屏也行。
这是一场侧视角的炮战。你的船在左侧,敌人从右侧驶入,分为三种级别:单桅帆船、护卫舰和大型帆船。风向每一波都会变化,显示在一个涂鸦罗盘上,并会弯曲每一发炮弹的轨迹,包括敌方的。船只中弹时会积累红色涂鸦损伤,有些单桅帆船会撞击你。被击沉的船会被一个画得过重的红色 X 划掉,并掉落一名幸存者,他会挥手七秒半。点击他们可获得绿色的“RESCUED! +50”。
页面本身就是笔记本。印刷的规则、红色页边距、活页孔、纸张纹理,以及大量发挥作用的页边涂鸦:数学题、一个被划掉的错误答案、一个被圈出的 C- 旁边用红色写着“PAY ATTENTION! SEE ME AFTER CLASS.”、棕榈岛、灯塔、藏宝图。页脚写着“NAME: ... CLASS: 4-B SUBJECT: NAVAL WARFARE”。
真正的问题在于笔
这是值得你花时间的部分。伪造圆珠笔比看起来更难,而显而易见的方法行不通。
如果你给每个 lineTo 添加随机抖动,你会得到一个摇晃的滤镜。它看起来像坏掉的线条渲染器,而不是手,因为手不会产生白噪声。有效的方法是把笔视为多个平滑信号叠加在一起。
两个噪声频带,而不是一个。每一笔都会获得两个平滑值噪声频带,沿笔画法线偏移。低频带是手腕漂移,大约在 30 到 40 像素内漂移一个像素。叠加在上面的高频带是颤抖,大约 0.4 像素。每个点一个随机偏移读起来像噪声。两个不同频率的平滑频带读起来像一只手。
压力同时驱动宽度和透明度。第三个平滑频带充当笔压,它同时控制线宽和墨水透明度。这很重要,因为圆珠笔会同时变得更暗更宽。只改变其中一个而不改变另一个,它就不再像墨水了。
墨水积聚。真正的圆珠笔在笔尖首次接触时会留下一个小墨点。在每一笔的前五个像素左右施加指数压力提升就能实现这一点,而且它对效果的贡献比其大小所暗示的要大。
断墨。第四个噪声频带经过阈值处理,一次将几个像素的透明度降至约 15%。笔会断墨。一支从不断墨的笔看起来像印刷的。
拐角过冲。这是让我惊讶的一点。任何比约 50 度更尖锐的拐角都会将折线分成两笔独立的笔画:来笔延伸过拐角一到三个像素,去笔在拐角前一到两个像素开始。这一条规则就是看起来像手绘的矩形和看起来像绘图仪绘制的矩形之间的区别。手会过冲拐角然后回来。
重描。每个形状都有机会以 45% 的透明度、使用不同的噪声种子再描一遍。这就是你在真实笔记本中看到的“描了两遍”的样子,它打破了让生成艺术暴露的均匀性。
在纸张图层上使用正片叠底合成,这样重叠的墨水会像在真实纸张上一样变暗。
然后是性能优化,因为所有这些都很昂贵。每一笔都取一个种子,所以它是确定性的。纸张和静态涂鸦一次性烘焙到离屏画布。船只烘焙到精灵画布中,按类型、损伤、朝向以及三种“沸腾”变体之一作为键,这些变体大约每 280 毫秒循环一次,所以移动的东西会闪烁,而下面的页面保持静止。波浪用同一个慢种子实时绘制。在软件渲染的无头 Chromium 中,1280x760 分辨率下测得每帧绘制约 1 毫秒,并且它尊重 prefers-reduced-motion。
还有一个手写字体:A 到 Z、数字和标点定义为 4x6 网格上的折线,通过同一支笔推送,使标签与艺术风格匹配,并带有每个字形的基线和旋转抖动。
不足之处
手写字体是其中最粗糙的部分,我不会为它辩护。敌人 AI 是一个计时器,不是大脑。声音是在这篇帖子首次发布之后才加入的:笔刮声和纸张拍击声的拟音在 Web Audio 中合成,没有音频文件,符合无素材规则。它默认关闭,因为一个不请自来发出噪音的页面比安静的页面更糟糕;按 M 键开启,选择会保留。
这是开始,不是结束
今天上线的是第一个可玩版本,我把它当作基础而非完成的游戏。我正在朝着这个计划构建:50 个关卡而不是无尽波次,每十关有一个 Boss。海怪。风暴搅动大海,让风的意义不止于弯曲的轨迹。还有你的船学会移动,因为躲避海怪的触手或冲撞的单桅帆船应该是一种技能,而不是抛硬币。
没有承诺日期,因为我不知道。每一部分落地时都会写出来,因为渲染技术仍然是这一切的重点。
这是系列的第一篇
我称之为 Margin Games:小型单文件浏览器游戏,整个噱头就是渲染。每一个都用代码伪造一种不同的模拟媒介,完全没有图像素材。每一个都会在这里有一个可玩页面,以及一篇关于渲染如何工作的文章。
目前列表上有:带灰尘和涂抹擦痕的黑板、带绘制曲线的方格纸、带马克笔洇墨的便利贴、热敏收据纸、毡尖笔餐巾纸草图、青底白线的蓝图、洞穴壁画,以及带干擦残影的白板。
如果你想看到某种媒介被伪造,告诉我。我会认真对待建议,越奇怪的比显而易见的更有趣。
来源:Hacker News · intelligenttools.co