文章

顯示從 四月, 2018 起發佈的文章

遊戲開發日誌 #02

圖片
在上一編的 Localization 內容,有人私訊問題,關於 dataSystem.text.en 取得系統相關的英語文字的事項,如果有十幾種語言,那不同類型文字的程序都要去編寫嗎?

像以下這樣:
string GetSystemText(int textID) {
        DataSystem ds = Array.Find(dataSystems, s => s.textID == textID);
        switch (localizationIndex) {
            case 1:
                return ds.text.en;

            case 2:
                return ds.text.jp;

            case 3:
                return ds.text.cht;

            case 4:
                return ds.text.chs;

            default:
                return ds.text.en;
        }

string GetItemText(int textID) {
  .
  .
  . 如果是上面這樣做的話,的確要為每個種類的取得文字 function 去設定重覆的步驟。其實只要做一次就足夠,不用這大廢周張。

遊戲開發日誌 #01

圖片
很久沒有更新,有很多主題都有頭沒尾的,非常對不起。
現在這個新的主題可能都會這樣,所以。。。。。請不要過份期待下一篇。

如有追蹤本人的社交帳戶,應該知道本人正在製作自己的遊戲;由於找不到可以一起走下去的伙伴,所以決定自己一個人做所有東西。幸運的是,大部份的知識和經驗都有,也有好的導師、師姊幫手解決問題,一切都非常順利。

終於。。。最底層的東西都移植了,並改良和除錯大致上完成了!這個月之前,都在 3D 中苦戰,現在則在系統上打拼。

○下面是未細緻修正的 3D Model

Char Motion Test by Parsue on Sketchfab
在自己的測試中,已有多幾個動作,還會眨眼,未來可能會分享影片。
這次的遊戲,由於不是動作遊戲,節奏比較慢,所以會花更多時間在人物細節上,現在的頭髮衣飾全會動是最底要求,希望自學一年不到的自己有能力可以做得更好。

寫了 VB 十幾年,太多毛病,現寫了 C# 九個月,還有太多東西不知道,真的很多謝很多師兄師姊的幫忙才學到不少事情。C# 的特性和架構實在太好了,真的越來越愛 C# 了。

雖然在各個 manager 、 managerloader 以及 datamanager 之間的架構有點頭大,但以遊戲的設計由零做出來的話還比較輕鬆;不過在 localization 上,以及 datamanager 中的 data 作更改的處理就頭痛了一個星期了。。。

○ 先分享之前的 Propotype:


Localization 是從這個 prototype 中移植過來。之前的 localization 做法 (下面會說),是在學 C# 中途完成的,所以很多 C# 的特性和功能都沒有使用,不理想加上太浪費資源,例如在各個 object 上都有 localization text,當更改語言時這些 text 的更新方法,由於之前還不知道有 Dictionary,所以叫帶有 text 的 object 去檢查語言是否有更改,很笨,現在都是 object 生成時自己登記到 localization 的 dictionary,讓 localization 更改語言時主動去通知各個 text 去 renew。

這個月也忙於測試遊戲的耗電狀況來作出不同的優化方案,也改善了角色和相機活動的流暢度,花了一個星期的測試,四處尋找資料,以及很多人的指教後,除…