遊戲開發實戰寶典

遊戲開發實戰寶典

作者: 猿媛之家
出版社: 機械工業
出版在: 2021-08-01
ISBN-13: 9787111685210
ISBN-10: 7111685210
裝訂格式: 平裝
總頁數: 252 頁





內容描述


本書講解了遊戲開發中用到的相關技術,
主要包括前端和後端兩部分內容,
並結合前端與後端技術給出了幾個實戰項目的設計及實現方法。
 
本書分4部分,共12章。第壹部分(第1章)為梗概,
介紹了軟件開發的關鍵、遊戲開發從業者的層次和挑戰以及本書的目標。
 第 2 部分(第2~5章)先介紹了Egret Engine編程技術,
包括編程基礎、高級開發和擴展庫編程。
隨後講解了sparrow-egret遊戲前端框架的編程技術,
包括MVC架構模式以及sparrow-egret遊戲前端框架的主要功能。
第 3 部分(第6~8章)先介紹了Netty的主要功能,
然後給出了作者開發的基於JCommon和nest的遊戲組件的使用方法。
後給出了一個基於前端和後台功能相結合的實戰項目—遊戲聊天室。
第 4 部分(第9~12章)則比較詳細地講解了作者基於先前框架所開發的遊戲實戰項目—貪吃蛇和網絡對戰國際象棋。
同時,介紹了一款可以和先前框架配合使用的自動生成代碼的腳本工具—TreeBranch。
在本書的
後兩章,
還講解了功能框架以及實戰項目裡所涉及的遊戲開發模塊整合以及設計原則與模式,
並展示了筆者的設計思路。
本書實例部分及章節源碼解讀難點部分均配有二維碼講解視頻,
方便讀者自學時觀看使用。
本書適用於遊戲編程初、中級開發人員,
遊戲開發高手也可以通過閱讀本書擴展自己的設計思路。


目錄大綱


前言 
第1部分   梗概/1
第1章  直擊問題關鍵及本書概要/2
1.1  軟件開發的關鍵/2
1.2  遊戲開發從業者的層次和挑戰/3
1.3  本書的目標/3
1.4  本章小結/4

