AliceInCradle 機(jī)制解析·緒論 第一章

分享者在分享游戲程序時(shí)不應(yīng)當(dāng)對(duì)游戲文件中的內(nèi)容做任何增添、刪減、改動(dòng),若有任何增添、刪減、改動(dòng),應(yīng)當(dāng)在分享時(shí)附上部分信息,且應(yīng)當(dāng)在游戲文件以外附上。
前言 · 本文僅適用于現(xiàn)在
????????本人不會(huì)以任何形式,在任何平臺(tái)發(fā)布AliceInCradle的反編譯代碼。本文僅幫助對(duì)游戲內(nèi)容進(jìn)行理解。所有關(guān)于“XXX內(nèi)容怎么獲取”的問題不會(huì)得到解答。請(qǐng)?jiān)贔antia上注冊(cè)賬號(hào)后,采用官方方法下載并使用AliceInCradle。本人對(duì)任何讀者閱讀后作出行為產(chǎn)生的不良結(jié)果不負(fù)任何責(zé)任。
????(但愿不會(huì)有免責(zé)聲明被搬出來(lái)用的一天吧……)
????????另外,本人在此提出倡議:如果確希望在互聯(lián)網(wǎng)上發(fā)布該游戲的修改體,請(qǐng)僅包含盡可能少的文件,避免各類不必要的麻煩。例如,如果您制作了一個(gè)帶有TAS的修改版本,希望能夠僅發(fā)布修改后的Assembly-CSharp.dll。(舉例中文下載站上的去碼插件)
????*誰(shuí)適合閱讀這篇文章?
????????對(duì)游戲具體機(jī)制研究的愛好者可以查看; ?主要面向模組或類似產(chǎn)品的制作者。

正文?Alice In Cradle 緒論上·游戲的基本組成
????本文基于0.21a 0.21r撰寫。如果在新版本中出現(xiàn)錯(cuò)誤,請(qǐng)參看評(píng)論。
????眾所周知:Alice In Cradle,下稱AIC,是一款使用C#語(yǔ)言及Unity引擎編寫的游戲。
????為方便分析,在此把游戲內(nèi)容分為三部分:
C#語(yǔ)言部分。這一部分的游戲內(nèi)容主要包含在Assembly-CSharp文件中。如果您希望制作模組等作品,可以考慮合理使用BepInEx等現(xiàn)成作品,盡量避免直接修改原DLL文件。
腳本語(yǔ)言部分。這一部分的游戲內(nèi)容包含大多數(shù)地方單位的數(shù)據(jù)、所有事件對(duì)話、地圖數(shù)據(jù)以及部分算法。暫且將本地化文件也歸入這一類,因?yàn)榫庉嬍录?duì)話與本地化二者是直接綁定的。
其他文件部分。主要包括各類藝術(shù)素材。像素畫素材可以前往fantia下載,其他素材也許可以向某些知名玩家或其所屬群聊申請(qǐng)。謹(jǐn)記,游戲內(nèi)文件與你常用的文件有所不同。另外,向互聯(lián)網(wǎng)上公開發(fā)布藝術(shù)素材可能是違法的。
在本系列內(nèi)容中,我們將對(duì)前兩部分進(jìn)行討論。關(guān)于第三部分素材,我們建議您通過(guò)其他的通用手段進(jìn)行處理。關(guān)于具體如何獲取到以上三部分內(nèi)容,并不在本文討論范圍內(nèi)。見諒。

對(duì)于三部分內(nèi)容的進(jìn)一步介紹:
????對(duì)于C#部分,該部分是游戲內(nèi)容的核心。當(dāng)你嘗試通過(guò)修改腳本改變游戲行為時(shí),請(qǐng)先確認(rèn)該行為是否為硬編碼(舉例:按下Esc鍵時(shí)喚出的菜單,其選項(xiàng)的編號(hào)疑似是硬編碼)。如果是,也許您能考慮為其制作對(duì)應(yīng)的腳本并替換——本人也許正在嘗試這方面內(nèi)容的制作——或者什么都不做,以保證安全。
????當(dāng)然,如果您認(rèn)為可以,您也可以直接修改硬編碼,這也是最常用且自由度最高的方案。但個(gè)人認(rèn)為,盡管有如BepInEx的成熟組件,出于對(duì)程序安全性與組件通用性的考慮,直接修改dll程序的行為不應(yīng)被大規(guī)模地允許。
????很難說(shuō)制作方究竟根據(jù)什么區(qū)分應(yīng)用硬編碼與否。但可以確定的是,大多數(shù)基礎(chǔ)的機(jī)制都應(yīng)當(dāng)存在于C#部分中——當(dāng)然,什么叫基礎(chǔ),什么叫機(jī)制,本人也很難說(shuō)清,一切以具體運(yùn)行機(jī)制為準(zhǔn)。
????
????對(duì)于腳本語(yǔ)言部分,該部分的運(yùn)行機(jī)制,即其語(yǔ)法、功能等,可以直接在第一部分中找到答案。目前來(lái)看,該系統(tǒng)并未達(dá)成圖靈完備,想僅用內(nèi)置腳本改出大作的短期內(nèi)可以洗洗睡了。未來(lái)本人可能會(huì)對(duì)腳本的格式等問題進(jìn)行進(jìn)一步匯總,但不是現(xiàn)在。當(dāng)然,腳本似乎又通過(guò)其他軟件生成,尤其是地圖數(shù)據(jù)腳本,我們不建議您跟那一屏幕的數(shù)據(jù)過(guò)不去。
????也許會(huì)做個(gè)專門的編輯器吧……但在群里立了那么久Flag也沒啥做出來(lái)……
????為了對(duì)游戲的BGM等內(nèi)容進(jìn)行處理,請(qǐng)搜索“CriWare”以獲取更多信息。本人絕對(duì)意義上地不建議您未授權(quán)地將BGM上傳到網(wǎng)絡(luò)平臺(tái),尤其是如?網(wǎng)易云音樂 的音樂網(wǎng)站的專輯等存盈利可能的部分。對(duì)于其他藝術(shù)資源內(nèi)容,您可以直接通過(guò)搜索引擎獲取到相當(dāng)多的內(nèi)容,包括打開方式等。
????
舉例說(shuō)明:
需求1:了解傷害計(jì)算方式????-????C#代碼中
需求2:? 了解史萊姆運(yùn)行AI????-????C#代碼中
需求3:把開箱改成好運(yùn)來(lái)? -????其他文件中,具體而言,StreamingAssets中
需求4:去除*這不合法吧* ?-????C#代碼中;其他文件中
需求5:了解史萊姆數(shù)值?????-????腳本程序中
Part 中 大概會(huì)是講這幾部分是怎么組織起來(lái)的
Part 下 則是講整體框架結(jié)構(gòu)與一些重點(diǎn)細(xì)節(jié)
接下來(lái)大抵會(huì)隨緣更新各類游戲機(jī)制。不過(guò)眾所周知,我是鴿子。