最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【mcbe】【全物品】淺談全物品 ep.2 卡頓

2021-02-03 23:05 作者:叼叼的名字  | 我要投稿

寫在前頭(感謝)

這篇文章是面向?qū)θ锲酚幸欢ɡ斫?,打算動手做卻還沒有開始設計的人的,并非是面向零基礎的人的

對于全物品大量應用的雙漏斗分類的原理,這里推薦 @smart_cuber 的視頻。視頻中展示的大部分分類單元在be都可以使用

本文參考了 @flag易 于2016年在百度帖吧發(fā)表的帖子《全物品自動分類機的設計》(鏈接:https://tieba.baidu.com/p/4920562733)感謝 @flag易 的這篇帖子,給剛?cè)肷姷奈覙O大的啟蒙

因為現(xiàn)在有較多的物品的設計資料(包括je的和be的),以及前人留下來的全物品單片設計。所以本文的側(cè)重點是從卡頓這一點來說的

在這里感謝 @_hhhxiao 開發(fā)的 trapdoor 插件,可以精確地測量出服務器內(nèi)的卡頓

本文是由我和同為天火服務器成員 @Maple_楓槭 共同撰寫的。由我負責主要內(nèi)容,@Maple_楓槭 負責技術指導

(這里打一波廣告,天火服務器交流群:1029028772)

本文大體分為四部分,從“緒論”、“卡頓”、“全物品的組成”、“水道的設計”來系統(tǒng)地闡述全物品的設計方向。由于專欄的表現(xiàn)能力有限,這里只討論設計方向。具體的設計之后會以視頻的方式放出



目錄(在全文放出后會統(tǒng)一整理)

1、緒論

2、卡頓

? ? 2.1、全物品有多卡

? ? 2.2、靜態(tài)卡頓與動態(tài)卡頓

? ? 2.3、方塊實體

? ? ? ? 2.3.1、什么是方塊實體以及它為什么卡

? ? ? ? 2.3.2、哪些方塊實體卡以及如何避免

? ? ? ? ? ? (1)漏斗

? ? ? ? ? ? (2)投擲器

? ? ? ? ? ? (3)活塞

? ? ? ? ? ? (4)箱子

? ? ? ? ? ? (5)物品展示框

? ? 2.4、實體

????2.5、其他卡頓

????????2.5.1、空置域

????????2.5.2、生物

3、全物品的組成

4、水道的設計

5、附錄



2、第一章 卡頓



--------------------------


2.1、全物品有多卡

這里先拋出mspt這個概念

“MSPT,全稱Millisecond Per Tick,毫秒/刻,表示一刻平均需要多長時間執(zhí)行”——知乎答主MineCommander


所以你電腦算得越快,運算每一刻需要的時間就越少,mspt就越低。相應的,需要計算的東西越多,運算每一刻需要的時間就越高,mspt就越高,相應表征出來的就是游戲越卡

這里列出幾個mspt讓大家感受一下

虛空地圖: 1.2ms

正常的世界: 1.4ms

全物品: 14ms


但mspt僅僅能表現(xiàn)出來cpu對游戲的運算,真正游戲的時候內(nèi)存的占用、顯卡的運算都會大幅度影響你的游戲體驗

所以說全物品的卡頓不容小覷。同時降低全物品的卡頓必將成為設計中至關重要的一環(huán)



------------------------------


2.2、靜態(tài)卡頓與動態(tài)卡頓

這里我先提出兩個概念,靜態(tài)卡頓和動態(tài)卡頓。靜態(tài)卡頓就是全物品不工作時帶來的卡頓,而動態(tài)卡頓是全物品正在分類物品時的卡頓


作為一個設置了常加載的大型生電設施,服務器會時刻背負著全物品的靜態(tài)卡頓來為服務器成員提供游戲體驗。顯而易見的,全物品靜態(tài)時長會遠高于動態(tài)時長。且受限于輸入速度,一般能夠同時工作的分類單元不會超過四個,對于全物品共計600~800個分類單元來說,實在是有點少。所以在進行分類單元設計時,靜態(tài)卡頓的優(yōu)先級遠高于動態(tài)卡頓的優(yōu)先級


下面我將從靜態(tài)卡頓和動態(tài)卡頓來分析各個位置可能產(chǎn)生的卡頓



------------------------------

2.3、方塊實體的卡頓

2.3.1、什么是方塊實體以及它為什么卡

“方塊實體(Block Entity)是與各類方塊關聯(lián)的附加數(shù)據(jù),作為方塊的各種狀態(tài)有限組合的補充”——Minecraft Wiki

mc有些方塊可以與玩家交互或有特殊功能,如箱子、漏斗等有ui的方塊和其他沒有ui的方塊,如篝火、蜂窩等。大部分這種方塊不僅要經(jīng)過一次方塊渲染,還會經(jīng)歷一次方塊實體的特殊渲染。這種特殊渲染會大幅增加卡頓(和其他普通方塊比)。而全物品中每一個物品分類單元都會用到漏斗和箱子,算下來將會有數(shù)量龐大的方塊實體。這也是全物品靜態(tài)卡頓的主要來源

所以少用這些方塊,或者用低卡頓的方法來使用這些方塊則成為了降低全物品卡頓的重點之一


2.3.2、哪些方塊實體卡以及如何避免

(1)漏斗

漏斗每gt會尋找漏斗上方的掉落物并吸取、嘗試向指向的方向?qū)ふ胰萜鞑⑾蛉萜鬏斔臀锲?/span>。如果漏斗內(nèi)有物品,則會嘗試遍歷一次漏斗內(nèi)所有物品進行運輸嘗試。如果指向了容器,則會遍歷容器內(nèi)部所有可以儲存物品的地方進行運輸嘗試。所以盡量減少漏斗內(nèi)的物品,以及降低漏斗指向容器的儲量是非常有必要的

