首頁 游戲

Minecraft指令手冊(cè)

第一百四十八章 如何看懂調(diào)試界面 ①

Minecraft指令手冊(cè) 你好MC 3669 2021-07-28 23:48:37

 ?。ㄗ⒁?,本章的側(cè)重點(diǎn)在于Java 1.8及之后的版本,1.8之前的版本本章并沒有對(duì)其仔細(xì)研究,到時(shí)候會(huì)專門出一章來研究研究)

  前面的一百多章節(jié),講了許多東西,但似乎漏了一個(gè)挺重要的東西。

  想來想去,原來是調(diào)試界面還沒講。

  既然第十四卷已經(jīng)有19章了,那就新開一卷,放松一下,雖然還有許多東西沒講(比如自定義交易之類的,放第十六卷吧,村莊與掠奪更改的內(nèi)容還得好好研究研究)。

  在寫本章時(shí),作者為了檢測(cè)各個(gè)Minecraft版本調(diào)試界面的區(qū)別,分別使用了四個(gè)啟動(dòng)器加一個(gè)第三方客戶端開了五個(gè)不同版本的Minecraft Java版,它們分別是:Java1.7.10,Java1.8,Java1.12.2,Java1.13.2和Java1.16.5。因?yàn)镸inecraft Wiki對(duì)于調(diào)試界面的歷史變更記載起碼有一半漏掉了,所以本章但凡有提到版本變更的,大部分都是作者自己測(cè)出來的一個(gè)比較模糊的范圍。

  進(jìn)入正題。首先,什么是“調(diào)試界面”?

  眾所周知,在Minecraft Java版中,按下F3(Mac電腦和一些筆記本電腦是Fn+F3),屏幕上就會(huì)出現(xiàn)一大堆東西。這一大堆東西讓許多Minecraft玩家直呼:“我看不懂,但我大受震撼”。

  現(xiàn)在,請(qǐng)停止你的震撼,然后跟著我來從左上角開始一行一行看。

  左上角第一行,顯示的是游戲的基本信息,即:這個(gè)Minecraft Java的版本號(hào)是多少,啟動(dòng)器是什么,啟動(dòng)器版本號(hào)又是什么等。如果你是通過我的世界官方啟動(dòng)器啟動(dòng)的純凈Minecraft版本(即無插件),那么這一行將會(huì)顯示:

  Minecraft 版本號(hào)(版本號(hào)/vanilla)

  這里的“vanilla”的意思是“純凈的”,即這個(gè)Minecraft是純凈版本,沒有裝任何其他插件(這里的插件并不包含資源包、附加包,而是指Forge之類的東西)。

  如果你裝了個(gè)Forge,那么這里將會(huì)變成:

  Minecraft 版本號(hào)(版本號(hào)/fml,forge/Forge)

  (上面這一行是在1.12.2版本下測(cè)試的結(jié)果)

  但是,有些插件并不會(huì)顯示,比如OptiFine。

  如果你像作者一樣,使用的是HMCL(HelloMinecraftLauncher)啟動(dòng)器,那么這兒將會(huì)顯示:

  Minecraft 版本號(hào)(HMCL 啟動(dòng)器版本號(hào)/vanilla/HMCL 啟動(dòng)器版本號(hào))

  如果你使用HMCL啟動(dòng)器并裝了Forge插件,那么將會(huì)顯示成:

  Minecraft 版本號(hào)(HMCL 啟動(dòng)器版本號(hào)/fml,forge/Forge)

  其他的一些Minecraft啟動(dòng)器作者也進(jìn)行了測(cè)試,結(jié)果如下:

  PCL2(Plain Craft Launcher 2):和Minecraft官方啟動(dòng)器一樣

  BakaXL:Minecraft 版本號(hào)(版本號(hào)/vanilla/BakaXL)

  這是第一行,接下來請(qǐng)看第二行。

  第二行的最前面你絕對(duì)看得懂,即fps(每秒傳輸幀數(shù)),大家口中的“幀率”。如果你連fps是啥都不懂......簡(jiǎn)單來說,fps數(shù)值越高,游戲越流暢,反之越卡。

  后面就有些亂了。首先是個(gè):

  (數(shù)值 chunk updates)

  實(shí)際上這很簡(jiǎn)單,你把這串放進(jìn)生草機(jī)里攪拌一下,就會(huì)得到:

  (數(shù)值個(gè)區(qū)塊更新)

  這本書看到這兒,只要你沒有跳著看,區(qū)塊是個(gè)什么你應(yīng)該知道吧。

  那“區(qū)塊更新”又是什么東西?

  答:當(dāng)一個(gè)區(qū)塊內(nèi)有任何一個(gè)方塊其NBT標(biāo)簽發(fā)生任何的改變,或者方塊被破壞、放置、移動(dòng),這個(gè)區(qū)塊就被視為發(fā)生了更新。

  這個(gè)(數(shù)值 chunk updates)就是向我們顯示目前游戲內(nèi)有多少個(gè)區(qū)塊發(fā)生了更新。

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

  (數(shù)值 chunk updates)后面是一個(gè)“T:xx”。這個(gè)T的值對(duì)應(yīng)了視頻設(shè)置內(nèi)的“最大幀率”值。如果游戲設(shè)置內(nèi)的最大幀率值是120,那么這里將會(huì)顯示成“T:120”。如果游戲設(shè)置內(nèi)的最大幀率被拉到了最大,也就是“無限制”,那么這里將會(huì)顯示為“T:inf”。(這里的inf是infinity無限的縮寫)

  “T:xx”后面是一些單詞,這些單詞加上“T:xx”本身都是顯示一些關(guān)于游戲畫面的配置。

  如果你在Minecraft的“游戲菜單/選項(xiàng)/視頻設(shè)置”里打開了“使用垂直同步”選項(xiàng),那么這兒將會(huì)在T:xx后面多出一個(gè)單詞:

  1.8/1.12.2/1.13.2——vsync

  1.16.5——vsyncfancy

  (vsync是Vertical synchronization[垂直同步]的縮寫)

  同樣的,對(duì)于“云”的設(shè)置也會(huì)顯示在上面。在Java 1.8.1以前,云的流暢和高品質(zhì)是由“圖像品質(zhì)”選項(xiàng)控制的,1.8.1及之后云的流暢和高品質(zhì)被獨(dú)立到了“云”選項(xiàng)里。因?yàn)樵朴袃煞N品質(zhì),所以當(dāng)你打開云層時(shí),顯示的單詞會(huì)有所不同。對(duì)了,對(duì)于“云”的設(shè)置其單詞一定是顯示在垂直同步后面的。

  流暢:

  1.8——fast clouds(這里的fast和clouds沒有連起來是因?yàn)檫@兒的fast實(shí)際上并不只指云層是流暢品質(zhì),而是對(duì)應(yīng)了“圖像品質(zhì)”選項(xiàng)里的流暢。當(dāng)你把云關(guān)掉,你會(huì)發(fā)現(xiàn)fast還在這里,只是clouds消失了)

  1.12.2/1.13.2/1.16.5——fast-clouds

  高品質(zhì):

  1.8——clouds

  1.12.2/1.13.2/1.16.5——fancy-clouds

  1.14的18w44a快照將“啟用頂點(diǎn)緩沖器”選項(xiàng)移除了,并讓頂點(diǎn)緩沖器在之后的版本中一直是保持開啟狀態(tài)。在移除這東西之前,只要你打開它,你就會(huì)在“云”的單詞后面發(fā)現(xiàn)一個(gè)單詞:vbo。

  vbo是Vertex Buffer Object(頂點(diǎn)緩沖對(duì)象)的縮寫。在移除過后,調(diào)試界面中就再也見不到它了。

  在作者打開的1.16.5版本中,在“云”的單詞后面還有一個(gè):

  “B:x”

  這東西不知道是什么時(shí)候更新的,反正1.13.2版本沒有見到。這個(gè)東西是關(guān)系到視頻設(shè)置中的“生物群系過度距離”選項(xiàng)。這個(gè)選項(xiàng)可以選擇0、3x3、5x5、7x7.....15x15一共8個(gè)級(jí)別的過度距離,分別對(duì)應(yīng)“B:x”顯示的0到7級(jí)。比如,如果你顯示的是“B:2”,那么你的生物群系過度距離就是5x5(普通)。

  第二行的內(nèi)容還真多。接下來請(qǐng)看第三行。

  1.13版本更新時(shí),Mojang在原本的第二行到第三行間插入了一行,將原本C開頭的第三行擠到了第四行也就是這串:

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

  嗯......不對(duì),我是單人游戲,哪來的延遲?

  實(shí)際上這兒并不是告訴你單人游戲的延遲,而是告訴你:

  游戲中的一游戲刻需要電腦耗費(fèi)多長時(shí)間運(yùn)算出來。(ticks是游戲刻的意思)

  眾所周知,1000ms=1s,20游戲刻=1s,一般情況下電腦是可以保證一秒滿20游戲刻,即一游戲刻需要運(yùn)算的時(shí)間≤50ms。作者之前測(cè)試了一下,作死重復(fù)執(zhí)行/execute at @e[type=item] as @e[type=item] run fill ~1 ~1 ~1 ~-1 ~-1 ~-1 air destroy,這行的ms ticks值立馬飆到了1000ms多,也就是一游戲刻需要耗費(fèi)1秒多的時(shí)間來計(jì)算。所以,這個(gè)ms ticks的數(shù)值在檢測(cè)游戲有多卡時(shí)還是挺有用的。

  后面的xx tx,xx rx顯示的是客戶端每秒發(fā)送(transport)和接收(receive)的包數(shù)。單人游戲還在發(fā)送接收包就挺離譜,而且就算關(guān)了匿名反饋也照樣發(fā)送接收。發(fā)送給誰?接收的是哪個(gè)服務(wù)器的包?這些問題還有待研究。

  在服務(wù)器中,這一行有些變化。作者進(jìn)入了Hypixel服務(wù)器,發(fā)現(xiàn)其變成了:

  “vanilla“ server,xx tx,xx rx

  前面說過,vanilla代表著這個(gè)Minecraft是沒有加任何插件的。所以這兒的“vanilla”server的意思就是:該服務(wù)器并沒有加任何插件。

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

  但只要你仔細(xì)一看,會(huì)發(fā)現(xiàn)這一行是由一堆“縮寫:值”拼湊起來的,拆分開來就簡(jiǎn)單許多了:

  C:xxx/xxxx (s)——視野內(nèi)渲染的區(qū)段數(shù)/已經(jīng)加載的區(qū)塊(不管強(qiáng)還是弱加載)所包含的區(qū)段總數(shù)量。注意,是區(qū)段數(shù)不是區(qū)塊數(shù)?。ǎ繀^(qū)段是什么個(gè)東西)(區(qū)段本身是16x16x16的立方體,一個(gè)區(qū)塊在1.18更新之前一共有16個(gè)區(qū)段。區(qū)段可以通過F3+G顯示區(qū)塊邊界查看區(qū)塊上的藍(lán)色線條來判斷。)

  D:xx——對(duì)應(yīng)游戲視頻設(shè)置里的“渲染距離”。如渲染距離是12區(qū)塊,那么將會(huì)顯示成“D:12”。

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

  pC:xxx——等待成批處理(卸載)的區(qū)塊數(shù)量(第一百二十章講的區(qū)塊卸載機(jī)制跟這東西有關(guān)系,建議回去復(fù)習(xí),還是挺有趣的)

  pU:x——等待提交給顯卡的更新數(shù)量。說白點(diǎn)就是:在一游戲刻內(nèi)你視野內(nèi)凡是有東西,不管是實(shí)體還是方塊,發(fā)生了變化(更新)之后,都要呈現(xiàn)到你的面前,這時(shí)候就要將這個(gè)變化(更新)提交給顯卡來處理成圖像。這個(gè)pU就是記載本游戲刻將要給顯卡更新圖像的東西的數(shù)量。

  aB:x——成批處理(卸載)區(qū)塊時(shí)可以用的緩沖區(qū)數(shù)量

  額,看起來拆分開來并沒有簡(jiǎn)單許多。(估計(jì)很多人一遍過后看不懂,這一行確實(shí)挺難的,建議多看幾遍消化消化)

  但接下來的第五行,也就是1.13版本前的第四行,聽我的,特別簡(jiǎn)單。

  這一行主要是關(guān)于實(shí)體:

  E:xx/xx——在視野中的實(shí)體數(shù)/已經(jīng)加載的區(qū)塊所包含的總實(shí)體數(shù)

  B:0——啥用也沒有,估計(jì)是Mojang哪位員工做這個(gè)的時(shí)候摸魚了

  在1.8版本左右還有一個(gè):

  I:xx——不在視野中但處于已經(jīng)加載的區(qū)塊的實(shí)體數(shù)量。因?yàn)檫@個(gè)東西太雞肋了,所以在1.8版本之后1.12.2版本之前不知道哪個(gè)快照更新時(shí)砍掉了。

  下一行P開頭也很簡(jiǎn)單:

  P:xx——渲染的粒子數(shù)量

  T:xx——已經(jīng)加載的區(qū)塊所包含的總實(shí)體數(shù),在1.16.5版本之前是“T:All:xx”,不得不說這和那個(gè)被砍掉的“I:xx”一樣雞肋。

  第七行(1.13前第六行)只有一個(gè)東西,但看起來很高級(jí):

  MultiplayerChunkCache:xxxx,xxxx(作者發(fā)現(xiàn)在1.16.5版本已經(jīng)改為了Client Chunk Cache)

  Wiki上描述是“所能載入的最大區(qū)塊數(shù)?!?,但作者實(shí)測(cè)發(fā)現(xiàn)這還有個(gè)東西。

  可以發(fā)現(xiàn)這兒有兩個(gè)數(shù)值,但按照這個(gè)功能來說只需要一個(gè)數(shù)值就好,所以作者對(duì)此進(jìn)行了深入研究,得出來一個(gè)嚴(yán)謹(jǐn)?shù)慕Y(jié)果:

  這兩個(gè)值中,前面那個(gè)值即是“所能載入的最大區(qū)塊數(shù)”,受渲染距離影響,必定比渲染距離所加載的區(qū)塊數(shù)量還要多,只要不改變渲染距離就不會(huì)變化,但目前尚不知到計(jì)算方式。后面的那個(gè)值,是“已加載的區(qū)塊數(shù)量”,包含強(qiáng)加載和弱加載區(qū)塊。

  看來Wiki也不過如此.jpg

  在1.13.1版本之前,到這兒左邊的第一大段已經(jīng)完了。但1.13.1版本更新了個(gè)第八行:

  minecraft:xxxxxxxxx FC:xx

  前面的這個(gè)帶有“minecraft:”命名空間的單詞,就是你所處的維度id。比如你身處主世界,那么這兒將會(huì)顯示:

  minecraft:overworld

  這個(gè)“FC:xx”,顯示的是你所處維度有多少個(gè)被強(qiáng)制加載的區(qū)塊(即使用特殊手段加載的區(qū)塊,比如使用/forceload加載的區(qū)塊)。

 ?。~,/forceload在1.13.1被加入,這一行也是在1.13.1被加入....../forceload真有牌面)

 ?。ò?,為什么我的FC值是n/a)

  在1.15版本之前,到第八行左邊第一大段已經(jīng)完了,但Mojang在1.14到1.15版本之間的某個(gè)快照更新中將一個(gè)新的東西插入到原本第七行和第八行的中間,這東西就是:

  ServerChunkCache

  Minecraft Wiki上不確定這東西有啥用,但根據(jù)Client Chunk Cache,我們可以大膽猜測(cè)這東西就是:服務(wù)器最大加載區(qū)塊

  但在服務(wù)器中這一行根本就沒有顯示,這個(gè)說法也就不攻自破。

  那么本章就到這里了。

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進(jìn)入下一章  按 “空格鍵” 向下滾動(dòng)
目錄
目錄
設(shè)置
設(shè)置
書架
加入書架
書頁
返回書頁
指南