MCBS開發(fā)日志
嗨,大家下午好,周末愉快!非常感謝大家關(guān)注我的賬號。關(guān)于方塊屏幕項(xiàng)目,我知道大家都迫切想了解方塊屏幕項(xiàng)目的最新進(jìn)展和發(fā)布時間。但最近我確實(shí)有些忙碌,白天需要工作,只有晚上才有時間進(jìn)行項(xiàng)目的開發(fā),所以更沒有時間發(fā)布視頻和動態(tài)了,對此我深感抱歉。但請放心,無論多忙,我都不會放棄這個項(xiàng)目,畢竟大家的支持我十分珍視。
?
最近幾天,我一直在致力于提升屏幕方塊的更新速度。在此之前我們采用的方案是,通過rcon協(xié)議或重定向MC服務(wù)端控制臺輸入輸出流,來發(fā)送setblock命令,來進(jìn)行方塊的更新,但在Minecraft中,命令執(zhí)行效率較低。下面我將簡要解釋一下rcon命令執(zhí)行的流程:
?
首先我們需要在程序中生成命令字符串,然后將其編碼為字節(jié)流,并通過rcon協(xié)議傳輸給MC服務(wù)器。MC服務(wù)器接收到字節(jié)流后,將其解碼為字符串并解析,最后執(zhí)行命令,執(zhí)行完命令后,MC服務(wù)器還需要將命令輸出重新編碼為字節(jié)流傳回我們的程序。
?
這聽起來很簡單,但如果我們的屏幕尺寸是256x144,總共有36,864個方塊,這個過程將需要重復(fù)三萬多次。即使我們已經(jīng)在大部分流程中使用了多線程進(jìn)行優(yōu)化,但屏幕方塊更新的效率,仍然是整個系統(tǒng)中最大的瓶頸。
?
因此,我近期一直在研究如何使用模組來提升屏幕方塊的更新速度。模組能夠直接訪問游戲數(shù)據(jù),無需通過命令即可設(shè)置特定坐標(biāo)的方塊。此外,通過采用更高效、占用更少空間的調(diào)色板數(shù)據(jù)結(jié)構(gòu)來編碼。數(shù)據(jù)傳輸?shù)組C服務(wù)端后,我們的模組就可以一次性解碼,并批量更新方塊。不過請放心,使用模組是可選的。安裝模組能夠大大提高屏幕方塊的更新速度,但不安裝模組仍然可以使用傳統(tǒng)的rcon協(xié)議通信。而且,當(dāng)客戶端安裝了該模組時,還會附帶屏幕聲音的播放功能。
?
然而,由于我對Java語言的熟悉程度有限,并且這是我第一次開發(fā)模組,所以近期花費(fèi)了大量時間和精力來研究模組以及Minecraft的源碼。但我相信這一切都是值得的,因?yàn)檫@個項(xiàng)目代表了我們對Minecraft的熱愛。
?
最后,關(guān)于項(xiàng)目的具體發(fā)布時間,由于存在太多不確定因素,暫時我無法給出確切的時間。希望大家能夠理解,再次感謝大家一直以來的支持!