同時鎖住漏斗可以極大地減少上述卡頓。所以在靜態(tài)時盡可能地鎖住更多的漏斗可以有效降低靜態(tài)卡頓


(2)投擲器

空投擲器的卡頓遠低于空漏斗(約為空漏斗的24%),且滿投擲器的卡頓略低于鎖住的滿漏斗(約為滿漏斗的85%)(這里及本文以下的滿漏斗都指64 1 1 1 1裝填)。所以在靜態(tài)下投擲器的卡頓要低于漏斗

但同時需要注意,因為投擲器投出物品的不確定性,常見的投擲器分類單元必須將投擲器裝填滿,而大部分漏斗分類單元都不用將第二個漏斗裝填滿。所以只有在難以布線或難以安排水道的情況下才需要考慮投擲器分類單元

在考慮滿投擲器的8gt鐵軌—偵測器時鐘的情況下,投擲器分類單元的卡頓和橫向雙漏斗分類單元(即第二個漏斗為滿漏斗的情況下)的卡頓基本持平(約為滿漏斗的98%)


(3)活塞

“顯存占用對于電腦基本上可以忽略不計,所以學姐叫所有移動端玩家,爬”——Maple_楓槭

毫無疑問,推容為基巖版的全物品單片布線帶來巨大的便利,但活塞每gt自檢帶來的mspt、移動的方塊以及活塞臂(包括收回的活塞臂和伸出的活塞臂)按方塊實體渲染給顯卡帶來的負擔都會造成較大的卡頓。同時因為活塞臂按照方塊實體渲染,對顯卡要求較高,對于手機端玩家并不友好

但橫向?qū)Ρ龋ㄒ韵聝H從mspt這一點上對比),未激活的活塞+空漏斗的卡頓低于鎖住的滿漏斗(靜態(tài))(約為滿漏斗的78%),激活的活塞+空漏斗的卡頓基本等于解鎖的滿漏斗(動態(tài))(約為滿漏斗的100%)。適當?shù)剡\用推容來代替橫向雙漏斗分類顯然是一種有效的減少靜態(tài)卡頓的方式


(4)箱子

大箱子為全物品帶來了足夠的儲量,也同時為全物品帶來了巨大的卡頓

箱子本身按照方塊實體渲染,同時大箱子的大儲量增加了漏斗的遍歷次數(shù),最后箱子內(nèi)的物品數(shù)據(jù)會大量占用服務端(常加載全物品)和客戶端(玩家渲染全物品)的內(nèi)存,造成卡頓。對于內(nèi)存的卡頓占用無法在mspt上體現(xiàn)。但打開箱子時,由于游戲會嘗試讀取大量數(shù)據(jù),會大量占用mspt,造成mspt的波動

