登陆注册
66052300000161

第161章 如何看懂调试界面 ①

(注意,本章的侧重点在于Java 1.8及之后的版本,1.8之前的版本本章并没有对其仔细研究,到时候会专门出一章来研究研究)

前面的一百多章节,讲了许多东西,但似乎漏了一个挺重要的东西。

想来想去,原来是调试界面还没讲。

既然第十四卷已经有19章了,那就新开一卷,放松一下,虽然还有许多东西没讲(比如自定义交易之类的,放第十六卷吧,村庄与掠夺更改的内容还得好好研究研究)。

在写本章时,作者为了检测各个Minecraft版本调试界面的区别,分别使用了四个启动器加一个第三方客户端开了五个不同版本的Minecraft Java版,它们分别是:Java1.7.10,Java1.8,Java1.12.2,Java1.13.2和Java1.16.5。因为Minecraft Wiki对于调试界面的历史变更记载起码有一半漏掉了,所以本章但凡有提到版本变更的,大部分都是作者自己测出来的一个比较模糊的范围。

进入正题。首先,什么是“调试界面”?

众所周知,在Minecraft Java版中,按下F3(Mac电脑和一些笔记本电脑是Fn+F3),屏幕上就会出现一大堆东西。这一大堆东西让许多Minecraft玩家直呼:“我看不懂,但我大受震撼”。

现在,请停止你的震撼,然后跟着我来从左上角开始一行一行看。

左上角第一行,显示的是游戏的基本信息,即:这个Minecraft Java的版本号是多少,启动器是什么,启动器版本号又是什么等。如果你是通过我的世界官方启动器启动的纯净Minecraft版本(即无插件),那么这一行将会显示:

Minecraft 版本号(版本号/vanilla)

这里的“vanilla”的意思是“纯净的”,即这个Minecraft是纯净版本,没有装任何其他插件(这里的插件并不包含资源包、附加包,而是指Forge之类的东西)。

如果你装了个Forge,那么这里将会变成:

Minecraft 版本号(版本号/fml,forge/Forge)

(上面这一行是在1.12.2版本下测试的结果)

但是,有些插件并不会显示,比如OptiFine。

如果你像作者一样,使用的是HMCL(HelloMinecraftLauncher)启动器,那么这儿将会显示:

Minecraft 版本号(HMCL 启动器版本号/vanilla/HMCL 启动器版本号)

如果你使用HMCL启动器并装了Forge插件,那么将会显示成:

Minecraft 版本号(HMCL 启动器版本号/fml,forge/Forge)

其他的一些Minecraft启动器作者也进行了测试,结果如下:

PCL2(Plain Craft Launcher 2):和Minecraft官方启动器一样

BakaXL:Minecraft 版本号(版本号/vanilla/BakaXL)

这是第一行,接下来请看第二行。

第二行的最前面你绝对看得懂,即fps(每秒传输帧数),大家口中的“帧率”。如果你连fps是啥都不懂......简单来说,fps数值越高,游戏越流畅,反之越卡。

后面就有些乱了。首先是个:

(数值 chunk updates)

实际上这很简单,你把这串放进生草机里搅拌一下,就会得到:

(数值个区块更新)

这本书看到这儿,只要你没有跳着看,区块是个什么你应该知道吧。

那“区块更新”又是什么东西?

答:当一个区块内有任何一个方块其NBT标签发生任何的改变,或者方块被破坏、放置、移动,这个区块就被视为发生了更新。

这个(数值 chunk updates)就是向我们显示目前游戏内有多少个区块发生了更新。

但可惜的是,1.15版本Mojang将chunk updates移除了。

(数值 chunk updates)后面是一个“T:xx”。这个T的值对应了视频设置内的“最大帧率”值。如果游戏设置内的最大帧率值是120,那么这里将会显示成“T:120”。如果游戏设置内的最大帧率被拉到了最大,也就是“无限制”,那么这里将会显示为“T:inf”。(这里的inf是infinity无限的缩写)

“T:xx”后面是一些单词,这些单词加上“T:xx”本身都是显示一些关于游戏画面的配置。

如果你在Minecraft的“游戏菜单/选项/视频设置”里打开了“使用垂直同步”选项,那么这儿将会在T:xx后面多出一个单词:

1.8/1.12.2/1.13.2——vsync

