首页 >>  正文

我的世界锻造台合成表

来源:baiyundou.net   日期:2024-07-01

梦晨 衡宇 萧箫 发自 凹非寺

量子位 | 公众号 QbitAI

自从有人在《我的世界》里用红石电路造出CPU,就流传着一个梗:

总有一天,这帮红石佬能在我的世界里玩上我的世界。

这一天,真的来了!

先来看这台“在无MOD纯原版我的世界里搭建的电脑”(简称“我的电脑”)。

拥有1Hz频率的CPU、8KB内存、6KB显存的显卡、加速模块,96x96像素显示器,以及一只PS4手柄作为输入设备。

它运行起来是这样的:

电脑有了,还缺的就是能跑在上面的游戏代码。

大佬们先用一种叫URCL的中间语言手敲,再转换成自制CPU能运行的汇编码搞定。

就这样,3个人肝了10个多月,终于实现史诗级套娃。

这个移植版《我的世界》,不但拥有游戏的基本玩法如开放世界、方块摆放,采矿,甚至连物品合成都有。

作者之一sammyuri把最终成果浓缩成一条3分钟的视频,已经收获近百万播放量和10万多赞。

一条高赞评论将其誉为“整个电子游戏史上最伟大的壮举”,只有足够复杂的游戏和足够精通的玩家才能达成。

也有人表示“我失望于自己无法完全理解和欣赏这个作品,到底难度有多高,以及需要的工作量有多少。”

要理解这一切,还要从17个月前sammyuri造出的那块CPU说起。

CPU显卡都自制

狂肝7个月,sammyuri在《我的世界》中生造出一块CPU,初衷是为探索红石电路的极限。

最终成果是一台8位处理器,采用三个寄存器操作数的RISC架构,可以1Hz频率运行,拥有256字节RAM。

取名CHUNGUS 2,意为“计算用超巨大非传统数字与图形处理器”。

与此同时,他还开发了专用汇编器,可以把程序代码转换成可以一键粘贴到《我的世界》里的砖块结构。

sammyuri认为,CHUNGUS 2性能基本达到雅达利经典游戏机Atari 2600水平,运行个贪吃蛇、俄罗斯方块都不在话下。

手搓CPU的视频,一发到网上就爆火,播放量过百万。

但他并不满足于此,甚至(在读者的鼓动下)萌生了无限套娃的想法——在《我的世界》中玩上《我的世界》。

不过,这听起来实在是天方夜谭……

毕竟在现实中,《我的世界》游戏最低配置要求也是3Ghz CPU+4GB内存,他这只有1Hz CPU+256字节内存的配置,怎么带得动?

这时候就需要借助群体的智慧了(手动狗头)。

Sammyuri找到Uwerta和StackDoubleFlow,三个人一起基于这个CPU,给计算机来了一次升级,其中2个人负责在游戏中搭硬件,1个人负责写代码。

这一升级就是10个月,最后竟然真的在《我的世界》中,用一块96×64像素的屏幕,玩起了一个3D版、复刻16种方块+32种物品、还原数十种游戏机制(挖掘、制作、烧制、搭建、箱子、随机刻等)的《我的世界》!

没错,这还是个3D的《我的世界》,因此计算机中还配备了显卡(GPU),专门用来处理图像。

这只GPU名叫“AMOGUS”(Absurdly Massive Operator on Graphics by Uwerta and Sammyuri,超巨大的图形运算器,Uwerta和Sammyuri制造)。

△AMOGUS

首先,给这个GPU输入物体在3D空间中的坐标、以及纹理位置等信息;随后根据相机位置,切割出需要显示的画面(例如相机位于一棵草中间,它就只显示相机前面的草,将相机后面看不见的草切掉);

接下来,将屏幕上的3D坐标映射成2D坐标,并将四边形分割成3个梯形、进一步分割成像素行、再分割成单个像素,并进行线性插值来计算每个像素对应的纹理位置(即纹理映射),以及它与相机的距离;

△(图源Surfaced Studio)纹理映射原理,在AMOGUS中做了简化

纹理映射是实现GPU处理3D图像的一个关键。用GPU处理3D图像时,需要将屏幕上的1个像素与3D物体表面纹理上的某个位置对应起来,也就是纹理映射。

