文章

顯示從 4月, 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。 這個月也忙於測試遊戲的耗電狀況來作出不同的優化方案,也改善了角色和相機活