1.16.5——vsyncfancy

(vsync是Vertical synchronization[垂直同步]的缩写)

同样的,对于“云”的设置也会显示在上面。在Java 1.8.1以前,云的流畅和高品质是由“图像品质”选项控制的,1.8.1及之后云的流畅和高品质被独立到了“云”选项里。因为云有两种品质,所以当你打开云层时,显示的单词会有所不同。对了,对于“云”的设置其单词一定是显示在垂直同步后面的。

流畅:

1.8——fast clouds(这里的fast和clouds没有连起来是因为这儿的fast实际上并不只指云层是流畅品质,而是对应了“图像品质”选项里的流畅。当你把云关掉,你会发现fast还在这里,只是clouds消失了)

1.12.2/1.13.2/1.16.5——fast-clouds

高品质:

1.8——clouds

1.12.2/1.13.2/1.16.5——fancy-clouds

1.14的18w44a快照将“启用顶点缓冲器”选项移除了,并让顶点缓冲器在之后的版本中一直是保持开启状态。在移除这东西之前,只要你打开它,你就会在“云”的单词后面发现一个单词:vbo。

vbo是Vertex Buffer Object(顶点缓冲对象)的缩写。在移除过后,调试界面中就再也见不到它了。

在作者打开的1.16.5版本中,在“云”的单词后面还有一个:

“B:x”

这东西不知道是什么时候更新的,反正1.13.2版本没有见到。这个东西是关系到视频设置中的“生物群系过度距离”选项。这个选项可以选择0、3x3、5x5、7x7.....15x15一共8个级别的过度距离,分别对应“B:x”显示的0到7级。比如,如果你显示的是“B:2”,那么你的生物群系过度距离就是5x5(普通)。

第二行的内容还真多。接下来请看第三行。

1.13版本更新时,Mojang在原本的第二行到第三行间插入了一行,将原本C开头的第三行挤到了第四行也就是这串:

Integrated server @ xx ms ticks,xx tx,xx rx

嗯......不对,我是单人游戏,哪来的延迟?

实际上这儿并不是告诉你单人游戏的延迟,而是告诉你:

游戏中的一游戏刻需要电脑耗费多长时间运算出来。(ticks是游戏刻的意思)

众所周知,1000ms=1s,20游戏刻=1s,一般情况下电脑是可以保证一秒满20游戏刻,即一游戏刻需要运算的时间≤50ms。作者之前测试了一下,作死重复执行/execute at @e[type=item] as @e[type=item] run fill ~1 ~1 ~1 ~-1 ~-1 ~-1 air destroy,这行的ms ticks值立马飙到了1000ms多,也就是一游戏刻需要耗费1秒多的时间来计算。所以,这个ms ticks的数值在检测游戏有多卡时还是挺有用的。

后面的xx tx,xx rx显示的是客户端每秒发送(transport)和接收(receive)的包数。单人游戏还在发送接收包就挺离谱,而且就算关了匿名反馈也照样发送接收。发送给谁?接收的是哪个服务器的包?这些问题还有待研究。

在服务器中,这一行有些变化。作者进入了Hypixel服务器,发现其变成了:

“vanilla“ server,xx tx,xx rx

前面说过,vanilla代表着这个Minecraft是没有加任何插件的。所以这儿的“vanilla”server的意思就是:该服务器并没有加任何插件。

第四行,也就是1.13版本之前的第三行,又是让人大受震撼的一行。

但只要你仔细一看,会发现这一行是由一堆“缩写:值”拼凑起来的,拆分开来就简单许多了:

C:xxx/xxxx (s)——视野内渲染的区段数/已经加载的区块(不管强还是弱加载)所包含的区段总数量。注意,是区段数不是区块数!(?区段是什么个东西)(区段本身是16x16x16的立方体,一个区块在1.18更新之前一共有16个区段。区段可以通过F3+G显示区块边界查看区块上的蓝色线条来判断。)

D:xx——对应游戏视频设置里的“渲染距离”。如渲染距离是12区块,那么将会显示成“D:12”。

L:xx——作者也不清楚,存在于1.8版本之后1.16.5版本之前,中文Wiki上没有相关的描述,英文Wiki倒是有:Client-side blocks count that have light update to apply,但不解其意。