由于目标与相机的距离一直在变化,因此纹理映射占用屏幕的像素范围也不一样。

最后,从纹理缓存中获取像素颜色,并将深度与屏幕当前像素深度(存储在6kb的像素深度缓冲区)进行比较,如果更相近就进行覆盖。

除了用GPU处理图像以外,这台可以运行《我的世界》的计算机又是如何存储游戏数据、并与玩家进行交互的?

以充当工作台的ROM为例,它存储了各种锻造和烧练的配方,当输入一系列需要合成的物品(如一系列木头)时,就会输出一个结果(木块),否则就输出0。

用于存储世界地图的RAM由512×4位地址组成,一共256字节,基于坐标(x,y,z)寻址。如果检测到玩家超出边界,就会返回0或255。

△世界地图就存在这里

输入控制器,则由一系列《我的世界》中的压力板组成,踩到后就会将当前状态发送到队列中,CPU就能读取并处理。

△根据PS4手柄风格设计

当然,在《我的世界》中运行这台计算机,必须经过加速(否则可能几小时都计算不出一帧)。

于是他们便借助MCHPRS服务器,提升了一波红石运行的速度,达到了每秒0.1帧的极限水平(doge)。

即便如此,我们看到的这段2分钟视频,仍然花了大约9小时录制,有种“天上一天,地下一年”的感觉。

据Sammyuri表示,目前他们正在进一步优化GUI(图形用户界面),下一步有可能制作一个独立的、只运行红石系统的版本,甚至实现在《我的世界》中运行《DOOM》的梦想。

细节上有多硬核?

其实在这之前,不少红石佬们都想过用不同方法实现“在我的世界里玩我的世界”。

但多少走了点“捷径”,不算是用《我的世界》中的原生工具实现。

例如,通过虚拟机模组,在《我的世界》使用各种部件组装电脑,并当作虚拟机运行,比如这个VM Computers mod:

还有通过Web displays的,也就是在《我的世界》中搞一个浏览器,再运行网页版《我的世界》:

尽管sammyuri三人组的方案尚存不足,但相比起来,不借助外部工具辅助又多叠了一层硬核buff。

“无限套娃”许愿成功!

当然,除了“工具全部现成”以外,这个0.2版本的《我的世界》,还有更多细节值得一看。

比如那个用1和0码出的CPU存储器——CHUNGUS 2,制程工艺达到了先进的1米(doge),频率达到了1Hz。

它有一个4级指令管线化,64字节的8路关联数据缓存,甚至分支预测,符合RISC标准

而生造的GPU,又能成功运行,把捏出来的计算机里的《我的世界》方块,全部进行3D渲染

再者,红石线路本就具备数字电路的基本要求,只不过堆叠运行限制很大。

移植版《我的世界》玩儿起来,再次证实了《我的世界》的图灵完备

具备图灵完备,意味着在不考虑实时运算的前提下, “在《我的世界》里玩《我的世界》”,可以一直套娃。

狂肝10多个月可以套娃一次,要是狂肝20多个月,岂不是就能实现“在《我的世界》搭电脑玩《我的世界》,并在后者中再搭一个《我的世界》来玩”???

套娃人狂喜!

不过,考虑到《我的世界》边界距离理论上是有限的,所以每一次模拟出的《我的世界》都会更小

因此真·无限套娃,用这个办法恐怕还是不行。

但,如果造出来的《我的世界》里有了红石电路,这并不妨碍新的一轮套娃又要开始了~

事实上,sammyuri在视频最后留了个彩蛋,“关注点赞我可能开始做我的世界中的我的世界中的我的世界”

他不会是认真的吧?不会吧?

GitHub地址:

https://github.com/sammyuri/minecraft

《3D版我的世界套娃》压缩包:

https://www.mediafire.com/file/fbkuwo2aqg8gigj/3D+Minecraft+in+Minecraft.zip/file

参考链接:

[1]https://www.youtube.com/watch?v=-BP7DhHTU-I

[2]https://github.com/MCHPR/MCHPRS/blob/master/docs/Redpiler.md

[3]https://news.ycombinator.com/item?id=32901461

