一只电子宠物,养到最后不会死,而是把全人类都杀了——这是独立开发者最近在个人博客“0dd Company”上放出的项目,名字就叫APOCKETLYPSE(谐音apocalypse+pocket)。玩法看着眼熟:喂养、进化、看它长大。反转就一处:它不会死,它会毁灭世界。
这东西粗糙、简陋,连作者自己都说“不算好玩”。但它背后那条动机链——一个专业程序员为什么会在AI写代码的时代,跑去用最原始的字节码手搓一只毁灭系电子宠物——比游戏本身有意思得多。
养成的终点不是死亡,是审判
APOCKETLYPSE的规则很简单。屏幕上一只低分辨率的骷髅头小怪物,你靠摧毁三类“食物”喂养它:医院、森林、太阳能农场。喂得越多,它进化得越快。
全程共6种形态,3个最终形态、2个中间过渡。三个终极形态对应三种“启示录”:
- Siknis(瘟疫)——摧毁医院喂出来,结局文本写“医院倒了,瘟疫蔓延,人们对科学的信任却仍在下滑”
- Mach-N(机械)——摧毁森林喂出来,对应“人类越来越依赖机器,直到忘了自己是谁,机器最后也忘了”
- Killroad(污染)——中间形态长着鹿骨和机械臂,象征汽车尾气污染
没有失败状态。你不会输,只会一直喂,直到某个物种审判日降临。作者说灵感来自《死亡的胜利》(The Triumph of Death)这幅画,顺带把自己养《数码宝贝》时对宠物死亡的童年心理创伤,直接翻译成了游戏机制:既然死亡这件事让我难受,那就把死亡挪到人类头上。
这是黑色幽默,但也不完全是。它更像一次情绪置换——用毁灭世界的荒诞感,冲掉养成游戏里“看它死”的旧伤。
为什么是uxn,不是任何一种“正常”语言
真正的信息量在这里。作者写这个项目,用的不是Python、不是Unity、也不是任何带包管理器的现代框架,而是uxn——一个forth派生的极简字节码编程系统。写代码等于手工往一个栈里推数字、弹数字,没有变量名提示,没有自动补全,连堆栈状态都得在脑子里记着。
作者自己交代了动因:他这些年对业余编程的兴趣在明显下滑,原因是AI已经深深嵌入了他“专业”写代码的日常。换句话说,当写代码这件事越来越多地交给模型去补全、去生成,他反而对“亲手控制每一个字节”产生了强烈的补偿性渴望。
这条心理路径值得多说一句。高层语言、框架、AI辅助,本质都是把程序员和底层机器隔开一层又一层抽象——效率更高,但“掌控感”一路稀释。uxn做的事正相反:把这层层抽象全部剥掉,逼你回到最原始的推栈弹栈。作者的原话是,这种编程更像“在纸上做数学”,而不是“写循环”。
抽象层越厚,掌控感越薄——这次是有人主动把它扒回原点
- 结论.这不是一次技术选型,是一次针对“AI替我写代码”焦虑的行为疗法——用最笨的方式,把控制权抓回自己手里。
从ROM到手腕上的实体设备
这个项目没有停在软件层面。uxn生态目前已经能跑在一款基于ESP32芯片的低成本硬件——M5CStick上,作者把编译好的ROM移植过去,做成了一个可以戴在手腕上的实体电子宠物。
这条链路说明uxn生态的软硬件成熟度已经过了“只能在电脑上跑模拟器”这一步,个人开发者现在能用很低的成本,把字节码程序直接烧进随身设备里。作者公开了完整源码(main.tal)和编译好的ROM(main.rom),供其他人在uxn模拟器上运行——只是提醒一句,他自己开发时用的屏幕分辨率很低,普通人想跑起来体验更好,建议找一个可以放大显示的uxn版本。
这类东西该按什么标准评价,是个真问题。按“游戏”的标准,APOCKETLYPSE毫无及格线可言:玩法单薄,平衡性近乎不存在,通关只是喂到数值溢出。但按“编程行为艺术”的标准,它成立——作者自己说,这是他很久以来跟计算机相处最开心的一段时间,并且“现在才真正理解了uxn”。
有意思的是,联网核实这个项目时几乎找不到任何独立于作者原文的报道、评测或社区讨论——检索结果全是关于uxn生态的通用背景介绍,没有一处提到这个具体项目。这本身也是一条信息:这类个人artware项目,天生活在主流科技报道的视野之外,它的价值不靠传播量,靠的是做的人自己是否被说服。
养成不再指向死亡,指向毁灭——这个反转好玩,但真正的信号在别处:当代码生成越来越自动化,总会有一部分程序员选择往回走,退到最不被AI染指的那一层,把控制权一个字节一个字节地要回来。这条路径未必能推广,作者自己也说不会用uxn做“严肃”项目。但它至少证明了一件事——技艺的手感,不是想找回就能随便找回的东西,得先愿意慢下来,愿意笨一点。