pC:xxx——等待成批处理(卸载)的区块数量(第一百二十章讲的区块卸载机制跟这东西有关系,建议回去复习,还是挺有趣的)

pU:x——等待提交给显卡的更新数量。说白点就是:在一游戏刻内你视野内凡是有东西,不管是实体还是方块,发生了变化(更新)之后,都要呈现到你的面前,这时候就要将这个变化(更新)提交给显卡来处理成图像。这个pU就是记载本游戏刻将要给显卡更新图像的东西的数量。

aB:x——成批处理(卸载)区块时可以用的缓冲区数量

额,看起来拆分开来并没有简单许多。(估计很多人一遍过后看不懂,这一行确实挺难的,建议多看几遍消化消化)

但接下来的第五行,也就是1.13版本前的第四行,听我的,特别简单。

这一行主要是关于实体:

E:xx/xx——在视野中的实体数/已经加载的区块所包含的总实体数

B:0——啥用也没有,估计是Mojang哪位员工做这个的时候摸鱼了

在1.8版本左右还有一个:

I:xx——不在视野中但处于已经加载的区块的实体数量。因为这个东西太鸡肋了,所以在1.8版本之后1.12.2版本之前不知道哪个快照更新时砍掉了。

下一行P开头也很简单:

P:xx——渲染的粒子数量

T:xx——已经加载的区块所包含的总实体数,在1.16.5版本之前是“T:All:xx”,不得不说这和那个被砍掉的“I:xx”一样鸡肋。

第七行(1.13前第六行)只有一个东西,但看起来很高级:

MultiplayerChunkCache:xxxx,xxxx(作者发现在1.16.5版本已经改为了Client Chunk Cache)

Wiki上描述是“所能载入的最大区块数。”,但作者实测发现这还有个东西。

可以发现这儿有两个数值,但按照这个功能来说只需要一个数值就好,所以作者对此进行了深入研究,得出来一个严谨的结果:

这两个值中,前面那个值即是“所能载入的最大区块数”,受渲染距离影响,必定比渲染距离所加载的区块数量还要多,只要不改变渲染距离就不会变化,但目前尚不知到计算方式。后面的那个值,是“已加载的区块数量”,包含强加载和弱加载区块。

看来Wiki也不过如此.jpg

在1.13.1版本之前,到这儿左边的第一大段已经完了。但1.13.1版本更新了个第八行:

minecraft:xxxxxxxxx FC:xx

前面的这个带有“minecraft:”命名空间的单词,就是你所处的维度id。比如你身处主世界,那么这儿将会显示:

minecraft:overworld

这个“FC:xx”,显示的是你所处维度有多少个被强制加载的区块(即使用特殊手段加载的区块,比如使用/forceload加载的区块)。

(额,/forceload在1.13.1被加入,这一行也是在1.13.1被加入....../forceload真有牌面)

(唉,为什么我的FC值是n/a)

在1.15版本之前,到第八行左边第一大段已经完了,但Mojang在1.14到1.15版本之间的某个快照更新中将一个新的东西插入到原本第七行和第八行的中间,这东西就是:

ServerChunkCache

Minecraft Wiki上不确定这东西有啥用,但根据Client Chunk Cache,我们可以大胆猜测这东西就是:服务器最大加载区块

但在服务器中这一行根本就没有显示,这个说法也就不攻自破。

那么本章就到这里了。

