我做mod的幾個(gè)傾向
1-不用前置
沒法保證前置mod沒有bug。
沒法保證前置mod出了bug后能及時(shí)修補(bǔ)。
沒法保證前置mod不會(huì)突然棄坑或刪庫跑路。
同時(shí)管理兩個(gè)mod的版本號(hào)非常麻煩,對(duì)于玩家來說更是如此。下載了一個(gè)mod,發(fā)現(xiàn)有前置;下載了前置,發(fā)現(xiàn)前置的版本號(hào)不對(duì)或者需要前置的前置;為了修復(fù)一個(gè)bug更新了mod,結(jié)果因此又更新了前置……麻煩透頂。
當(dāng)然,我也承認(rèn),適度地使用前置可以提升mod之間的兼容性,以及大幅降低開發(fā)成本。前者最典型的例子是飾品欄Baubles,大家可以共用同一套飾品欄放置裝備;后者最典型的是Geckolib,彌補(bǔ)了mc做實(shí)體模型動(dòng)畫的極大不便。
2-維持像素風(fēng)
我對(duì)于高清材質(zhì)包持否定態(tài)度。這倒不是因?yàn)樗薷牧薓C本身的風(fēng)格,而是因?yàn)槭褂煤螅切]有收入材質(zhì)包的mod貼圖依舊像素風(fēng),會(huì)造成割裂。但是,一個(gè)材質(zhì)包終究不能覆蓋世上所有的mod,就算他覆蓋了cf上的六萬多個(gè)mod,他也覆蓋不了即將發(fā)布的新mod。
所以,我只贊同在能統(tǒng)一所有游戲貼圖的情況下使用高清材質(zhì)包。
我對(duì)于非高清的材質(zhì)包不怎么反對(duì)。
我對(duì)于光影持輕微否定態(tài)度。現(xiàn)在我都記得之前我把光影和Neat裝在一起時(shí),血條界面變得一塌糊涂的樣子。
另一方面,我反對(duì)在mod里引入obj模型。MC原版就是像素風(fēng)。如果你在mc那么多方塊骷髏和僵尸的基礎(chǔ)上,搬進(jìn)來一個(gè)原神那樣的高精度模型,那實(shí)在是青黃不接。要引入新的模型,就也搞得方塊化一些,像是末影龍那樣。我不反對(duì)以obj格式引入與原版畫風(fēng)一致的模型。
3-集中在1.12.2-2768
這有兼容性和開發(fā)成本兩方面的考慮。
Minecraft版本割據(jù)。
基巖版和java版陰陽兩隔。
同為Java版,fabric和forge陰陽兩隔。
同為forge,1.12和1.18陰陽兩隔。
同為1.12,2768和28XX陰陽兩隔——網(wǎng)易因此無法更新虛無三。所以,也可以說是網(wǎng)易和外面有一定程度的陰陽兩隔。
唉,大家就不能團(tuán)結(jié)到一個(gè)版本嗎?顯然,現(xiàn)在已經(jīng)晚了。就單看java版,1.7.10,1.12.2,1.16.5,1.18,主流版本林立,統(tǒng)一到哪個(gè)都不太可能了。就我個(gè)人,以及我?guī)У年P(guān)門弟子來說,我會(huì)統(tǒng)一集中在1.12.2-2768,以在一定程度上緩解這個(gè)問題。至少,我們相互之間的mod能團(tuán)聚在同一個(gè)整合包,我也就只能做到這個(gè)地步了。
我使用2768,和網(wǎng)易的1.12forge版本保持一致,這樣可確保哪天我需要發(fā)布到網(wǎng)易的時(shí)候,不需要重新構(gòu)建一套工作環(huán)境。
我會(huì)在Teacon里使用Teacon所要求的的版本,畢竟國內(nèi)mc-java-mod實(shí)力還不夠強(qiáng),人也不夠多,像這種能振興我國mod事業(yè)的事我還是會(huì)參加的。因此,我發(fā)布了一個(gè)1.16.5的魔城傳說mod參賽,這是我極為罕見的非1.12mod。
另外,最近mc和forge的更新很迅速。說實(shí)話,forge版本的更新,往往意味著mod的重寫。尤其是從1.12到1.16,幾乎50%的代碼都要重寫,這50%散布在各處,尤其以類名的變化最為突出。我一年能抽出多少時(shí)間去寫mod,又能從中再抽出多少,去學(xué)習(xí)如何使用新版本的forge,去移植老mod?明明游戲內(nèi)容沒有變多,卻花了巨量時(shí)間,這相當(dāng)不合算。
4-不使用mixin、asm、at
mixin和asm很容易造成沖突。forge的存在,很大意義上就是為了讓大家的mod能共存,而不是像早期那樣各自篡改源文件,篡改了同一個(gè)文件時(shí)就寄。
上次zeker在teacon里提問,普通用戶遇到兩個(gè)mixin沖突能做什么,最后給出的答案是:刪一個(gè)。
除了沖突之外,難以調(diào)試也是我反對(duì)的原因之一。堆棧信息里全是MC自身的接口,這樣的崩潰日志我見過不少,甚至都不知道是哪個(gè)mod導(dǎo)致的崩潰,只能和全無日志一樣二分法地去刪mod測(cè)試。一個(gè)普通玩家看到后很崩潰,學(xué)會(huì)mod開發(fā)后看到后也同樣崩潰,因?yàn)闆]轍。不是看不懂,是日志里根本就不寫。
我尤其反對(duì)mod初學(xué)者使用。在你甚至沒搞清楚東西南北之前,就開始亂制造很難排查的崩潰,那真的很不負(fù)責(zé)任。
至于AccessTransformer,主要是因?yàn)榱硪晃籱odder對(duì)此很不信任。他沒有給出明確的原理分析,不過我也姑且繼承了。Zeker表示,AT是forge官方鼓勵(lì)的用法,所以,不使用AT最后主要是個(gè)人習(xí)慣的問題。