本書(shū)重點(diǎn)介紹2D游戲開(kāi)發(fā)的整個(gè)過(guò)程。針對(duì)每個(gè)步驟背后的理論,作者提供了充分的描述和解釋,讀者可以通過(guò)大量的步驟指導(dǎo)和理論講解來(lái)掌握2D游戲開(kāi)發(fā),熟練運(yùn)用GIMP、Audacity和MuseScore等工具來(lái)制作游戲中會(huì)用到的預(yù)制件、相機(jī)、動(dòng)畫(huà)、角色控制器、燈光和聲音等。
通過(guò)本書(shū),你將學(xué)會(huì)使用Unity來(lái)開(kāi)發(fā)2D游戲!禪nity 2D游戲開(kāi)發(fā)》介紹了實(shí)操、循序漸進(jìn)的方法及其背后的理論,涵蓋Unity 2D游戲開(kāi)發(fā)的方方面面。除了Unity以外,還要介紹使用Blender和GIMP創(chuàng)建圖形、使用Audacity制作音效、使用MuseScore創(chuàng)作音樂(lè)以及使用SourceTree進(jìn)行版本控制。所有這些軟件可以免費(fèi)使用,大部分都是開(kāi)源的。如果認(rèn)真閱讀這本書(shū),你可以學(xué)到很多東西。你將為自己動(dòng)手制作原創(chuàng)游戲做好充分的準(zhǔn)備,無(wú)論你是獨(dú)立開(kāi)發(fā)者、小團(tuán)隊(duì)的成員或是大型游戲公司的員工。本書(shū)分為兩部分,第Ⅰ部分探討2D游戲開(kāi)發(fā)需要用到的工具和理論。作為起步,你將制作幾個(gè)小游戲以及一個(gè)較大型的游戲。然后,在第Ⅱ部分中,你將構(gòu)建一個(gè)2D游戲,它具有商業(yè)游戲中許多典型的特性。
通過(guò)本書(shū),你將體會(huì)到游戲開(kāi)發(fā)的樂(lè)趣和偶爾的挫折:第一次讓游戲中的角色動(dòng)起來(lái)那種美妙的感覺(jué);本以為游戲能夠運(yùn)行卻發(fā)現(xiàn)它無(wú)法運(yùn)行且對(duì)原因毫無(wú)了解的那種痛苦。它們都是游戲開(kāi)發(fā)過(guò)程的重要組成部分。
在前兩章中,將帶領(lǐng)大家深入地復(fù)習(xí)基礎(chǔ):數(shù)學(xué)和編碼。大家應(yīng)該已經(jīng)具備代數(shù)、幾何和三角學(xué)的一些知識(shí)。本書(shū)雖然不需要微積分和更高級(jí)的大學(xué)水平的數(shù)學(xué)知識(shí),但它們對(duì)高級(jí)游戲開(kāi)發(fā)是很有幫助的。應(yīng)該至少有一些編碼經(jīng)驗(yàn),最好是懂得C語(yǔ)言。如果對(duì)編碼一無(wú)所知,仍然可以跟著本書(shū)學(xué)習(xí)。然而,提前學(xué)習(xí)一些編碼知識(shí)會(huì)使你受益良多。
在隨后的章節(jié)中,你將深入了解如何為游戲創(chuàng)造美術(shù)資源、音樂(lè)和音效。當(dāng)然,還要學(xué)習(xí)如何使用Unity將所有的美術(shù)資源、音樂(lè)和音效整合在一起,最后做成游戲。
第Ⅱ部分側(cè)重于制作一個(gè)更大的2D游戲。你將從中學(xué)習(xí)如何用C#編碼,如何使用Unity,以及如何創(chuàng)建游戲角色、控制游戲角色、創(chuàng)建GUI、調(diào)試和測(cè)試等。
強(qiáng)烈建議在閱讀本書(shū)的過(guò)程中按步驟構(gòu)建游戲。這是最棒的學(xué)習(xí)方式。事實(shí)上,這也是唯一的方式。所有的代碼和游戲資源都可以在franzlanzinger.com下載,所以這里沒(méi)有強(qiáng)行要大家輸入代碼或繪制任何東西,但如果跟著本書(shū)“從零開(kāi)始”構(gòu)建一切,可以學(xué)到更多。當(dāng)然,總可以另辟蹊徑并做一些不同于書(shū)中描述的的事情。這是自己制作游戲時(shí)一個(gè)巨大的優(yōu)勢(shì)。這樣,就能完全掌控自己的游戲了。隨著知識(shí)和技能水平的提升,你將很快準(zhǔn)備好制作下一個(gè)原創(chuàng)的熱門(mén)游戲。
游戲開(kāi)發(fā)是一個(gè)艱巨的、激動(dòng)人心的且回報(bào)豐厚的任務(wù)。需要學(xué)習(xí)的東西很多,而且有些問(wèn)題一開(kāi)始可能看起來(lái)很困難。不要讓這些問(wèn)題阻止你前進(jìn)的步伐!游戲開(kāi)發(fā)相當(dāng)有趣且讓人感到滿足,勇敢踏出第一步,動(dòng)手制作自己游戲吧!
排版約定
從第1章開(kāi)始,你就會(huì)按照步驟的指示進(jìn)行操作。請(qǐng)注意,以下對(duì)步驟說(shuō)明的排版約定旨在幫助你更輕松地跟著完成操作。
步驟編號(hào)粗體,例如<步驟23>。步驟按順序編號(hào),每一節(jié)都重新開(kāi)始計(jì)數(shù)。
特殊的功能鍵將用尖括號(hào)括起來(lái),例如、、、<回車(chē)鍵>或<空格鍵>。
小鍵盤(pán)中的鍵將顯示為3或+。
菜單和按鈕選擇加粗,可能會(huì)用一個(gè)連字符隔開(kāi),如文件 – 保存。破折號(hào)表示子菜單的選項(xiàng)或彈出的窗口名稱。
屏幕中顯示的文本可能會(huì)以粗體、不同的字體或者是帶有引號(hào)的方式表示,這取決于文本的內(nèi)容,例如Exit、Exit或“Exit”。
C#代碼一般用較小的字體顯示,并帶有突出顯示的語(yǔ)法顏色。本書(shū)中的文字顏色不一定與電腦屏幕上的文字顏色一致。
面對(duì)篇幅較大的文稿,作者我很難始終如一地遵循這些約定,所以我對(duì)自己偶爾打破了這些慣例表示歉意。遵循本書(shū)的步驟進(jìn)行操作時(shí),需要格外留意細(xì)節(jié);ㄐ⿻r(shí)間,仔細(xì)檢查復(fù)雜的步驟,不要跳過(guò)任何一步。在這一過(guò)程中,你可能會(huì)犯一兩個(gè)錯(cuò)誤,所以需要準(zhǔn)備好出現(xiàn)問(wèn)題時(shí)及時(shí)就從之前保存的項(xiàng)目文件重新開(kāi)始。
目 錄
第Ⅰ部分 游戲開(kāi)發(fā)基礎(chǔ)
第1章 第一步 2
1.1 Visual Studio概述 3
1.2 什么是C# 5
1.3 數(shù)字 6
1.4 英寸、浮點(diǎn)數(shù)和雙倍數(shù) 6
1.5 隨機(jī)數(shù) 9
1.6 猜數(shù)字游戲 10
1.7 Mac用戶注意事項(xiàng) 14
1.8 安裝Unity 14
第2章 Unity中的C#編程 16
2.1 Unity中的默認(rèn)C#腳本 16
2.2 數(shù)字?jǐn)?shù)據(jù)類型 19
2.3 數(shù)學(xué)運(yùn)算符 24
2.4 位運(yùn)算符 28
2.5 數(shù)學(xué)函數(shù) 29
2.6 更多C#數(shù)據(jù)類型 31
2.7 選擇語(yǔ)句 34
2.8 循環(huán)語(yǔ)句 36
2.9 類和方法 38
2.10 C#編程風(fēng)格 40
第3章 用GIMP和Unity制作2D圖形 41
3.1 GIMP簡(jiǎn)介 41
3.2 《彈跳甜甜圈》的游戲設(shè)計(jì) 46
3.3 在GIMP中創(chuàng)建一個(gè)木板 47
3.4 Unity中的三塊木板和一個(gè)甜甜圈 48
第4章 用Blender和Unity制作2D圖形 53
4.1 Blender簡(jiǎn)介 53
4.2 在Blender中創(chuàng)建甜甜圈盒 54
4.3 從Blender導(dǎo)出到Unity 62
4.4 《彈跳甜甜圈》原型:第一個(gè)游戲玩法 65
第5章 Unity界面 67
5.1 Unity編輯器 67
5.2 場(chǎng)景視圖 72
5.3 層級(jí)窗口 74
5.4 項(xiàng)目窗口 76
5.5 檢查器窗口 77
5.5 渲染:材質(zhì)和著色器 78
5.6 燈光 80
5.7 碰撞:甜甜圈與球體 81
5.8 攝像機(jī) 81
第6章 《彈跳甜甜圈》的2號(hào)原型 85
6.1 標(biāo)題界面 85
6.2 計(jì)分 91
6.3 游戲結(jié)束 96
6.4 改進(jìn)甜甜圈盒子的碰撞 101
6.5 預(yù)制件 102
6.6 重構(gòu) 103
6.7 第2關(guān) 106
6.8 5個(gè)關(guān)卡 111
6.9 發(fā)布:《彈跳甜甜圈》的2號(hào)原型 119
第7章 用Audacity制作音效 123
7.1 游戲中的音頻 123
7.2 安裝Audacity 123
7.3 用Audacity制作音效 124
7.4 錄制音效 127
7.5 使用互聯(lián)網(wǎng)上的音效 129
7.6 Unity中的音效編程 130
第8章 使用MuseScore創(chuàng)作音樂(lè) 135
8.1 電子游戲中的音樂(lè) 135
8.2 安裝Musecore 136
8.3 創(chuàng)作自己的樂(lè)譜(選讀) 136
8.4 使用第三方音樂(lè) 141
8.5 將音樂(lè)導(dǎo)入U(xiǎn)nity 142
第9章 《彈跳甜甜圈1.0》 144
9.1 BUG修復(fù) 144
9.2 擱置還是繼續(xù) 146
9.3 發(fā)布:《彈跳甜甜圈1.0》 147
9.4 事后分析 147
第Ⅱ部分 2D游戲開(kāi)發(fā):從概念到發(fā)布
第10章 Unity中的2D工具 151
10.1 Unity 2D設(shè)置 151
10.2 精靈 154
10.3 瓦片 156
10.4 2D精靈序列集合動(dòng)畫(huà) 162
10.5 2D骨骼動(dòng)畫(huà)* 166
第11章 設(shè)計(jì)2D迷宮游戲 167
11.1 著名的迷宮游戲 168
11.2 創(chuàng)建項(xiàng)目 168
11.3 玩家角色:Dottima Dot 169
11.4 迷宮和背景 172
11.5 劇情 172
11.6 敵人:機(jī)器人和問(wèn)號(hào) 173
11.7 游戲設(shè)計(jì)文檔 174
第12章 建立迷宮的第1關(guān) 176
12.1 用GIMP為第1關(guān)制作瓦片 176
12.2 Unity中的迷宮布局 178
第13章 源代碼控制 183
13.1 安裝Sourcetree、Git和Bitbucket 183
13.2 用Sourcetree和Git進(jìn)行源代碼控制 184
13.3 在bitbucket上的存儲(chǔ)庫(kù) 187
13.4 在Unity中使用Sourcetree 188
第14章 菜單 192
14.1 源控制設(shè)置 192
14.2 主菜單布局 193
14.3 設(shè)置菜單布局 199
14.4 使主菜單運(yùn)作 202
14.5 使設(shè)置菜單運(yùn)作 204
第15章 為玩家角色制作動(dòng)畫(huà) 209
15.1 簡(jiǎn)單的玩家運(yùn)動(dòng) 209
15.2 墻面碰撞 212
15.3 閑置動(dòng)畫(huà) 213
15.4 運(yùn)動(dòng)動(dòng)畫(huà) 216
15.5 游戲中的動(dòng)畫(huà) 220
第16章 使用Blender制作機(jī)器人精靈 224
16.1 在Blender中建立盒子模型 224
16.2 Blender中的照明 234
16.3 3D視圖 236
16.4 Blender基本動(dòng)畫(huà)教程 241
16.5 機(jī)器人擺動(dòng)手臂的動(dòng)畫(huà) 244
16.6 機(jī)器人行走的動(dòng)畫(huà) 251
第17章 用Blender制作帶有紋理的敵人 260
17.1 尖刺球 260
17.2 Blender中的紋理 266
17.3 障礙物 268
17.4 問(wèn)號(hào) 273
第18章 敵人的運(yùn)動(dòng)和碰撞 280
18.1 DotRobot的運(yùn)動(dòng)和碰撞 280
18.2 尖刺球的運(yùn)動(dòng)和碰撞 286
18.3 障礙物和問(wèn)號(hào)的碰撞 290
第19章 武器和拋射物 293
19.1 箭矢 293
19.2 射箭 300
19.3 炸彈 308
19.4 投擲炸彈 314
19.5 重新審視箭矢 320
19.6 Unity中的粒子系統(tǒng) 322
19.7 爆炸和引信的火花效果 323
第20章 生命、關(guān)卡設(shè)計(jì)和經(jīng)典計(jì)分系統(tǒng) 332
20.1 Unity的GUI 332
20.2 生命 333
20.3 關(guān)卡 339
20.4 計(jì)分 344
20.5 關(guān)卡設(shè)計(jì) 348
第21章 DotGame的音效和音樂(lè) 353
21.1 錄制語(yǔ)音 353
21.2 網(wǎng)上的更多免費(fèi)音效 354
21.3 在Audacity中制作更多音效 354
21.4 為Dotgame的音效編碼 356
21.5 Dotgame的背景音樂(lè) 363
第22章 過(guò)場(chǎng)動(dòng)畫(huà) 365
22.1 帶有動(dòng)畫(huà)的標(biāo)題場(chǎng)景 365
22.2 更多過(guò)場(chǎng)動(dòng)畫(huà) 368
第23章 測(cè)試 369
23.1 電子游戲測(cè)試簡(jiǎn)史 369
23.2 開(kāi)發(fā)過(guò)程中的測(cè)試 370
23.3 發(fā)布前的測(cè)試 370
第24章 發(fā)布 372
24.1 發(fā)布Unity游戲 372
24.2 本地化 374
24.3 游戲即服務(wù) 374
24.4 終點(diǎn)還是起點(diǎn)呢 375
附錄1 游戲開(kāi)發(fā)詞匯表 376
附錄2 游戲開(kāi)發(fā)者守則 382
附錄3 游戲開(kāi)發(fā)檢查清單 383
附錄4 法律 385
附錄5 本書(shū)的C#編碼標(biāo)準(zhǔn) 387