-
>
決戰(zhàn)行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優(yōu)實踐之路
-
>
第一行代碼Android
-
>
深度學習
-
>
Unreal Engine 4藍圖完全學習教程
-
>
深入理解計算機系統(tǒng)-原書第3版
-
>
Word/Excel PPT 2013辦公應用從入門到精通-(附贈1DVD.含語音視頻教學+辦公模板+PDF電子書)
RUST游戲開發(fā)實戰(zhàn) 版權信息
- ISBN:9787115626608
- 條形碼:9787115626608 ; 978-7-115-62660-8
- 裝幀:平裝-膠訂
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
RUST游戲開發(fā)實戰(zhàn) 本書特色
1.本書主要介紹如何基于Rust語言開發(fā)游戲
2.引導讀者制作自己的Flappy Bird,借實例講解Rust語言的基礎知識。
3.引導讀者從0到1用Rust實現(xiàn)游戲項目。
RUST游戲開發(fā)實戰(zhàn) 內容簡介
本書主要介紹基于Rust語言開發(fā)游戲的方法,還介紹了適用于Unity、Unreal等游戲引擎的技巧。 本書先設置開發(fā)環(huán)境,然后引導讀者制作自己的Flappy Bird,借實例講解Rust語言的基礎知識。全書引導讀者逐步完成一個《地下城爬行者》(Dungeon Crawler)游戲項目,通過實戰(zhàn)幫助讀者掌握Rust的相關知識,掌握用Bevy開發(fā)游戲的方法,以及在不影響程序調試的情況下運行游戲系統(tǒng),對所開發(fā)的游戲進行優(yōu)化。 本書適合所有對Rust語言感興趣的讀者閱讀,也適合從事游戲開發(fā)的讀者參考。
RUST游戲開發(fā)實戰(zhàn) 目錄
第 1章 Rust及其開發(fā)環(huán)境 2
1.1 安裝Rust 2
1.1.1 在Microsoft Windows上安裝Rust 3
1.1.2 在其他操作系統(tǒng)上 安裝Rust 3
1.1.3 完成安裝 3
1.1.4 驗證安裝是否成功 4
1.1.5 測試Rust能否正常使用 5
1.1.6 版本更新 5
1.2 安裝并配置開發(fā)環(huán)境 6
1.3 用Cargo管理項目 7
1.3.1 為代碼選擇一個主目錄 7
1.3.2 用Cargo來開啟一個新項目 7
1.3.3 運行Hello,World 8
1.3.4 與版本控制系統(tǒng)的集成 8
1.4 創(chuàng)建第 一個Rust程序 9
1.4.1 Cargo的元數(shù)據(jù) 9
1.4.2 Hello,World程序 10
1.5 用Cargo來構建、檢查并運行項目 11
1.6 修正代碼格式 12
1.7 用Clippy來發(fā)現(xiàn)常見錯誤 13
1.8 用Cargo進行包管理 15
1.9 小結 16
第 2章 Rust的第 一步 17
2.1 創(chuàng)建一個新的項目 17
2.2 捕捉用戶輸入 17
2.2.1 提示訪客輸入姓名 18
2.2.2 用變量存儲姓名 18
2.2.3 接收鍵盤輸入 19
2.2.4 讀取用戶輸入 20
2.2.5 用占位符實現(xiàn)格式化打印 21
2.2.6 完整的問候程序 21
2.3 將輸入處理邏輯移入函數(shù) 22
2.4 修剪輸入數(shù)據(jù) 23
2.5 在數(shù)組中存儲字符串 24
2.5.1 聲明一個數(shù)組 25
2.5.2 在數(shù)組中查找元素 26
2.6 用結構體來組織數(shù)據(jù) 27
2.7 用向量來存儲數(shù)量可變的數(shù)據(jù) 32
2.7.1 派生調試信息 32
2.7.2 用向量代替數(shù)組 33
2.7.3 用break跳出循環(huán) 34
2.7.4 為向量添加新元素 34
2.8 用枚舉體來實現(xiàn)分類 36
2.8.1 枚舉體 36
2.8.2 使用枚舉類型和整數(shù)類型的數(shù)據(jù)成員 37
2.8.3 將枚舉類型賦值給變量 38
2.8.4 枚舉體的匹配 38
2.9 小結 41
第3章 構建第 一個Rust游戲 42
3.1 理解游戲循環(huán) 42
3.1.1 什么是bracket-lib以及bracket-terminal 44
3.1.2 創(chuàng)建一個使用bracket-lib的新項目 45
3.1.3 Hello,bracket Terminal 46
3.1.4 存儲狀態(tài) 46
3.1.5 Codepage 437: 由IBM擴展的ASCII字符集 50
3.2 創(chuàng)建不同的游戲模態(tài) 50
3.2.1 根據(jù)當前模態(tài)做出反應 51
3.2.2 play()函數(shù)的樁形式 52
3.2.3 主菜單 52
3.2.4 游戲結束菜單 54
3.2.5 完整的游戲控制流 54
3.3 添加游戲角色 55
3.3.1 渲染游戲角色 56
3.3.2 墜向不可避免的死亡 56
3.3.3 扇動翅膀 57
3.3.4 實例化玩家 57
3.3.5 常量 58
3.3.6 完善游戲程序的play()函數(shù) 59
3.3.7 扇動翅膀 60
3.4 創(chuàng)建障礙物并實現(xiàn)計分邏輯 60
3.4.1 渲染障礙物 61
3.4.2 一頭撞到墻上 62
3.4.3 記錄得分和障礙物的狀態(tài) 63
3.4.4 在play()函數(shù)中加入障礙物和計分邏輯 64
3.4.5 將得分顯示在游戲結束畫面上 64
3.4.6 在重玩游戲時重置得分和障礙物 65
3.4.7 Flappy Dragon游戲效果 65
3.5 小結 65
第二部分 開發(fā)地下城探險類游戲
第4章 設計地下城探險類游戲 68
4.1 設計文檔**的幾個段落標題 68
4.1.1 為游戲命名 68
4.1.2 游戲的簡要介紹 68
4.1.3 游戲劇情 69
4.1.4 基本的游戲流程 69
4.1.5 *簡可行產(chǎn)品 69
4.1.6 延展目標 70
4.2 小結 70
第5章 編寫地下城探險類游戲 72
5.1 將代碼劃分為模塊 72
5.1.1 crate與模塊 72
5.1.2 新建一個空的地圖模塊 73
5.1.3 模塊的作用域 74
5.2 用prelude模塊來管理導入項 74
5.3 存儲地下城地圖 76
5.3.1 圖塊在程序中的表示方法 77
5.3.2 創(chuàng)建一個空地圖 77
5.3.3 為地圖建立索引 78
5.3.4 渲染地圖 79
5.3.5 使用地圖模塊的API 80
5.4 加入探險家 81
5.4.1 擴展地圖的API接口 81
5.4.2 創(chuàng)建玩家角色的數(shù)據(jù)結構 82
5.4.3 渲染玩家角色 83
5.4.4 移動玩家角色 83
5.4.5 使用玩家模塊的API 84
5.5 創(chuàng)建地下城 85
5.5.1 編寫地圖生成器模塊 86
5.5.2 用石墻把地圖填滿 87
5.5.3 開鑿房間 87
5.5.4 開鑿走廊 88
5.5.5 建造地圖并放置玩家角色 91
5.5.6 使用MapBuilder組件的API 91
5.6 Graphics,Camera,Action 92
5.6.1 地下城所使用的
Programmer Art 92
5.6.2 圖層 94
5.6.3 制作攝像機 95
5.6.4 用攝像機來渲染地圖 97
5.6.5 將玩家角色關聯(lián)到
攝像機 98
5.6.6 清理圖層,并關聯(lián)函數(shù)和攝像機 98
5.7 小結 99
第6章 創(chuàng)建地下城居民 100
6.1 名詞解釋 100
6.2 用組件編排出實體 101
6.3 安裝并使用Legion 102
6.3.1 將Legion添加到prelude中 103
6.3.2 刪除一些老代碼 103
6.3.3 創(chuàng)造游戲世界 104
6.4 編排出玩家角色 105
6.5 使用系統(tǒng)來實現(xiàn)復雜的邏輯 107
6.5.1 多個文件組成的模塊 108
6.5.2 理解什么是查詢 109
6.5.3 將處理玩家輸入作為一個系統(tǒng) 111
6.5.4 批量渲染 114
6.5.5 地圖渲染系統(tǒng) 115
6.5.6 實體渲染系統(tǒng) 116
6.6 添加怪獸 119
6.7 碰撞檢測 121
6.8 小結 123
第7章 與怪獸交替前行 124
7.1 讓怪獸隨機游走 124
7.2 在回合制的游戲中移動Entity 127
7.2.1 存儲回合狀態(tài) 127
7.2.2 輪番上陣 128
7.2.3 拆分調度器 129
7.2.4 結束玩家的回合 131
7.3 發(fā)送意圖消息 133
7.3.1 實體還可以當作消息來
使用 133
7.3.2 接收消息并進行移動 133
7.3.3 簡化玩家輸入處理邏輯 135
7.3.4 怪獸的移動消息 137
7.4 小結 137
第8章 生命值和近身戰(zhàn)斗 138
8.1 為實體賦予生命值 138
8.2 添加平視顯示系統(tǒng) 139
8.2.1 添加另一個渲染圖層 139
8.2.2 渲染平視顯示區(qū) 141
8.2.3 為怪獸添加名字 143
8.2.4 為怪獸添加名稱和生命值 143
8.2.5 用懸浮提示來區(qū)分怪獸 145
8.2.6 注冊各個系統(tǒng) 147
8.3 實現(xiàn)戰(zhàn)斗功能 148
8.3.1 刪除碰撞檢測系統(tǒng) 148
8.3.2 表示攻擊意圖 148
8.3.3 玩家主動攻擊 149
8.3.4 創(chuàng)建戰(zhàn)斗系統(tǒng) 151
8.3.5 怪獸的反擊 153
8.3.6 運行各個系統(tǒng) 154
8.4 將等待作為一種策略 155
8.5 小結 157
第9章 勝與負 158
9.1 創(chuàng)造更聰明的怪獸 158
9.1.1 標記新的行為 159
9.1.2 通過trait來支持尋路 160
9.1.3 映射地圖 160
9.1.4 在地圖中導航 161
9.1.5 具備熱成像追蹤能力的怪獸 164
9.1.6 定位玩家角色 165
9.1.7 迪杰斯特拉圖 165
9.1.8 追殺玩家角色 167
9.1.9 縮減玩家角色的生命值 169
9.2 實現(xiàn)游戲結束畫面 170
9.2.1 增加表示游戲結束的回合狀態(tài) 170
9.2.2 檢測游戲何時結束 171
9.2.3 顯示游戲結束畫面 172
9.3 尋找亞拉的護身符 173
9.3.1 構建護身符 173
9.3.2 安放護身符 174
9.3.3 判斷玩家是否勝利 177
9.3.4 恭賀玩家取得勝利 178
9.4 小結 181
第 10章 視場 182
10.1 定義實體的視場 182
10.1.1 圖塊的透明度 183
10.1.2 用HashSet來整理數(shù)據(jù) 183
10.1.3 用組件來存儲可見圖塊的集合 184
10.1.4 計算視場 187
10.1.5 渲染視場 189
10.1.6 隱藏實體 191
10.1.7 更新視場 192
10.2 限制怪獸的視場 193
10.3 添加空間記憶 195
10.3.1 逐步揭示地圖 195
10.3.2 更新地圖 196
10.3.3 渲染記憶中的地圖 196
10.3.4 視場的其他用途 198
10.4 小結 199
第 11章 更具可玩性的地下城 200
11.1 創(chuàng)建trait 200
11.1.1 拆分地圖建造器 201
11.1.2 用MapBuilder來提供地圖 建造服務 201
11.1.3 定義代表架構的trait 202
11.1.4 用參考實現(xiàn)來測試 trait 203
11.1.5 調用空地圖的架構 205
11.1.6 修改房間生成器 206
11.2 用元胞自動機算法來創(chuàng)建地圖 207
11.2.1 元胞自動機理論 207
11.2.2 實現(xiàn)元胞自動機 208
11.2.3 生成一些隨機噪聲 209
11.2.4 計算鄰居的數(shù)量 209
11.2.5 用迭代消除混亂 210
11.2.6 放置玩家角色 211
11.2.7 在沒有房間的情況下生成怪獸 213
11.2.8 建造地圖 214
11.2.9 調用基于元胞自動機的地圖架構 214
11.3 用Drunkard’s Walk算法來創(chuàng)建地圖 215
11.3.1 編寫初始代碼 216
11.3.2 用喝醉的礦工開鑿洞穴 216
11.3.3 評估地圖建造的完成度 217
11.3.4 一直挖到地圖生成完畢 218
11.3.5 激活新的地圖類型 220
11.3.6 隨機挑選架構 220
11.4 在地圖中使用預制區(qū)域 221
11.4.1 手工打造的地下城 221
11.4.2 放置金庫 222
11.5 小結 226
第 12章 地圖的主題風格 227
12.1 為地下城引入主題風格 227
12.1.1 用trait實現(xiàn)地下城主題風格 228
12.1.2 創(chuàng)建一片森林 229
12.2 使用主題風格進行渲染 230
12.2.1 挑選一個主題風格 231
12.2.2 使用選中的主題風格 232
12.2.3 根據(jù)主題風格來渲染地圖 233
12.3 釋放想象力 235
12.4 小結 235
第 13章 背包和道具 236
13.1 設計物品 236
13.1.1 用組件來描述物品 236
13.1.2 生成藥水和地圖 237
13.2 管理背包 239
13.2.1 撿起物品 240
13.2.2 顯示背包物品 241
13.2.3 發(fā)送物品激活消息 243
13.2.4 激活物品 245
13.2.5 應用治療特效 245
13.2.6 迭代物品并應用效果 246
13.2.7 處理療傷事件 247
13.2.8 添加到調度器 248
13.2.9 去掉通過休息恢復生命值 249
13.3 小結 250
第 14章 更深的地下城 251
14.1 為地圖添加樓梯 251
14.1.1 生成并渲染樓梯 251
14.1.2 更新地下城的行走邏輯 252
14.1.3 生成樓梯并替代護身符 253
14.2 追蹤游戲關卡 255
14.2.1 關卡切換狀態(tài) 256
14.2.2 切換關卡 257
14.2.3 找到玩家角色 258
14.2.4 標記需要保留的實體 258
14.2.5 刪除其余的實體 259
14.2.6 將視場設置為臟 259
14.2.7 創(chuàng)建新地圖 260
14.2.8 將玩家角色放置在新地圖中 260
14.2.9 創(chuàng)建亞拉的護身符或者樓梯 260
14.3 在平視顯示區(qū)中顯示當前關卡 261
14.4 小結 262
第 15章 戰(zhàn)斗系統(tǒng)和戰(zhàn)利品 263
15.1 設計數(shù)據(jù)驅動的地下城 263
15.1.1 讀取地下城的數(shù)據(jù) 265
15.1.2 擴展Spawner模塊 266
15.1.3 映射并加載模板 266
15.1.4 用數(shù)據(jù)驅動的方式生成實體 268
15.1.5 新春大掃除 272
15.2 擴展戰(zhàn)斗系統(tǒng) 274
15.2.1 由武器和爪子造成的傷害 274
15.2.2 傷害值組件 276
15.2.3 產(chǎn)生一些傷害 277
15.2.4 探險家不是八爪魚 278
15.3 添加更多寶劍 279
15.4 小結 280
第 16章 *后的步驟和潤色 281
16.1 打包游戲以進行分發(fā) 281
16.1.1 開啟發(fā)布模式和鏈接時
優(yōu)化 281
16.1.2 分發(fā)游戲 282
16.2 開發(fā)屬于自己的地下城探險類游戲 283
16.3 更多內容 283
16.4 小結 284
第三部分 其他資源
附錄A ASCII/Codepage 437對照表 286
附錄B 簡短的游戲設計文檔 287
附錄C Rust語法速查表 294
RUST游戲開發(fā)實戰(zhàn) 作者簡介
赫伯特·沃爾弗森(Herbert Wolverson)是一名非常有經(jīng)驗的程序員,主要從事游戲開發(fā)工作。他在游戲開發(fā)社區(qū)非?;钴S,為多個開源項目做過貢獻。
- >
隨園食單
- >
煙與鏡
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)
- >
巴金-再思錄
- >
新文學天穹兩巨星--魯迅與胡適/紅燭學術叢書(紅燭學術叢書)
- >
伊索寓言-世界文學名著典藏-全譯本
- >
我與地壇
- >
李白與唐代文化