同类推荐
  • 无限诸天时代

    无限诸天时代

    【诸天时代】,一款为全世界所有顶尖游戏设计者创造出的第二世界;一款真正可以让人拥有无限次人生的游戏。可人生,终究无常。在这个世界里,生和死的界限早已模糊不清。杀戮、拯救、新生、重生……一切都再不相同。迷雾渐至、亦或黎明破晓;天下掌棋、亦或数人执子?抽丝剥茧,超脱系统限定;黑夜横行,辗转无数时空。君不见,万家灯火沧桑脉络……君不见,一世风云落魄源生……
  • 病毒世界之遗失纪元

    病毒世界之遗失纪元

    这是一个被病毒侵蚀后的游戏世界,原本的模样已经被淹没,玩家们前仆后继,从一个又一个纪元当中去寻找那已经遗失了的纪元,只为获得那无上的称号,即无上的荣耀
  • 重生之魔法狂徒

    重生之魔法狂徒

    身为孤儿的刘文杰,重生了。上一世一事无成的他,只有对游戏的全方位的了解。为了自己的生活,刘文杰再次进入游戏。但意外发生了,刘文杰被游戏主脑认了出来,并且得到了唯一荣耀魔法师的属性。看到这一切的刘文杰高兴的鼻涕泡都冒了出来。但当他仔细阅读全身属性时,却又如掉入冰窟一般。‘拥有唯一荣耀者,除禁咒外,只能使用自创型技能。’‘拥有唯一荣耀者,升级经验需200%。’悲催的刘文杰痛苦并快乐着。
  • 未知游戏之躺赢

    未知游戏之躺赢

    未来世界中!在一款几游戏厂家联合发行的高自由度的游戏里!你能看见无敌操作!极品欧皇!金钱战士!凶残肝帝!女装大佬!还有万恶的躺赢!
  • 哈里发传奇

    哈里发传奇

    哈里发--哈里拉异能堡长廊强者。成为哈里发便有资格在哈里拉长廊永立自己的塑像。一千年后异变的地球,精灵、西方人类、东方人类、兽灵,谁敢争锋?脚踩无数王级天才晋级哈里发抢夺机缘、掠夺资源罗斌誓要让哈里拉长廊首位耸立上自己的雕像!
热门推荐
  • 星异杂谈

    星异杂谈

    记录我每一次突发奇想,分享每一个梦中奇缘。短篇故事集
  • 异世小恶之兵临天下

    异世小恶之兵临天下

    大道三千,各行其道,一沙一世界,一树一菩提,善者,仁爱天下,侠之大道,恶者,以暴制暴,掌刑天下,代天刑罚,恶棍林枫正邪难辨,一念成魔,一念神佛,踏足江湖,翻手为云,覆手为雨,从恶棍到兵临天下的进阶之路……
  • 斗罗之瞬移冰凰

    斗罗之瞬移冰凰

    当高中生唐云冰穿越到斗罗大陆,并觉醒了白眼和冰凰剑时会发生什么……“我要走强攻还是控制,或强控”……“小子,我要收你为徒。”尘心说……女主三眼金猊史莱克八怪
  • 角色扮演在诸天

    角色扮演在诸天

    【2019位面爽文】陈宇有很多身份,他是令小龙女情窦初开的甄志丙,是让萧炎尊敬崇拜的萧战,也是让辰南忌惮的楚国老祖…掌握强大诸天系统,随机替代原著角色。这是一个演员的诞生,更是一代强者的崛起!斯坦尼斯拉夫斯基《演员的自我修养》称:“舞台自然是神雕、仙剑、秦时明月、一人之下、镇魂街、神墓、斗破、我的英雄学院…”欢迎加入本书交流群,群号:738800268
  • 现代修行第N天

    现代修行第N天

    咸鱼很久的任喻突然发现,一代天道或者天尊在自家后院养乌鸦养狗。
  • 知心朋友录

    知心朋友录

    中学期间的感情没有经济与利益的复杂关系,看起来非常幼稚。其实中学建立起来的感情最真挚,是我们一辈子也不会忘记的。在这段时间,我们一起哭,一起笑,一起在这狭窄的空间生活得如此美妙,就算剩下的只是回忆,我也心满意足。
  • 神将战寻

    神将战寻

    用兵如神,战无不胜,攻无不克,勇冠三军,谋定胜天者——神将!
  • 不为上分只为你

    不为上分只为你

    苟分?不可能!诶诶大哥……别打别打!老公快来帮我!
  • 星际恐龙

    星际恐龙

    星际时代到来,让我们开发太空去吧。因为你找到一个有生命的星球,你就可以当生命星球的王了哦。还可以在星球上建立属于你的城堡。两亿年前彗星撞击地球,恐龙灭绝。如果没有那颗该死的彗星,现在地球上住的就不是黑头发黑眼睛的人类了,而是霸王龙那种龙头龙皮肤的恐龙了。恐龙如果进化成人一样会怎么样?主角的飞船探索太空就发现了恐龙人统治的星球,星球位于半人马座叶子恒星的螺纹行星。
  • 可惜没如果

    可惜没如果

    一段年少时的往事,自以为成熟后再想起,又会是何种境地?