
0人評分過此書
寫遊戲的首要之務就是要先有「好的設計」,否則哪能寫出可應對玩家、測試、企劃頻繁出現的新需求呢?那麼,怎樣才算是好的設計呢?除了掌握物件導向的設計原則外,直接在適當的場合套用適當的設計模式,自然是一條捷徑。GoF提出了23個模式,想要一次全都套用並非易事,不過,對於實質參與過或規畫過數十萬行以上的遊戲程式的人而言,不套用才奇怪!的確,很難想像,在一個簡單的專案中也能把GoF的23個模式都套用進去,但這本書幾乎做到了!關鍵在於作者的「遊戲開發經驗」。本書作者不但是實質參與大型遊戲開發的人,甚至本身負責的就是遊戲的軟體規劃,負責過的知名遊戲不勝枚舉,這些經驗,使得作者很清楚哪些模式可以套用在遊戲的哪個地方,或者反過來說,作者很清楚遊戲的哪類型功能應該套用哪個模式最為恰當。擁有這種能力的人當然不只一個,但願意把這些經驗濃縮設計出一個簡單的「P級陣地」遊戲並撰寫《設計模式與遊戲開發的完美結合》這本書來分享經驗者,蔡昇達堪稱是台灣遊戲界的第一人,甚至在整個台灣軟體業界,都很罕見。這本書的重點顯見於書名之中,著重在「設計模式」與「遊戲開發」,且兩者的重要性不相上下。作者撰寫本書的目的主要有二。首先,這本書是寫給遊戲程式設計師的,作者蔡昇達在遊戲設計業界累積了十年經驗,參與過無數耳熟能詳的專案(詳見下方..本書讚譽..),正所謂「十年磨一劍」,雖然動手完成這本書僅僅花費一年,但背後代表的是十年經驗的積累。本書作者希望所有的遊戲程式設計師能將工作重點,從「Coding」提升到「設計」的層次,藉由套用「設計模式」與多項物件導向設計原則,設計出可長可久的遊戲,不畏懼、甚至歡迎企劃、測試與使用者回饋帶來的修改需求與新需求。其次,本書也是寫給那些想要學習「設計模式」但不會寫遊戲的工程師閱讀的,本書採用的遊戲設計工具為Unity3D與C#,所使用的語法都是最簡單的,介面也是最容易上手的。至於遊戲部分,筆者挑選的是最常見、最淺顯易懂的範例,所有與本書遊戲相關的Domain Know-how,都難不倒任何一位曾經「玩過」戰鬥遊戲的軟體工程師。這樣做的目的在於,藉由遊戲做為範例,實際示範「設計模式」的強大之處。事實上,本書原本的另一個候選書名為《設計模式解析——以遊戲為例》。本書不同於其他講解「設計模式」的書籍,本書的所有範例都圍繞著同一個遊戲專案,並且將GoF的所有模式都套用到了該遊戲專案之中,光是這一點就很不容易,尤其是,本書還仔細思考過讀者的學習步伐,章節的安排讓讀者能夠循序漸進地學會所有的設計模式。讀者若在閱讀GoF的《設計模式》時,遇到無法理解的部分,也可將本書當作範例解析的參考書來使用。本書對於工程師而言,是一本非常容易閱讀的書籍,因為本書所有關於「設計模式」的章節架構、內容次序的安排都是相同的,步驟如下:
1 土法煉鋼完成遊戲需求。2 簡介可以採用的「設計模式」,包含使用生活實例來解釋GoF對於該模式的定義。3 使用該「設計模式」重構或重新設計程式,以完成遊戲需求。4 搭配團隊對話的手法,討論日後遇到需求變化時,如何善用該「設計模式」的強大之處,以簡單的調整方式來進行維護。5 討論該「設計模式」還能與哪些「設計模式」配合,以及採用該「設計模式」的優缺點。6 最後則是討論該「設計模式」還能應用在遊戲設計的哪個環節。
本書作者認為,透過上述步驟來學習「設計模式」與「遊戲開發」,是最能徹底明瞭「設計模式」與「遊戲開發」的學習方式。同時,本書還獲得了遊戲業界及軟體設計界的許多讚賞,因此,我們將之列為《中文原創經典》。~~~~~~~~~~~~~~本書讚譽~~~~~~~~~~~~~~
本書作者經由十年的遊戲開發過程中,將設計模式理論巧妙地融合到實務之中,為讓讀者能更容易地了解如何運用此理論,書中透過一個遊戲的實作貫穿全書,呈現出設計模式的完整樣貌,且以淺顯易懂的比喻來解譯難以理解的設計模式,透過這些相信能夠讓想更深入了解此領域的讀者更容易上手,推薦給有興趣從事遊戲開發的朋友們。軒轅劍之父——蔡明宏
暱稱『阿達』的蔡昇達先生,在台灣遊戲研發領域中,是位堪稱天才的程式設計師,我在擔任『仙劍Online』製作人期間,他是我對專案推展最大的信心來源。阿達在經歷過大型連網遊戲研發與營運過程洗禮後,升任為技術中心主管,並參與多款網頁遊戲與手機遊戲開發,充份展現他多元技術能力。在本書中,阿達除了傳達程式技術,更將他的實務經驗化為情境式範例,相信對遊戲設計有興趣的讀者,一定能獲益良多!資深遊戲製作人——李佳澤
一個充滿技術涵養的作品,有別於其他的遊戲開發叢書,採用了整合式的專案教學,即一個專案包含了所有作者想要傳承的經驗,同時也能讓讀者學習到整個遊戲開發的過程,非常適合走在程式設計師之路的開發者,作者以其深厚的開發經驗深入探討程式設計師該有的GoF開發思維,是一本無論遊戲開發或專案開發都值得蒐藏的作品。Unity官方產品技術佈道師 ——Kelvin Lo
《設計模式與遊戲開發的完美結合》將軟體的基本道理做了一個總整理,並且利用一個遊戲的範例來應用23個設計模式,這在設計模式的書籍中是較為少見的,作者企圖將軟體設計的領域擴展到所有與軟體有關的產業中,相當令人激賞!信仁軟體設計創辦人——賴信仁
本書不僅榮登博碩文化《中文原創經典》系列,事實上,正是有了這本書才開始有了《中文原創經典》這個系列,換句話說,本書是《中文原創經典》當中,第一本由台灣工程師撰寫的書籍!博碩文化《名家名著》、《中文原創經典》總編輯——陳錦輝
本書程式碼的GitHub下載點如下:https://github.com/sttsai/PBaseDefense_Unity3D
本書網站:(提供書中較大的UML原圖)http://gameworker.pixnet.net/blog
*本書精彩內容*
1 土法煉鋼完成遊戲需求。2 簡介可以採用的「設計模式」,包含使用生活實例來解釋GoF對於該模式的定義。3 使用該「設計模式」重構或重新設計程式,以完成遊戲需求。4 搭配團隊對話的手法,討論日後遇到需求變化時,如何善用該「設計模式」的強大之處,以簡單的調整方式來進行維護。5 討論該「設計模式」還能與哪些「設計模式」配合,以及採用該「設計模式」的優缺點。6 最後則是討論該「設計模式」還能應用在遊戲設計的哪個環節。
本書作者認為,透過上述步驟來學習「設計模式」與「遊戲開發」,是最能徹底明瞭「設計模式」與「遊戲開發」的學習方式。同時,本書還獲得了遊戲業界及軟體設計界的許多讚賞,因此,我們將之列為《中文原創經典》。~~~~~~~~~~~~~~本書讚譽~~~~~~~~~~~~~~
本書作者經由十年的遊戲開發過程中,將設計模式理論巧妙地融合到實務之中,為讓讀者能更容易地了解如何運用此理論,書中透過一個遊戲的實作貫穿全書,呈現出設計模式的完整樣貌,且以淺顯易懂的比喻來解譯難以理解的設計模式,透過這些相信能夠讓想更深入了解此領域的讀者更容易上手,推薦給有興趣從事遊戲開發的朋友們。軒轅劍之父——蔡明宏
暱稱『阿達』的蔡昇達先生,在台灣遊戲研發領域中,是位堪稱天才的程式設計師,我在擔任『仙劍Online』製作人期間,他是我對專案推展最大的信心來源。阿達在經歷過大型連網遊戲研發與營運過程洗禮後,升任為技術中心主管,並參與多款網頁遊戲與手機遊戲開發,充份展現他多元技術能力。在本書中,阿達除了傳達程式技術,更將他的實務經驗化為情境式範例,相信對遊戲設計有興趣的讀者,一定能獲益良多!資深遊戲製作人——李佳澤
一個充滿技術涵養的作品,有別於其他的遊戲開發叢書,採用了整合式的專案教學,即一個專案包含了所有作者想要傳承的經驗,同時也能讓讀者學習到整個遊戲開發的過程,非常適合走在程式設計師之路的開發者,作者以其深厚的開發經驗深入探討程式設計師該有的GoF開發思維,是一本無論遊戲開發或專案開發都值得蒐藏的作品。Unity官方產品技術佈道師 ——Kelvin Lo
《設計模式與遊戲開發的完美結合》將軟體的基本道理做了一個總整理,並且利用一個遊戲的範例來應用23個設計模式,這在設計模式的書籍中是較為少見的,作者企圖將軟體設計的領域擴展到所有與軟體有關的產業中,相當令人激賞!信仁軟體設計創辦人——賴信仁
本書不僅榮登博碩文化《中文原創經典》系列,事實上,正是有了這本書才開始有了《中文原創經典》這個系列,換句話說,本書是《中文原創經典》當中,第一本由台灣工程師撰寫的書籍!博碩文化《名家名著》、《中文原創經典》總編輯——陳錦輝
本書程式碼的GitHub下載點如下:https://github.com/sttsai/PBaseDefense_Unity3D
本書網站:(提供書中較大的UML原圖)http://gameworker.pixnet.net/blog
*本書精彩內容*
- 關於中文原創經典
- 審校序
- 推薦序
- 序/誌謝
- 關於本書/關於封面與美術設計
-
Part I 設計模式與遊戲設計
-
Chapter 1 遊戲實作中的設計模式
-
1.1 設計模式的起源
-
1.2 軟體的設計模式是什麼?
-
1.3 物件導向設計中常見的設計原則
-
1.4 為什麼要學習設計模式
-
1.5 遊戲程式設計與設計模式
-
1.6 模式的應用與學習方式
-
1.7 結論
-
-
Chapter 2 遊戲範例說明
-
2.1 遊戲範例
-
2.2 GoF 的設計模式範例
-
-
-
Part II 基礎系統
-
Chapter 3 遊戲場景的轉換 — State 狀態模式
-
3.1 遊戲場景
-
3.2 狀態模式(State)
-
3.3 使用狀態模式(State)實作遊戲場景的轉換
-
3.4 狀態模式(State)遇到變化時
-
3.5 總結與討論
-
-
Chapter 4 遊戲主要類別 — Facade 外觀模式
-
4.1 遊戲子功能的整合
-
4.2 外觀模式(Facade)
-
4.3 使用外觀模式(Facade)實作遊戲主程式
-
4.4 當外觀模式(Facade)遇到變化時
-
4.5 總結與討論
-
-
Chapter 5 取得遊戲服務的唯一物件 — Singleton 模式
-
5.1 遊戲實作中的唯一物件
-
5.2 單例模式(Singleton)
-
5.3 使用單例模式(Singleton)來取得唯一的遊戲服務物件
-
5.4 少用單例模式(Singleton)時如何方便地引用到單一物件
-
5.5 結論
-
-
Chapter 6 遊戲內各系統的整合 — Mediator 仲介者模式
-
6.1 遊戲系統間的溝通
-
6.2 仲介者模式(Mediator)
-
6.3 仲介者模式(Mediator)作為系統間的溝通介面
-
6.4 仲介者模式(Mediator)遇到變化時
-
6.5 總結與討論
-
-
Chapter 7 遊戲的主迴圈 — Game Loop
-
7.1 GameLoop 由此開始
-
7.2 怎麼實作遊戲迴圈(Game Loop)
-
7.3 在Unity3D 中實作遊戲迴圈
-
7.4 P 級陣地的遊戲迴圈
-
7.5 結論
-
-
-
Part III 角色的設計
-
Chapter 8 角色系統的設計分析
-
8.1 遊戲角色的架構
-
8.2 角色類別的規劃
-
-
Chapter 9 角色與武器的實作 — Bridge 橋接模式
-
9.1 角色與武器的關係
-
9.2 橋接模式(Bridge)
-
9.3 使用橋接模式(Bridge)來實作角色與武器介面
-
9.4 橋接模式(Bridge)面對變化時
-
9.5 總結與討論
-
-
Chapter 10 角色數值的計算 — Strategy 策略模式
-
10.1 角色數值的計算需求
-
10.2 策略模式(Strategy)
-
10.3 使用策略模式(Strategy)來實作攻擊計算
-
10.4 策略模式(Strategy)遇到變化時
-
10.5 總結與討論
-
-
Chapter 11 攻擊特效與擊中反應 — Template Method 樣版方法模式
-
11.1 武器的攻擊流程
-
11.2 樣版方法模式(Template Method)
-
11.3 使用樣版方法模式(Template Method)來實作攻擊與擊中流程
-
11.4 樣版方法模式(Template Method)面對變化時
-
11.5 結論
-
-
Chapter 12 角色AI — State 狀態模式
-
12.1 角色的AI
-
12.2 狀態模式(State)
-
12.3 使用狀態模式(State)來實作角色AI
-
12.4 狀態模式(State)面對變化時
-
12.5 總結與討論
-
-
Chapter 13 角色系統
-
13.1 角色類別
-
13.2 遊戲角色管理系統
-
-
-
Part IV 角色的產生
-
Chapter 14 遊戲角色的產生 — Factory Method 工廠方法模式
-
14.1 產生角色
-
14.2 工廠方法模式(Factory Method)
-
14.3 使用工廠方法模式(Factory Method)來產生角色物件
-
14.4 工廠方法模式(Factory Method)面對變化時
-
14.5 總結與討論
-
-
Chapter 15 角色的組裝 — Builder 建造者模式
-
15.1 角色功能的組裝
-
15.2 建造者模式(Builder)
-
15.3 使用建造者模式(Builder)來組裝角色的各項功能
-
15.4 建造者模式(Builder)面對變化時
-
15.5 總結與討論
-
-
Chapter 16 遊戲數值管理功能 — Flyweight 享元模式
-
16.1 遊戲數值的管理
-
16.2 享元模式(Flyweight)
-
16.3 使用享元模式(Flyweight)來實作遊戲
-
16.4 享元模式(Flyweight)面對變化時
-
16.5 結論
-
-
-
Part V 戰爭開始
-
Chapter 17 Unity3D 的介面設計 — Composite 組合模式
-
17.1 玩家介面設計
-
17.2 組合模式(Composite)
-
17.3 Unity3D 遊戲物件的階層式管理功能
-
17.4 結論
-
-
Chapter 18 兵營系統及兵營訊息顯示
-
18.1 兵營系統
-
18.2 兵營系統的組成
-
18.3 初始兵營系統
-
18.4 兵營資訊的顯示流程
-
-
Chapter 19 兵營訓練單位 — Command 命令模式
-
19.1 兵營介面上的命令
-
19.2 命令模式(Command)
-
19.3 使用命令模式(Command)來實作兵營訓練角色
-
19.4 命令模式(Command)面對新的變化時
-
19.5 結論
-
-
Chapter 20 關卡設計 — Chain of Responsibility 責任鏈模式
-
20.1 關卡設計
-
20.2 責任鏈模式(Chain of Responsibility)
-
20.3 使用責任鏈模式(Chain of Responsibility)來實作關卡系統
-
20.4 責任鏈模式(Chain of Responsibility)面對變化時
-
20.5 總結與討論
-
-
-
Part VI 輔助系統
-
Chapter 21 成就系統 — Observer 觀察者模式
-
21.1 成就系統
-
21.2 觀察者模式(Observer)
-
21.3 使用觀察者模式(Observer)來實作成就系統
-
21.4 當有新的變化時
-
21.5 結論
-
-
Chapter 22 存檔功能 — Memento 備忘錄模式
-
22.1 儲存成就記錄
-
22.2 備忘錄模式(Memento)
-
22.3 使用備忘錄模式(Memento)實作成就記錄的保存
-
22.4 當有新的變化時
-
22.5 總結與討論
-
-
Chapter 23 角色資訊查詢 — Visitor 訪問者模式
-
23.1 角色資訊的提供
-
23.2 訪問者模式(Visitor)
-
23.3 使用訪問者模式(Visitor)實作角色資訊查詢
-
23.4 當有新的變化時
-
23.5 結論
-
-
-
Part VII 調整與最佳化
-
Chapter 24 字首字尾 — Decorator 裝飾模式
-
24.1 字首字尾系統
-
24.2 裝飾模式(Decorator)
-
24.3 使用裝飾模式(Decorator)來實作字首字尾的功能
-
24.4 當有新的變化時
-
24.5 結論
-
-
Chapter 25 俘兵 — Adapter 轉換器模式
-
25.1 遊戲的寵物系統
-
25.2 轉接器模式(Adapter)
-
25.3 使用轉接器模式(Adapter)來實作俘兵系統
-
25.4 當有新的變化時
-
25.5 結論
-
-
Chapter 26 載入速度的最佳化 — Proxy 代理模式
-
26.1 最後的系統最佳化
-
26.2 代理模式(Proxy)
-
26.3 使用代理模式(Proxy)來測試及最佳化載入速度
-
26.4 當有新的變化時
-
26.5 結論
-
-
-
Part VIII 未明確使用的模式
-
Chapter 27 迭代器模式、原型模式、解譯器模式
-
27.1 迭代器模式(Iterator)
-
27.2 原型模式(Prototype)
-
27.3 解譯器模式(Interpreter)
-
-
Chapter 28 Abstract Factory 抽象工廠模式
-
28.1 抽象工廠模式(Abstract Factory)的定義
-
28.2 抽象工廠模式(Abstract Factory)的實作
-
28.3 可應用抽象工廠模式的場合
-
-
-
Appendix
-
參考書目
-
編輯的話
-
- 出版地 : 臺灣
- 語言 : 繁體中文
評分與評論
請登入後再留言與評分