第2部分   Egret編程指南/5
第2章  Egret Engine編程基礎/6
2.1  Egret引擎簡介/6
2.2  引擎的安裝、配置與發布/6
2.2.1  安裝Egret啟動器/6
2.2.2  啟動Egret啟動器並安裝引擎和編輯器/8
2.2.3  創建默認項目/10
2.2.4  通過默認項目講解項目配置/14
2.2.5  第三方擴展庫/16
2.2.6  發布項目/18
2.3  顯示對象和顯示容器/19
2.3.1  舞台/19
2.3.2  坐標系統以及基本屬性/20
2.3.3  添加與刪除顯示對象/21
2.3.4  深度管理/25
2.4  矢量繪圖/26
2.4.1  繪製圓形/26
2.4.2  繪製直線/27
2.4.3  繪製曲線/28
2.4.4  繪製圓弧/29
2.5  遮罩/31
2.6  碰撞檢測/31
2.6.1  邊框級別的碰撞檢測/31
2.6.2  像素級別的碰撞檢測/32
2.7  文本/33
2.7.1  三種文本類型/33
2.7.2  文本樣式/34
2.8  事件機制/41
2.8.1  Egret事件處理機制/41
2.8.2  Egret的觸摸事件/43
2.9  網絡/44
2.9.1  發送HTTP請求/44
2.9.2  發送帶參數的請求/45
2.10  本章小結/45
第3章  Egret Engine高級開發/46
3.1  位圖紋理/46
3.1.1  基本知識/46
3.1.2  九宮格/48
3.1.3  紋理的填充方式/49
3.1.4  紋理集/50
3.2  顏色效果/51
3.2.1  混合模式/51
3.2.2  濾鏡/53
3.3  時間控制/58
3.3.1  計時器/58
3.3.2  心跳/59
3.3.3  幀事件/60
3.4  多媒體/61
3.4.1  音頻/61
3.4.2  視頻/61
3.5  屏幕適配/62
3.5.1  縮放模式/62
3.5.2  旋轉模式/67
3.6  調試/70
3.7  本章小結/71
第4章  Egret擴展庫編程指南/72
4.1  RES資源加載/72
4.1.1  資源加載配置文件/72
4.1.2  加載資源配置文件及資源組/73
4.2  EUI庫/74
4.2.1  基本組件/74
4.2.2  組件容器/82
4.2.3  皮膚/88
4.3  Tween緩動庫/89
4.3.1  基本功能/89
4.3.2  緩動對象的其他方法/90
4.4  WebSocket庫/91
4.5  P2物理系統庫/93
4.6  本章小結/96
第5章  sparrow-egret遊戲前端框架/97
5.1  MVC架構模式/97
5.1.1  PureMVC簡明教程/97
5.1.2  PureMVC在sparrow-egret裡的應用/100
5.2  sparrow-egret功能介紹/101
5.2.1  程序入口/101
5.2.2  監聽資源的加載/102
5.2.3  場景堆棧/104
5.2.4  代理服務器/106
5.2.5  請求、響應、推送以及處理響應和推送/107
5.3  本章小結/110
第3部分   Netty編程指南/111
第6章  Netty快速入門/112
6.1  搭建開發環境/112
6.1.1  安裝JDK/112
6.1.2  安裝IDE/112
6.1.3  安裝Gradle/112
6.2  第一個Netty應用程序/113
6.2.1  創建EchoServer/113
6.2.2  創建EchoClient/120
6.3  Channel/122
6.4  ByteBuf/124
6.4.1  ByteBuf的模式/124
6.4.2  讀寫操作/125
6.4.3  生成ByteBuf實例/127
6.5  ChannelHandler和ChannelPipeline/128
6.5.1  ChannelHandler/128
6.5.2  ChannelPipeline/129
6.5.3  ChannelHandlerContext/130
6.5.4  異常處理/131
6.6  編解碼器/131
6.6.1  解碼器/131
6.6.2  編碼器/132
6.7  WebSocket幀處理器/133
6.7.1  實現HTTP連接/133
6.7.2  處理WebSocket幀/134
6.7.3  定義ChannelInitializer/135
6.8  SSL處理器/136
6.9  本章小結/136
第7章  JCommon和nest編程指南/137
7.1  PPA編程模型/137
7.2  JCommon和nest的組件概述/138
7.2.1  Server服務器類/138
7.2.2  Lobby大廳的基類/139
7.2.3  NestRoot根類/141
7.2.4  BaseConfiguration配置的基類/142
7.2.5  ProxyPlayerEnteringRoom代理玩家的基類/142
7.2.6  Request請求的基類/143
7.2.7  Response響應的基類/144
7.2.8  Push推送的基類/145
7.2.9  Action動作的基類/145
7.2.10  Room房間的基類/146
7.2.11  Table桌面的基類/146
7.2.12  ClassScanner類掃描器/149
7.3  本章小結/150
第8章  前端后台實戰項目—遊戲聊天室/151
8.1  遊戲聊天室功能/151
8.2  前端程序的實現/151
8.2.1  引入第三方庫/151
8.2.2  請求、響應以及推送協議的設計/152
8.2.3  場景、推送處理器以及對話框的設計/153
8.2.4  實現資源加載監聽器/156
8.2.5  實現入口類—Main/157
8.2.6  小結/158
8.3  後台程序的實現/158
8.3.1  修改gradle構建腳本/158
8.3.2  代理玩家的實現/158
8.3.3  大廳的實現/159
8.3.4  請求、響應以及推送/159
8.3.5  動作的實現/159
8.3.6  配置類的實現/159
8.3.7  程序啟動類/160
8.4  連接前端與後台/160
8.4.1  啟動後台程序/160
8.4.2  啟動前端程序/161
8.5  本章小結/162

