具体描述
Master the Unity Game Engine to Design and Develop Games for Web, Mobile, Windows, macOS, and More!
If you want to design and develop games, there’s no substitute for strong hands-on experience with modern techniques and tools—and that is exactly what this book provides. The first edition was frequently the top-selling game design book on Amazon, with more than 70% of the reviews being 5 stars. In a testament to the iterative process of design, this new edition includes hundreds of improvements throughout the text, all designed to make the book easier to understand and even more useful. This book was written with Unity 2017; the book.prototools.net website will cover changes for later versions of the software.
Award-winning game designer and professor Jeremy Gibson Bond has spent more than a decade teaching game design and building great games. In that time, his most successful students have been those who combine knowledge of three critical disciplines: game design theory, rapid iterative prototyping, and practical programming. In this book, Bond distills the most important aspects of all three disciplines into one place.
Part I: Game Design and Paper Prototyping
• The Layered Tetrad framework: a synthesis of 50 years of game design theory
• Proven practices for brainstorming and refining game designs through the iterative process of design
• Methods and tools to manage game projects and small teams
• Processes to make playtesting and feedback easier
Part II: Digital Prototyping with Unity and C#
• Chapters that guide you through learning C# the right way
• Instruction that takes you from no prior programming knowledge through object-oriented programming
• Deep exploration of Unity, today’s most popular game engine on both macOS and Windows
• Methods for understanding and debugging code issues you encounter
Part III: Game Prototype Examples and Tutorials
• In-depth tutorials for seven different game prototypes, including a simple action game, a space shooter, a solitaire card game, a word game, and a top-down adventure
• Instructions to compile these games for PC, web, or any of the dozens of other release platforms supported by Unity
• Improved structure and layout that makes the steps of each tutorial easier to follow
• A completely new Dungeon Delver prototype not present in the first edition
作者简介
Jeremy Gibson is a lecturer teaching computer game design for the Electrical Engineering and Computer Science department at the University of Michigan Ann Arbor and is the founder of ExNinja Interactive, LLC. From 2009 to 2013, he was an Assistant Professor teaching game design and protyping for the Interactive Media and Games Division of the University of Southern California’s School of Cinematic Arts, which was the number one game design school in North America throughout his tenure there. Jeremy serves the IndieCade independent game festival as the Chair for Education and Advancement, where he is responsible for the IndieXchange and GameU conference tracks, and he has spoken at the Game Developers Conference every year since 2009.
Jeremy earned a Master of Entertainment Technology degree from Carnegie Mellon University’s Entertainment Technology Center in 2007 and a Bachelor of Science degree in Radio, Television, and Film from the University of Texas at Austin in 1999. Jeremy has worked as a programmer and prototyper for companies such as Human Code and frog design, has taught classes for Great Northern Way Campus (in Vancouver, BC), Texas State University, the Art Institute of Pittsburgh, Austin Community College, and the University of Texas at Austin, and has worked for Walt Disney Imagineering, Maxis, and Electronic Arts/Pogo.com, among others. While in graduate school, his team created the game Skyrates, which won the Silver Gleemax Award at the 2008 Independent Games Festival. Jeremy also apparently has the distinction of being the first person to ever teach game design in Costa Rica.
目录信息
Part I Game Design and Paper Prototyping 1
1 Thinking Like a Designer 3
You Are a Game Designer 4
Bartok: A Game Exercise 4
The Definition of Game 10
Summary 17
2 Game Analysis Frameworks 19
Common Frameworks for Ludology 20
MDA: Mechanics, Dynamics, and Aesthetics 20
Formal, Dramatic, and Dynamic Elements 24
The Elemental Tetrad 27
Summary 29
3 The Layered Tetrad 31
The Inscribed Layer 32
The Dynamic Layer 33
The Cultural Layer 34
The Responsibility of the Designer 36
Summary 37
4 The Inscribed Layer 39
Inscribed Mechanics 40
Inscribed Aesthetics 46
Inscribed Narrative 49
Inscribed Technology 58
Summary 59
5 The Dynamic Layer 61
The Role of the Player 62
Emergence 63
Dynamic Mechanics 64
Dynamic Aesthetics 70
Dynamic Narrative 75
Dynamic Technology 77
Summary 77
6 The Cultural Layer 79
Beyond Play 80
Cultural Mechanics 81
Cultural Aesthetics 82
Cultural Narrative 83
Cultural Technology 84
Authorized Transmedia Are Not in the Cultural Layer 85
The Cultural Impact of a Game 86
Summary 87
7 Acting Like a Designer 89
Iterative Design 90
Innovation 97
Brainstorming and Ideation 98
Changing Your Mind 101
Scoping! 103
Summary 104
8 Design Goals 105
Design Goals: An Incomplete List 106
Designer-Centric Goals 106
Player-Centric Goals 109
Summary 124
9 Paper Prototyping 125
The Benefits of Paper Prototypes 126
Paper Prototyping Tools 127
An Example of a Paper Prototype 129
Best Uses for Paper Prototyping 138
Poor Uses for Paper Prototyping 139
Summary 140
10 Game Testing 141
Why Playtest? 142
Being a Great Playtester Yourself 142
The Circles of Playtesters 143
Methods of Playtesting 146
Other Important Types of Testing 152
Summary 153
11 Math and Game Balance 155
The Meaning of Game Balance 156
Installing Apache OpenOffice Calc 156
Examining Dice Probability with Calc 157
The Math of Probability 165
Randomizer Technologies in Paper Games 170
Weighted Distributions 173
Permutations 175
Positive and Negative Feedback 176
Using Calc to Balance Weapons 177
Summary 183
12 Puzzle Design 185
Puzzles Are Almost Everywhere 186
Scott Kim on Puzzle Design 186
Puzzle Examples in Action Games 193
Summary 195
13 Guiding the Player 197
Direct Guidance 198
Indirect Guidance 200
Teaching New Skills and Concepts 207
Summary 210
14 The Digital Game Industry 211
About the Game Industry 212
Game Education 215
Getting into the Industry 217
Don’t Wait to Start Making Games! 221
Summary 222
Part II Digital Prototyping 223
15 Thinking in Digital Systems 225
Systems Thinking in Board Games 226
An Exercise in Simple Instructions 226
Game Analysis: Apple Picker 229
Summary 234
16 Introducing Our Development Environment: Unity 235
Downloading Unity 236
Introducing Our Development Environment 237
Running Unity for the First Time 241
Setting Up the Unity Window Layout 246
Learning Your Way Around Unity 251
Summary 251
17 Introducing Our Language: C# 253
Understanding the Features of C# 254
Reading and Understanding C# Syntax 259
Summary 262
18 Hello World: Your First Program 263
Creating a New Project 264
Making a New C# Script 266
Making Things More Interesting 271
Summary 279
19 Variables and Components 281
Introducing Variables 282
Strongly Typed Variables in C# 282
Important C# Variable Types 283
The Scope of Variables 286
Naming Conventions 286
Important Unity Variable Types 288
Unity GameObjects and Components 294
Summary 297
20 Boolean Operations and Conditionals 299
Booleans 300
Comparison Operators 303
Conditional Statements 307
Summary 313
21 Loops 315
Types of Loops 316
Set Up a Project 316
while Loops 316
do...while Loops 319
for Loops 320
foreach Loops 322
Jump Statements within Loops 322
Summary 325
22 Lists and Arrays 327
C# Collections 328
List 328
Array 333
Multidimensional Arrays 337
Jagged Arrays 340
Whether to Use Array or List 344
Summary 344
Summary Exercise 344
Moving Forward 347
23 Functions and Parameters 349
Set Up the Function Examples Project 350
Definition of a Function 350
Function Parameters and Arguments 353
Returning Values 354
Proper Function Names 356
When Should You Use Functions? 356
Function Overloading 358
Optional Parameters 359
The params Keyword 359
Recursive Functions 361
Summary 362
24 Debugging 363
Getting Started with Debugging 364
Stepping Through Code with the Debugger 369
Summary 377
25 Classes 379
Understanding Classes 380
Class Inheritance 387
Summary 390
26 Object-Oriented Thinking 391
The Object-Oriented Metaphor 392
An Object-Oriented Boids Implementation 394
Summary 403
27 The Agile Mentality 405
The Manifesto for Agile Software Development 406
Scrum Methodology 407
Creating Your Own Burndown Charts 416
Summary 416
Part III Game Prototype Examples and Tutorials 417
28 Prototype 1: Apple Picker 419
The Purpose of a Digital Prototype 420
Preparing 421
Coding the Apple Picker Prototype 428
GUI and Game Management 440
Summary 448
Next Steps 448
29 Prototype 2: Mission Demolition 449
Getting Started: Prototype 2 450
Game Prototype Concept 450
Art Assets 451
Coding the Prototype 456
Summary 485
Next Steps 485
30 Prototype 3: Space SHMUP 487
Getting Started: Prototype 3 488
Setting the Scene 490
Making the Hero Ship 491
Adding Some Enemies 504
Spawning Enemies at Random 509
Setting Tags, Layers, and Physics 510
Making the Enemies Damage the Player 513
Restarting the Game 518
Shooting (Finally) 519
Adding Power-Ups 531
Resolving Race Conditions in Code 538
Making Enemies Drop Power-Ups 541
Programming Other Enemies 543
Adding Particle Effects and Background 556
Summary 558
Next Steps 558
31 Prototype 4: Prospector Solitaire 561
Getting Started: Prototype 4 562
Build Settings 562
Importing Images as Sprites 564
Constructing Cards from Sprites 566
The Prospector Game 583
Implementing Prospector in Code 585
Adding Scoring to Prospector 604
Summary 619
Next Steps 620
32 Prototype 5: Bartok 621
Getting Started: Prototype 5 622
Build Settings 623
Coding Bartok 624
Summary 655
Next Steps 655
33 Prototype 6: Word Game 657
Getting Started: Word Game Prototype 658
About the Word Game 658
Parsing the Word List 660
Setting Up the Game 665
Laying Out the Screen 671
Adding Interactivity 680
Adding Scoring 684
Adding Animation 687
Adding Color 690
Summary 692
Next Steps 692
34 Prototype 7: QuickSnap 695
Getting Started: QuickSnap Prototype 696
Building the Scene 697
Coding the Game 706
Summary 725
Next Steps 726
35 Prototype 8: Omega Mage 727
Getting Started: Omega Mage Prototype 728
Building the Scene 730
The Mage Character 735
Mouse Interaction 737
Movement 741
The Inventory and Selecting Elements 747
Casting the Fire Ground Spell 754
Changing Rooms 764
Spawning Enemies 768
Abstracting the Enemy Interface 782
Making an EnemyFactory 785
Summary 789
Next Steps 789
Thanks! 789
Part IV Appendices 791
A Standard Project Setup Procedure 793
B Useful Concepts 799
C# and Unity Coding Concepts 801
Math Concepts 822
Interpolation 831
Roleplaying Games 846
User Interface Concepts 848
C Online Reference 851
Tutorials 852
Unity Resources 852
Programming 853
Searching Tips 854
Finding Assets 854
Educational Software Discounts 855
Index 857
· · · · · · (收起)
读后感
用户评价
阅读这本书的过程,感觉就像是进入了一个由一位经验极其丰富且富有洞察力的导师带领的沉浸式工作坊。作者的叙事风格异常平实,没有故作高深的行业术语堆砌,而是采用了一种近乎手把手的教学方式,将那些原本听起来高不可攀的“设计哲学”和“工程实践”拆解成了可执行的、可量化的步骤。比如,当他在探讨“核心乐趣循环”时,他不是简单地抛出一个理论框架,而是会引用大量不同类型游戏(从独立小品到商业大作)的实际案例进行对比分析,深入剖析为何某些设计能抓住玩家心智,而另一些则迅速被遗忘。文字的力量在于其精准性,这本书的遣词造句精准有力,没有一句废话,每一个段落都有效地推进了知识的传递链条。这种扎实的教学方法,使得原本只停留在理论层面的思考,能够迅速落地到实际的操作层面,让人在读完某一章节后,立刻产生动手实践的强烈欲望,这才是优秀技术书籍的真正魅力所在。
阅读体验上,这本书最突出的优点在于其令人惊叹的“可操作性验证”。作者似乎深知纸面知识的局限性,因此在几乎每一个关键理论点之后,都会附带一个清晰的“实践任务”或“思考提示”。这些提示不是那种空泛的激励口号,而是具体的、可以立即在自己电脑上尝试的小练习,例如“请设计一个只用三个按键就能表达‘犹豫’这一情绪的交互系统”。这种将理论与实践紧密耦合的编排方式,使得学习过程不再是被动的接收信息,而是一个主动的探索与建构的过程。读完之后,我的笔记本上布满了密密麻麻的笔记和草图,这本书真正做到了“引导思考”而非“提供答案”,它激活了我大脑中关于游戏机制设计的潜在连接点,这种被激发出的创造力的满足感,远超预期的收获。
这本书的结构安排体现了对学习曲线的深刻理解。它并非简单地将所有知识点一字排开,而是精心设计了一条由浅入深的螺旋上升路径。开篇部分建立起坚实的概念基础,确保即便是零基础的读者也能跟上节奏,对“游戏性”的本质形成初步共识。随后,章节开始逐步引入更复杂的交互模型和迭代思维。最让我印象深刻的是它对“失败”和“快速原型”的重视程度,作者并没有美化开发过程中的坎坷,反而将无数次失败的尝试视为宝贵的经验财富,详细阐述了如何在短时间内构建一个“能玩但粗糙”的版本,以便尽早收集反馈。这种强调“行动先于完美”的理念,对于许多在前期犹豫不决、期望一步到位的新手来说,无疑是一剂强心针。它教会你的不只是“如何做”,更重要的是“如何开始”,这种对实践精神的推崇,使得整本书充满了积极向上的驱动力。
从一个资深行业人士的角度来看,这本书的价值在于其对“跨学科协作”的细致阐述。很多市面上的书籍往往局限于纯粹的编程或纯粹的美术设计,但这款作品却出色地搭建了设计、技术实现与用户体验之间的桥梁。作者在描述某些功能实现时,会不自觉地从策划的角度去考量资源限制,从程序员的角度去评估实现复杂度,这种多维度的视角贯穿始终。尤其是关于需求文档(GDD)和敏捷开发流程的章节,讲解得非常接地气,它清晰地勾勒出在一个团队环境中,设计概念是如何被准确、高效地传达给不同职能的同事的。它不仅仅是一本教你做单个模块的书,更像是提供了一套管理复杂项目、协调多方资源的“通用语言”和“标准流程”,对于未来希望进入团队协作环境的个体学习者来说,这是无价之宝。
这本书的装帧设计简直是一场视觉盛宴,封面采用了哑光质感,触感细腻,那种深邃的蓝色调中点缀着一些像素化的几何图形,立刻让人联想到数字世界的构建与解构,拿在手里就有一种沉甸甸的、专业书籍的质感。内页的纸张选择也相当考究,米白色调有效减轻了长时间阅读带来的视觉疲劳,字体的排版更是体现了出版方对细节的极致追求。标题和章节的层级划分清晰明了,图文的配比拿捏得恰到好处,即便是复杂的流程图或概念图,也能在作者精妙的布局下变得直观易懂。我尤其欣赏那些穿插在正文中的“设计札记”或“开发者心声”小框,它们像是设计师在灵感迸发时随手写下的草稿,充满了未经修饰的真实感和急切想要分享的冲动,这种设计上的用心,无疑为这本书增添了极高的收藏价值,让人愿意把它放在书架最显眼的位置,不仅仅是内容,光是这份对“作品”本身的敬意,就值得称赞。翻阅这本书的过程,就像在拆解一件精密的仪器,每一个环节的布置都透露出一种匠心独到的美学考量。