文章

顯示從 2018 起發佈的文章

遊戲開發日誌 #05

圖片
這個世界充滿了物理法則,遊戲世界亦一樣。 我們習慣了現實世界的物理環境和慣性,也會把同樣的感知力放進遊戲世界。 若果遊戲世界的物理環境和慣性跟現實世界有出入,就會產生違和感。
不過現實卻是。。。
「即使遊戲引擎使用現實世界的物理法則去運算和表現物理效果,人還是會產生違和感。」
到底是為什麼呢?

遊戲開發日誌 #04

圖片
在經過各路取經後,遊戲由純解迷更改為輕動作的故事類解迷 ARPG。
現在正踏入戰鬥系統的設計和編程。

說到戰鬥系統,就會出現不少參數,要從遊戲修改程式保護這些參數是一個重要的課題。

這次就分享小弟的加密方法。

遊戲開發日誌 #03

圖片
開發進度還算理想,基本都困在自己最弱、資歷最淺的3D模型上。。。

程序上由於對 C# 的特性和 Unity 的環境雙方的了解還不足夠,花了不時間去研究和嘗試。。。

為了對自己的幫助更深,所以也開始解答一些問題或提供解決方案之類的討論,獲益不少。

這篇除了分享一下開發的進度,也分享一下這幾天一個比較有趣的討論。

遊戲開發日誌 #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。

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