遊戲開發

19 篇文章 所有分類

[開發日誌 #4] 原型時期的程式開發方式

在開發遊戲原型時,最重要的是盡快實現遊戲玩法,但一開始自己走了許多歪路,反而花更多心力在不重要的地方。在 TDGF 上聽到分享與請教朋友之後,學到不少在原型階段的開發方式,就透過這篇文章來分享減少走錯路的方法。

[開發日誌 #3] 先求有,但別繞路

很常聽到在專案開發初期,做功能最好是「先求有,再求好」。在發覺做了兩個月的白工後,才體會到這句話的意思應該是「先求有,以此為基礎,再求好」,而不是「先求有,之後再做一個全新且更好的」。

[分享] 2025 TGDF 筆記 - 遊戲設計篇

這篇包含了三場演講,侍達遊戲的戰鬥設計主管分享如何設計戰鬥,而《Patrick’s Parabox》則分享開發過程與如何設計解謎遊戲,最後是 Ferran 分享音樂遊戲不只有節奏遊戲,還有更多可以探索的方向。

[分享] 2025 TGDF 筆記 - 九日篇

今年《九日》相關的議程也很多,從開案時期的探索,到如何設計讓玩家能享受的遊戲機制,遊戲的設計秘辛亳無保留地分享出來。

[分享] 2025 TGDF 筆記 - CDPR 篇

今年是第三次參加 TGDF,經過兩天的英聽訓練後,才發覺自己的英聽能力一點也沒進步,低頭做完筆記後,就完全跟不上臺上講者的進度了。話雖如此,這次的 TGDF 還是收獲良多,從遊戲設計到專案管理的分享都有,對於正在參與開發的遊戲也有很大的幫助。這次的筆記就整理成 CDPR、九日、遊戲設計三篇文章。

[開發日誌 #2] A 需要跑步但 B 只要走路

在這次開發的遊戲中,角色有不同的移動方式,像是玩家角色會以方向做為移動輸入,而敵人角色則是以路徑做為移動目標,而這兩者又有以距離為主的移動方式,如:瞬步、攻擊墊步。所以一開始做了通用的移動模組來整合這些方式,讓所有角色使用。但隨著敵人角色的移動方式增加,為了讓模組能保持「通用」,部份功能只能做在模組之外,造成移動...

[開發日誌 #1] 狀態機奮鬥記

時光荏苒,參與新專案到現在也超過半年了。因為是第一次做動作遊戲,面對沒開發過的機制,看了許多資料,也踩了不少的坑,就覺得應該來寫個開發日誌,多少記錄一下開發過程的酸甜苦辣鹹。開張第一篇先來分享開發狀態機時的碰壁。

[分享] 2025 亞太遊戲高峰會 -《聖騎士之戰 -奮戰-》的全球化挑戰

在台北電玩展舉行期間,也會同時進行亞太遊戲高峰會。高峰會邀請遊戲業相關商業人士前來分享經驗,議題涵蓋開發、技術、行銷、社群推廣等。不過對我來說,與其說是去聽演講,不如說是粉絲見面會。而今年最有興趣的演講之一是 GGST 的製作人宮內健的分享,在這場演講中也獲益良多,所以用這篇文章來分享演講的內容。

[Unity] 事件訂閱與問題(上)- UnityEvent 與 C# event

在遊戲開發中,一個物件經常需要訂閱另一個物件的事件,以在事件發生時,執行對應的動作,像是玩家輸入、觸發機關、關卡管理等。而在 Unity 中,常見的方式是使用 UnityEvent 與 C# event 來讓物件提供事件介面,讓其它物件訂閱,但這兩者各自問題,反而讓程式容易出錯。本篇文章整理 UnityEvent...

[筆記] 將共用的資料定義獨立出來

當不同元件有相似的資料時,應該把相同的部份整理出來成為一個獨立的資料定義,並在用到的地方使用這個資料定義。如果元件之間各自定義的話,當要新增或修改資料時,所有用到的地方都得要一併更新,既秏時又費力,且容易出錯,會是一場災難。

[分享] 獨立遊戲在 Steam 頁面上的宣傳影片建議

在推特上看到貼文分享一則在 Reddit 的討論串,討論串的樓主問其它人是不是也一樣,在逛 Steam 遊戲頁面時,會跳過宣傳影片直接去看遊戲擷圖或是評論。結果許多人回覆都有類似的習慣,因為覺得宣傳影片沒有傳達出遊戲玩法,所以直接去看遊戲擷圖的話,反而可以更快知道這個遊戲合不合自己的胃口。原推的作者就分享獨立遊戲...

[筆記] 重構專案中的舊元件

在最近參與的遊戲專案中,我負責重新撰寫經過時間累積、充滿不同想法的核心元件。隨處可見複製的程式碼,元件之間交互使用,亦或是為了加新功能而繞路。可以看出每個新功能為了不影響之前的功能,正維持著微妙的平衡。對於負責重寫元件的我來說就好像是在茂密的遠古森林裡一路披荊斬棘,充滿挑戰。就想寫來記錄過程和心得。

[Unity] Unity 2021 LTS - C# 9.0 的新語法

Unity 2021 LTS 也出來好一陣子了,在 2021.2 版後就開始導入 C# 9.0。使用了半年後,發覺 C# 9.0 當中新增的語法可以讓程式碼更加簡潔易讀,整理成本篇來介紹個人常用的語法。

[C#] 利用 Attribute 為繼承類別給與不同的 Static 成員值

在專案開發上遇到這樣的問題:每個繼承類別要提供類似的 static 函式,功能差不多,但只有要取用的值不一樣。就在想能不能把 static 函式拉到基礎類別上,但又可以依照繼承類別給與不同的 static 成員值。

[C#] 用 interface 模擬多類別繼承

最近負責的 Unity 專案中,有很多 UI 有返回的按鈕,而這些按鈕也要可以透過程式觸發。如果為每個 UI 撰寫觸發的函式,一但觸發的邏輯改變,修改會是個大工程。如果為了這個小功能撰寫基礎類別,又顯得大才小用,而且 C# 的類別只能同時繼承一個類別,擴充性也不高。但 C# 類別可以繼承多個 interface,...

[Unity] 設定 Android 不要備份 PlayerPrefs

用 Unity 開發 Android 上的遊戲時,如果有用到 PlayerPrefs 儲存使用者的資料,可能會發現在重新安裝後,這些資料還是存在。這是因為在 Android 6.0 以上的版本,Android 都會自動備份應用程式的資料,在重新安裝後會恢復這些資料。

[C#] 類別成員存取關係一覧

本篇用圖表來介紹 C# 類別成員的存取關係,有 private、protected、public,跟跨組件的成員存取,有 internal、protected internal、private protected。以及比較一般繼承與多型繼承中,會取得什麼版本的方法。

[C#] 避免 Boxing/Unboxing 效能問題

之前在撰寫 Unity 套件的時候,因為不知道使用者會用什麼類別來傳資料,所以都轉成 object 型別來傳遞,後來發現這會有效能上的問題。本篇文章就來探討這個問題以及解法。