[4]https://www.youtube.com/watch?v=eiDrRa6JvQ0

— 完 —

量子位 QbitAI · 头条号签约

","force_purephv":"0","gnid":"9552445beb9852bea","img_data":[{"flag":2,"img":[{"desc":"","height":"337","s_url":"https://p0.ssl.img.360kuai.com/t01a44c0757abcc5024_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t01a44c0757abcc5024.gif","width":"600"},{"desc":"","height":"337","s_url":"https://p0.ssl.img.360kuai.com/t01091d183832e86abb_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t01091d183832e86abb.gif","width":"600"},{"desc":"","height":"337","s_url":"https://p0.ssl.img.360kuai.com/t011cad63c8c8e86b2b_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t011cad63c8c8e86b2b.gif","width":"600"},{"desc":"","height":"337","s_url":"https://p0.ssl.img.360kuai.com/t013d382aab1b104720_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t013d382aab1b104720.gif","width":"600"},{"desc":"","height":"605","title":"","url":"https://p0.ssl.img.360kuai.com/t01e211a8e60774d6bd.jpg","width":"1080"},{"desc":"","height":"341","title":"","url":"https://p0.ssl.img.360kuai.com/t01a162062362315b56.jpg","width":"1080"},{"desc":"","height":"316","title":"","url":"https://p0.ssl.img.360kuai.com/t01f810c82560085aab.jpg","width":"1080"},{"desc":"","height":"315","title":"","url":"https://p0.ssl.img.360kuai.com/t013c62f940054b1788.jpg","width":"1080"},{"desc":"","height":"337","s_url":"https://p0.ssl.img.360kuai.com/t01817c36e2dbcc165c_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t01817c36e2dbcc165c.gif","width":"600"},{"desc":"","height":"168","title":"","url":"https://p0.ssl.img.360kuai.com/t017833ed606d5113c2.jpg","width":"1080"},{"desc":"","height":"337","s_url":"https://p0.ssl.img.360kuai.com/t01a268dcc2f919ff7d_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t01a268dcc2f919ff7d.gif","width":"600"},{"desc":"","height":"337","s_url":"https://p0.ssl.img.360kuai.com/t01028f16be6ca97f93_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t01028f16be6ca97f93.gif","width":"600"},{"desc":"","height":"513","title":"","url":"https://p0.ssl.img.360kuai.com/t013cd092774a6133c3.jpg","width":"1080"},{"desc":"","height":"680","title":"","url":"https://p0.ssl.img.360kuai.com/t01239cc2a18f89cd76.jpg","width":"672"},{"desc":"","height":"533","title":"","url":"https://p0.ssl.img.360kuai.com/t01c4e64ad6b4ac425a.jpg","width":"1080"},{"desc":"","height":"531","title":"","url":"https://p0.ssl.img.360kuai.com/t01b401abfccd38b2e7.jpg","width":"1080"},{"desc":"","height":"316","s_url":"https://p0.ssl.img.360kuai.com/t014e84c797278845e0_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t014e84c797278845e0.gif","width":"480"},{"desc":"","height":"316","s_url":"https://p0.ssl.img.360kuai.com/t01f5a6865e4fbfda56_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t01f5a6865e4fbfda56.gif","width":"480"},{"desc":"","height":"677","title":"","url":"https://p0.ssl.img.360kuai.com/t01752db31ee36530be.jpg","width":"1080"},{"desc":"","height":"316","s_url":"https://p0.ssl.img.360kuai.com/t01ffe705c087e5e47d_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t01ffe705c087e5e47d.gif","width":"480"},{"desc":"","height":"260","s_url":"https://p0.ssl.img.360kuai.com/t018ed7275d4bc0e61a_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t018ed7275d4bc0e61a.gif","width":"480"},{"desc":"","height":"364","s_url":"https://p0.ssl.img.360kuai.com/t01551e1580e92aadb6_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t01551e1580e92aadb6.gif","width":"666"},{"desc":"","height":"248","s_url":"https://p0.ssl.img.360kuai.com/t01aa8f1fe8ddea0eb3_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t01aa8f1fe8ddea0eb3.gif","width":"468"},{"desc":"","height":"376","title":"","url":"https://p0.ssl.img.360kuai.com/t0102386b53f22f5619.jpg","width":"1080"},{"desc":"","height":"138","title":"","url":"https://p0.ssl.img.360kuai.com/t01139f51c334b0f4a2.jpg","width":"1080"},{"desc":"","height":"339","title":"","url":"https://p0.ssl.img.360kuai.com/t019ab36a8789305dd1.jpg","width":"1080"},{"desc":"","height":"86","s_url":"https://p0.ssl.img.360kuai.com/t01fbab5bfe3c93676a_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t01fbab5bfe3c93676a.gif","width":"118"},{"desc":"","height":"608","title":"","url":"https://p0.ssl.img.360kuai.com/t01e6c812dc40f6bc69.jpg","width":"1080"}]}],"original":0,"pat":"pdc,art_src_3,otherc,fts0,sts0","powerby":"hbase","pub_time":1663650540000,"pure":"","rawurl":"http://zm.news.so.com/37e4356e495eb7af7ae7d6e84f16955c","redirect":0,"rptid":"e7b7e4b3a7d78fa1","s":"t","src":"量子位","tag":[{"clk":"kgame_1:我的世界","k":"我的世界","u":""},{"clk":"kgame_1:gpu","k":"gpu","u":""},{"clk":"kgame_1:minecraft","k":"minecraft","u":""},{"clk":"kgame_1:cpu","k":"cpu","u":""}],"title":"狂肝10个月手搓GPU,他们在我的世界中玩起我的世界,梦想成真

