「命令行里长出一座城」:ASCII 版 3D 城市与复古计算的回潮

| | 1 次浏览

显卡的性能一年比一年强,路径追踪、AI 超分、照片级材质,画面的“真实感”似乎只剩下一步之遥。但偏偏有一群爱好者在往回走,回到那个连像素都很奢侈、一切都要靠字符拼出来的年代。

事件要点

IT之家援引 Gizmodo 的报道,名为 Grow Now! Games 的开发者把“字符作画”这条路线推到了一个新高度:用 ASCII 字符构建了一座可以自由探索的 3D 城市。整个项目没有 3D 模型,也没有着色器,构成这座城市的“像素”,是最普通的字母、数字和符号。玩家在其中漫游时,看到的不是贴图和光影,而是密密麻麻的字符随视角流动、明暗交替,硬是用文本拼出了空间感。

报道中同时提到了另一个呼应的案例:有开发者把微软 1990 年前后的 Word(Windows 1.1a 时代)移植成原生 x64 程序,让它可以直接跑在 Windows 11 上。这两件事放在一起看,很难说是巧合——在工具和算力都严重过剩的今天,“自己给自己上枷锁”正在成为一种显性的技术趣味。

背景:字符渲染的老手艺

用字符模拟三维画面并不是新发明。早在 BBS 时代,ANSI 艺术就是 cracked software 的 nfo 文件里的标配;Demo Scene 圈子甚至有专门的 Text Mode Demo Contest,在纯文本模式下比拼实时动画的极限。

而程序员圈最出圈的案例,大概是 Andy Sloane 那个著名的 “donut.c”——一百来行 C 代码,在终端里渲染出一个旋转的甜甜圈。它的原理也正是这类项目的通用套路:把三维场景投影到二维网格上,再根据每个格子的亮度,从 " .:-=+*#%@" 这样一串字符里挑出对应明暗的那个填进去。字符的疏密和笔画结构,天然构成了一条灰度阶梯。

如果再加上 raycasting 之类的逐列扫描和简单的遮挡判断,就能在纯文本世界里造出街道、楼宇和纵深。这套算法对现代 CPU 来说几乎是“零负担”——真正的难点从来不是算力,而是怎么在这么粗的粒度下,让人一眼认出“这是一栋楼”“那是一条街”。

游戏界其实早有先例:从 Roguelike 到《Dwarf Fortress》《Cataclysm: DDA》,用字符构建世界的设计延续了几十年,并沉淀出一批忠实玩家。Grow Now! Games 的不同之处在于,它不是把字符当作妥协,而是当作一种完整的视觉语言,去做“自由探索”这件本属于现代 3D 游戏的事。

这股回潮为什么值得看

怀旧当然是一部分原因,但不全是。字符渲染有几个被低估的实际优点:带宽极低,通过 SSH 连到远程服务器上照样流畅;对硬件几乎零要求,任何能开终端的设备都能跑;风格辨识度极高,在一水儿的虚幻引擎画面里反而醒目。对于远程开发、低配设备、可访问性场景,这些都是真实存在的价值。

更重要的是它对开发者文化的一种提醒:创意的最高产出点,往往不在工具最全的地方,而在限制最紧的地方。当渲染管线、素材商店、现成引擎把“做游戏”的门槛降到拖拽即用时,愿意从字符开始手搓渲染的人,恰恰是在重新理解图形学的第一性原理。

简短点评

算力越是廉价,“怎么用”就越比“有多少”有趣。ASCII 城市大概率不会改变任何行业格局,它更像一份公开的证明题:屏幕上那些最古老的符号,仍然装得下一整个世界。对看惯了光追大片的我们来说,这种笨拙又精巧的画面,反倒有种久违的新鲜感,技术宅的浪漫,从来不在分辨率里。

评论(0)

暂无评论,来写第一条吧。