哇 感覺是大工程。
前文
近日受邀與一個團隊開發一款選擇導向型的文字冒險遊戲,想說還沒自己做過對話系統的開發,就決定協助開發了。
遊戲內容就不多談,接下來幾篇就是拿來記錄自己對於文字對話系統的開發歷程。
我知道有一些既有的套件可以使用,但…我就純粹想做做看而已,如果有人有用習慣的套件也可以推薦給我,我也可以拿來做為開發上的參考。
說是 Day 1 但其實開發的內容是昨天的,昨天弄得有點晚,還來不及寫這個就先睡了,今天再來補上。
主軸
第一天開發的內容不多,主要是先把大致需要的功能列出來,然後一些基礎的元件框架弄出來而已。
我個人預期這個對話系統要有以下的功能:
- 對話內容顯示
- 加速對話文字顯示
- 略過對話
- 人物立繪的顯示
- 人物名稱的顯示
- 對話文本是採用外部檔案存取,這樣可以不用為了調整文本就需要把整個遊戲重新編譯發布。
- 選擇系統
後續可能邊開發的過程會在有些新想法,但主要大概就是這些內容。
有了大致的功能想法後就是在補上程式與畫面了
首先建立一個 DialogueSystem.cs 這是整個系統主要對外的主體,因為對話系統只會有一個,所以採用單例模式建立。
建立的時候會先檢查場景是否有 DialogueCanvas 這個元件,如果沒有就建立一個,並且賦予相關的內容。
接著建立一個 DialogueCanvas.cs 的程式碼,這個程式主要是拿來控制畫面元件的內容,也就是控制顯示對話內容、人物立繪等等。
原本是想要把所有東西都透過程式碼去生成,也就是我場景上可以不用塞任何物件,但後面想了想這樣做的工作要太多了…所以在場景上建立了對應 Canvas 物件,然後把整個大概需要的東西建立完了。
剩下程式的部分明天再繼續...
最後覆上一張目前的程式架構圖