第4部分   綜合實戰/163
第9章  實戰項目—貪吃蛇/164
9.1  貪吃蛇項目的設計/164
9.2  代碼解析/165
9.2.1  GameScene遊戲場景類/165
9.2.2  Snake蛇類/170
9.2.3  SnakeHead蛇頭類/174
9.2.4  SnakeBody蛇身類/175
9.2.5  Driver控制器類/175
9.2.6  Direction方向類/177
9.3  本章小結/178
第10章  綜合實戰項目—國際象棋/179
10.1  前端與後台的輔助工具—TreeBranch/179
10.1.1  安裝protobuf命令行程序和庫/179
10.1.2  編寫協議配置文件/180
10.1.3  在Python執行環境下安裝TreeBranch/182
10.1.4  用TreeBranch編寫前端和後台項目的代碼自動生成
腳本/182
10.1.5  小結/186
10.2  sparrow-egret-games-chess項目詳解/186
10.2.1  SquareComponent棋盤格組件/187
10.2.2  PieceComponent棋子組件/188
10.2.3  ChessBoardViewComponent棋盤組件/188
10.2.4  ChessBoardState棋盤狀態/191
10.2.5  通知處理器/192
10.2.6  對話框/194
10.3  nest-games-chess項目詳解/195
10.3.1  ChessRoom象棋房間/196
10.3.2  ChessTable象棋桌面/196
10.3.3  ChessBoard象棋棋盤/197
10.3.4  Piece棋子/198
10.3.5  QueryingLegalMovesAction查詢合法走法的動作/200
10.3.6  QueryResult合法走法查詢的結果/200
10.3.7  QueryStrategy查詢策略與QueryStrategyCondition查詢
策略的條件/201
10.3.8  MovingPieceAction移動棋子的動作/202
10.3.9  ExpressionGenerator表達式生成器與ExpressionGenerator
Condition表達式生成器的條件/202
10.3.10  ManualExpressionExecutor棋譜表達式執行器/204
10.3.11  ManualExpression棋譜表達式/205
10.3.12  BoutExpression回合表達式/205
10.3.13  StepExpression步表達式與StepExpressionCondition
步表達式的條件/205
10.3.14  Command玩家的行動命令/207
10.3.15  ProxyPlayerPlayingChess國際象棋遊戲的代理玩家/208
10.3.16  ExchangingPawnTouchingDownForAction達陣兌換棋子
的動作/208
10.3.17  UndoAction悔棋動作/208
10.4  本章小結/209
第11章  遊戲開發模塊整合/210
11.1  整合前端/210
11.1.1  LoadingScene加載場景/210
11.1.2  LobbyScene大廳場景/213
11.1.3  ChessTableScene棋盤桌面遊戲場景/218
11.2  整合後台/225
11.2.1  NestConfiguration遊戲後台配置/225
11.2.2  AaronsChessLobby遊戲的大廳/226
11.2.3  ProxyPlayer遊戲的代理玩家/226
11.2.4  Main遊戲的啟動主類/226
11.3  連接前端與後台/227
11.4  本章小結/230
第12章  設計原則與模式/231
12.1  依賴倒置原則/232
12.2  開放封閉原則與去除switch語句和if語句的職責鏈
模式/232
12.3  工廠模式和使用接口和抽像類編程原則/235
12.4  命令模式/236
12.5  解釋器模式/236
12.6  狀態模式/237
12.7  本章小結/237
附錄  本書附帶的資源/238


作者介紹


崔福倫,具有十餘年豐富的行業從業經驗。研究方向包括面向對象技術、模式、領域驅動設計等。擅長游戲編程、JavaWeb等技術,近期專注於象棋遊戲的研發。曾參與開發社交類、戰略類游戲軟件以及企業財務管理系統。業餘愛好包括閱讀、CG設計、象棋及體育運動。




相關書籍

3ds Max & Unreal Engine 4——VR三維建模技術實例教程(附VR模型)

作者 初樹平 張翔

2021-08-01

Flash 遊戲設計很簡單

作者 李篤易

2021-08-01

Unity 行動遊戲開發實務 (Mobile Game Development with Unity: Build Once, Deploy Anywhere)

作者 Jon Manning Paris Buttfield-Addison 陳健文

2021-08-01