所以對于小儲量的全物品,使用木桶會是一個相當不錯的選擇,可以有效降低渲染壓力以及漏斗遍歷次數(shù)。但木桶全物品單片的布線困難程度遠高于箱子全物品,所以目前箱子全物品為主流的設計

特別說明,箱盒物品由于疊加了一層套娃,導致箱子內(nèi)的數(shù)據(jù)指數(shù)級上升,其卡頓程度遠超上述幾種方塊實體的卡頓。所以本人極不建議為全物品配套大宗物品分類


(5)物品展示框

物品展示框采用方塊實體渲染,其中的物品以實體方式渲染。因為其靜態(tài)、坐標相對確定的特性,對于mspt的占用并不高。但其渲染方式?jīng)Q定了對顯卡的依賴程度較高,對手機端玩家并不友好

所以如果可以的話,盡量采用方塊進行物品展示(關愛移動端玩家,從我做起)



------------------------------


2.4、實體的卡頓

“實體(Entity)包括在Minecraft中所有動態(tài)的、移動中的對象”——Minecraft Wiki

實體是類似于怪物、盔甲架等可以移動,且不必按照方塊具有嚴格位置。具有朝向、速度、生命值、特殊行為等一系列數(shù)據(jù)

全物品這里的實體卡頓的主要來源是掉落物

由于漏斗的惡性bug(即不同種物品聚集在一起經(jīng)過分類漏斗時,分類漏斗無法正常工作,具體可以參考 @今日木木的林昕 的《基巖版最惡心的bug 一直在惡化從未被修復》)

基巖版的全物品需要將掉落物以零散的方式輸送進水道,直接導致了水道內(nèi)掉落物實體數(shù)量巨大,同時也限制了輸入倍速。原因很簡單,較高的倍速會導致更高的物品密度,同時投擲器噴出物品的方向與速度具有較高的隨機性,極易使掉落物聚在一堆,降低分類成功率

由于實體的數(shù)據(jù)較大,帶來了更高的mspt。同時渲染方式注定了對顯卡壓力較大。一般來說實體造成的卡頓會遠高于方塊實體。所以降低全物品同時存在的實體數(shù)成為了降低全物品動態(tài)卡頓的最重要的一環(huán)

對于實體的優(yōu)化方案,我會在“全物品的組成”和“水道的設計”兩章給出



--------------------------


2.5、其他卡頓

2.5.1、空置域

“全物品挖空置域我也吐槽過不止一回了,為了挖而挖”——_hhhxiao

空置域可以有效地減少卡頓,但是嘛……

根據(jù)實測,空置域僅能減少0.3~0.4 ms的mspt。對于動輒達到十幾mspt的全物品屬實有點不夠看


2.5.2、生物

防刷怪是必須的。實測大量怪物尋路會占用5~6 ms的mspt。所以需要將全物品做在遠離地面的高空來阻止地面刷怪,同時全物品本身需要足夠的照明來防刷怪,并且對于地獄門刷出的豬人也需要一定的清理措施



寫在最后(作者的碎碎念)

卡頓是本文的核心一章,接下來的兩章(全物品的組成、水道的設計)將從全物品的實現(xiàn)層來考慮如何減少卡頓。具體落到實處時需要將問題細化再細化,才能找到具體的、可實現(xiàn)的目標

雖然對于全物品來說空置域?qū)嵲谟锰幉淮螅莔spt能少一點是一點

畢竟服里全物品空置域都炸了一半了,也不能填回去是不是

實測宿管不會刷在空置域上,所以這也算空置域的一個好處?_(:з」∠)_

(封面來源:天火創(chuàng)造服全物品框架)


【mcbe】【全物品】淺談全物品 ep.2 卡頓的評論 (共 條)

分享到微博請遵守國家法律
体育| 桂阳县| 焦作市| 卢湾区| 巴里| 赣榆县| 顺昌县| 汤原县| 上虞市| 上思县| 长汀县| 宁强县| 义乌市| 建湖县| 镇江市| 长丰县| 中山市| 黄大仙区| 张北县| 曲松县| 西乌珠穆沁旗| 马龙县| 泗阳县| 安顺市| 金昌市| 伊宁县| 吴旗县| 桐庐县| 昔阳县| 宿州市| 延寿县| 平安县| 五河县| 云安县| 邮箱| 松潘县| 岱山县| 漠河县| 通州市| 博白县| 乐平市|