
《Terraria(泰拉瑞亚) 》是由Re-Logic公司开发的一款高自由度的2D沙盒游戏,于2011年5月16日在PC上发行。在游戏中玩家可以探索广阔的领域,同时与敌人战斗,制作物品和建造建筑物, 甚至有玩家使用各种材质构建大量电路来再现 32 位计算机,From Scratch发布了一段视频《I Made a 32-bit Computer Inside Terraria - YouTube》介绍了其创建的过程。
《Terraria(泰拉瑞亚) 》中有输出信号以激活电路的“开关”、传输信号的“线”以及接收信号并操作的“门”和“灯”等物品,可以在创建基地时自动执行各种物品的操作行为。

使用这种机制,可以通过将开关ON或OFF设置为“0”或“1”来执行逻辑计算,From Scratch说,为了这《Terraria(泰拉瑞亚) 》中复制了一台32位计算机,他从零开始在泰拉瑞亚的中设计了各种电路。

From Scratch花了大约三个月的时间连接电路。

电路随时间不断的增加

From Scratch说,他通过这个过程学到了大量的数学逻辑和CPU设计知识。

实际上这个电路最困难的部分是“调试”。 由于电路都是由《Terraria(泰拉瑞亚) 》物品制成的,所以外观很复杂,如果在哪里连接错了的话,寻找错误是非常辛苦的。

有时只要弄错一根电线的种类,整个电路就无法发挥作用。 From Scratch说,这个过程「象从干草堆,寻找干草的外观的针一样的东西」。

此外,由于《Terraria(泰拉瑞亚) 》没有针对“广阔的世界”进行优化,因此存在一个问题。 这个问题表现为电线太长的信号传输速度慢。

这就是导线信号的工作原理:接收信号的导线首先检查相邻像素,如果任何像素具有可以传输信号的对象,它就会执行传输。

由于一次传输一个像素的信号的机制,导线越长,信号传输速度越低。 改善这种情况的唯一方法是将电线重新连接得很短。

由于游戏本身机制限制,该电脑的部分电路系统没法照搬现实,而是经过了重新设计。最终的成品时钟速度约为5kHz,拥有96kb内存,集成rv32i指令集,可以运行《Pong》(乒乓球)小游戏

还制作了细胞反复出生和消失的模拟游戏“康威生命游戏(Conway's Game of Life)”。 但是细胞出生和消失的显示速度相当慢,视频加快了240倍。

他还创建了一个系统,通过指定 X、Y 和 Z 坐标来渲染 3D 世界。 但是也很慢,渲染每一帧需要 45秒。

From Scratch 还在继续开发,目标是“在泰拉瑞亚中运行泰拉瑞亚”。 感兴趣的朋友可以在GitHub下载他的存档和相关文件。
GitHub-misprit7/computerraria:A fully compliant RISC-V computer made inside the game Terraria
https://github.com/misprit7/computerraria


















