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