鲜和卫2803电脑版我的世界合成表怎样做成9格图片 -
山以洋19444549150 ______ 这个叫做工作台.由4个木板合成.首先你撸一棵树 得到木头 可在物品栏分解出N个木板 将其中4个分别放置在你物品栏右上角的 4→1格里边 得到工作台. 将工作台拿在手里 可以放置在地上.就能得到9格的合成表了

鲜和卫2803我的世界工具合成台怎么做 -
山以洋19444549150 ______ 1.需要先砍树得到木块,砍4块2.在自身所带的合成表里合成木材,1块木块合成1块木材,3.4块木材在自身所带的合成表里可以合成1个工作台.

鲜和卫2803我的世界工作台怎么做 -
山以洋19444549150 ______ 先去挖木头~ 然后摁E打开背包,右上角会有4个小格子,把木头放到里面就可以得到4个木板 然后这样摆,木板 木板 木板 木板 就可以 合成工作台啦~ 嘛,我知道你不是傻子,但是这样不是详细点吗

鲜和卫2803我的世界右边的合成表怎么弄 - 我的世界装备合成表
山以洋19444549150 ______ 我的世界装备合成表分享了我的世界里头盔,胸甲,护腿,剑,弓箭等装备的合成表公式及作用.头盔(Helmets)需要物品:皮革或铁锭或金锭或钻石(...

鲜和卫2803我的世界怎么在工作台里看合成表 -
山以洋19444549150 ______ 如果你有安装G键合成表的话在物品上按G就可以查看此物品的合成表.望采纳

鲜和卫2803我的世界木工台的合成表 -
山以洋19444549150 ______ G键合成表 具体百度即可 问题解决请采纳,反之您可以追问或者移步麦块专业问答区

鲜和卫2803我的世界手机工作台怎么合成 -
山以洋19444549150 ______ 4个木板.木板用任意一个木头就能合成.

鲜和卫2803爱玩mc我的世界如何打开合成表 -
山以洋19444549150 ______ 我的世界想要打开合成表的方式有很多,今天给大家介绍一个!我们需要下载G键合成表mod然后再按G,就可以打开合成表了!

鲜和卫2803我的世界G键合成表怎么看酿造表? -
山以洋19444549150 ______ 显示/隐藏合成表按照加工类型的不同→有酿造台的图形边上三个选项(别点隐藏,隐藏(左上角)就没得看相应的合成表了,最好点只显示.)→反回合成列表(自己找下).查找其他合成表也就这么用.

鲜和卫2803我的世界手机版怎么合成酿造台? -
山以洋19444549150 ______ 一个烈焰棒三个圆石

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024