硬核!技术宅把ASCII字符游戏实时渲染成动态图像,AI开始给游戏“画皮”了吗
最近,一位名叫Jeff Schomay的软件工程师就干了这么一件堪称“魔法”的事。他把他自己开发的,一款名叫“雷霆蜥蜴”(Thunder Lizard)的ASCII风格游戏,通过AI的力量,实时“翻译”成了一款全动态图形游戏。
最近,一位名叫Jeff Schomay的软件工程师就干了这么一件堪称“魔法”的事。他把他自己开发的,一款名叫“雷霆蜥蜴”(Thunder Lizard)的ASCII风格游戏,通过AI的力量,实时“翻译”成了一款全动态图形游戏。
100毫秒定生死的“生死时速”
故事的起点,是一款画风清奇的ASCII字符游戏“雷霆蜥蜴”。玩家在一座满是恐龙的史前岛屿上求生,画风嘛,就是大家脑海里那种由字母、符号拼凑成的样子。Jeff Schomay琢磨着:“我能不能让AI实时地把这些字符,变成一幅真正的画呢?”
这个想法听起来简单,但“实时”两个字,就是珠穆朗玛峰。要知道,主流游戏为了流畅,至少得做到每秒30帧(FPS),算下来,留给AI每一帧的“绘画”时间,只有短短的33毫秒。在这33毫秒里,AI需要完成连接、接收指令、画图、传回图像、显示等一系列操作,这简直是不可能完成的任务。
为了实现这个想法,Jeff Schomay选择了fal.ai平台。这个平台主打的就是一个“快”,它提供了一种叫做LCM (潜在一致性模型) 的技术,能把AI的作画时间压缩到惊人的100毫秒左右。再加上WebSocket连接技术省去了反复验证身份的麻烦,以及Base64编码数据流让图像传输快如闪电,Jeff的“实时渲染”梦,总算照进了现实。
最终Jeff也只是把渲染速度稳定在了10 FPS,还伴随着大约一秒的延迟。虽然这个帧率和他原版ASCII游戏的目标帧率一样,但这一秒的延迟,玩起来还是能明显感觉到“慢半拍”。不过,这已经是技术上的一大步了!
理想很丰满,现实“画不来”
解决了速度问题,新的挑战又来了:怎么让AI画出我们想要的样子?fal.ai平台上有超过300个图像模型,简直让人挑花了眼。Jeff花了好几天,像“炼丹”一样测试了上百张图片,才摸清了这些模型的脾气。
他最初使用ControlNet,这是一种能给AI提供额外“指导”的技术。Jeff的想法很美好:他把游戏画面渲染成一张彩色的分割图,告诉AI“蓝色区域是水,红色是岩浆”,然后让AI在这个“填色游戏”里自由发挥。
然而,AI似乎有自己的想法。它看着这些方块状的分割图,表示“看不懂,也画不来”。最终的效果并不理想,Jeff推测,可能是因为这些简单的方块信息太少了,AI无法理解其中的含义。
后来,他换了一条路,直接把游戏画面作为“草稿”扔给图像到图像(i2i)模型。这下,生成的图像总算能和游戏布局对上了。但新的问题又来了,如果给AI的“创作自由度”太高,画面好看了,但布局就开始乱飞;如果限制得太死,画面又会跟原始的方块图一样呆板。这感觉,就像在调试一台老旧的电视机,信号总也调不到最佳状态。
速度与画质,我全都要?
在经历了无数次失败的“炼丹”后,Jeff终于找到了一个能在速度和效果之间取得平衡的方案:使用fast-lcm-diffusion/image-to-image
endpoint(端点),配合经典的StableDiffusion 1.5模型。有趣的是,他发现用色块版本的游戏帧作为输入,效果居然比用原始的ASCII字符帧要好。
虽然最终的实时画面离“惊艳”还有距离,尤其是AI始终无法将地图中的恐龙渲染成游戏中的“精灵”,但这已经是当前条件下能做到的最好了。
不过,作为一个有追求的工程师,Jeff并没有就此止步。他想看看,如果不考虑时间限制,画质的天花板能有多高。于是,他用上了另一个大杀器——LoRA技术。简单来说,LoRA就像是给AI模型定制一个专属的“风格滤镜”。
Jeff先用一个强大的模型生成了自己喜欢的画风,然后用这些图片作为教材,花了不到一美元,在几分钟内就训练出了一个专属的LoRA模型。
当他把这个LoRA应用到游戏中时,结果让人惊艳!画面质量直接提升了好几个档次。但代价是,每渲染一帧需要长达4秒的延迟。这画面虽然是天花板级别的,但这延迟也让游戏彻底变成了PPT,完全没法玩了。
这个结果既令人兴奋,又让人遗憾。它让我们看到了AI渲染的巨大潜力,也让我们清晰地认识到目前技术在速度和质量之间的巨大鸿沟。
一个技术宅的最终答卷
Jeff通过一个“三画布”系统,把这次实验的一切整合到了一起。游戏运行时,屏幕背后有三个世界在同时绘制:一个显示原始的ASCII字符,一个绘制供AI读取的色块图,第三个画布则负责展示AI实时传回的图像。
在成本方面,这个实验也相当成功。使用快速模型,每分钟的开销只有几美分。Jeff曾不小心用上述提到的LoRA模型以10 FPS的帧率跑,结果几秒钟就烧掉了10美元。
Jeff坦言,这个项目依然留下了一个悬而未决的难题:帧与帧之间的一致性。尽管AI已经尽力保持稳定,但画面中还是会出现“跳戏”的情况,比如上一帧的树,下一帧可能就变成了石头。这种视觉上的不连贯,是未来需要攻克的一大难关。
Jeff的这次实验,无疑是一次成功的探索。游戏开发或许有另外更快捷高效的赛道吗?只需专注于核心玩法,然后套用不同的AI渲染风格,就能快速生成各种高质量的艺术原型。
参考资料:
https://blog.jeffschomay.com/rendering-a-game-in-real-time-with-ai
https://enegames.itch.io/thunder-lizard-eat-or-be-eaten
https://fal.ai/
更多推荐
所有评论(0)