HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
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
Please visit the companion site for this book at http://book.prototools.net. This site includes all the files referenced in the chapters, lecturer notes, starter packages, playable examples of some of the games, updates, and more.
Foreword by Richard Lemarchand xxiii
Preface xxvii
PART I: GAME DESIGN AND PAPER PROTOTYPING 1
Chapter 1 Thinking Like a Designer 3
You Are a Game Designer 4
Bartok: A Game Exercise 4
The Definition of Game 10
Summary 17
Chapter 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 28
Summary 29
Chapter 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
Chapter 4 The Inscribed Layer 39
Inscribed Mechanics 40
Inscribed Aesthetics 47
Inscribed Narrative 49
Inscribed Technology 59
Summary 60
Chapter 5 The Dynamic Layer 61
The Role of the Player 62
Emergence 63
Dynamic Mechanics 64
Dynamic Aesthetics 70
Dynamic Narrative 75
Dynamic Technology 78
Summary 78
Chapter 6 The Cultural Layer 79
Beyond Play 80
Cultural Mechanics 81
Cultural Aesthetics 82
Cultural Narrative 83
Cultural Technology 84
Authorized Transmedia Are Not Part of the Cultural Layer 85
The Cultural Impact of a Game 86
Summary 89
Chapter 7 Acting Like a Designer 91
Iterative Design 92
Innovation 98
Brainstorming and Ideation 99
Changing Your Mind 103
Scoping 105
Summary 106
Chapter 8 Design Goals 107
Design Goals: An Incomplete List 108
Designer-Centric Goals 108
Player-Centric Goals 111
Summary 127
Chapter 9 Paper Prototyping 129
The Benefits of Paper Prototypes 130
Paper Prototyping Tools 131
Paper Prototyping for Interfaces 133
An Example Paper Prototype 134
Best Uses for Paper Prototyping 139
Poor Uses for Paper Prototyping 140
Summary 140
Chapter 10 Game Testing 143
Why Playtest? 144
Being a Great Playtester Yourself 144
The Circles of Playtesters 145
Methods of Playtesting 148
Other Important Types of Testing 156
Summary 157
Chapter 11 Math and Game Balance 159
The Meaning of Game Balance 160
The Importance of Spreadsheets 160
The Choice of Google Sheets for This Book 161
Examining Dice Probability with Sheets 162
The Math of Probability 174
Randomizer Technologies in Paper Games 178
Weighted Distributions 182
Permutations 184
Using Sheets to Balance Weapons 186
Positive and Negative Feedback 194
Summary 194
Chapter 12 Guiding the Player 195
Direct Guidance 196
Four Methods of Direct Guidance 197
Indirect Guidance 198
Seven Methods of Indirect Guidance 198
Teaching New Skills and Concepts 206
Summary 209
Chapter 13 Puzzle Design 211
Scott Kim on Puzzle Design 212
Puzzle Examples in Action Games 219
Summary 221
Chapter 14 The Agile Mentality 223
The Manifesto for Agile Software Development 224
Scrum Methodology 225
Burndown Chart Example 228
Creating Your Own Burndown Charts 238
Summary 238
Chapter 15 The Digital Game Industry 239
About the Game Industry 240
Game Education 243
Getting Into the Industry 246
Don't Wait to Start Making Games! 250
Summary 253
PART II: DIGITAL PROTOTYPING 255
Chapter 16 Thinking in Digital Systems 257
Systems Thinking in Board Games 258
An Exercise in Simple Instructions 259
Game Analysis: Apple Picker 261
Summary 267
Chapter 17 Introducing the Unity Development Environment 269
Downloading Unity 270
Introducing Our Development Environment 273
Launching Unity for the First Time 277
The Example Project 278
Setting Up the Unity Window Layout 278
Learning Your Way Around Unity 283
Summary 283
Chapter 18 Introducing Our Language: C# 285
Understanding the Features of C# 286
Reading and Understanding C# Syntax 292
Summary 294
Chapter 19 Hello World: Your First Program 295
Creating a New Project 296
Making a New C# Script 298
Making Things More Interesting 303
Summary 312
Chapter 20 Variables and Components 313
Introducing Variables 314
Strongly Typed Variables in C# 314
Important C# Variable Types 316
The Scope of Variables 319
Naming Conventions 319
Important Unity Variable Types 320
Unity GameObjects and Components 327
Summary 330
Chapter 21 Boolean Operations and Conditionals 331
Booleans 332
Comparison Operators 336
Conditional Statements 339
Summary 345
Chapter 22 Loops 347
Types of Loops 348
Set Up a Project 348
while Loops 348
do...while Loops 352
for Loops 352
foreach Loops 354
Jump Statements within Loops 355
Summary 357
Chapter 23 Collections in C# 359
C# Collections 360
Using Generic Collections 362
List 363
Dictionary 368
Array 371
Multidimensional Arrays 376
Jagged Arrays 379
Whether to Use Array or List 383
Summary 383
Chapter 24 Functions and Parameters 387
Setting Up the Function Examples Project 388
Definition of a Function 388
Function Parameters and Arguments 391
Returning Values 393
Proper Function Names 395
Why Use Functions? 395
Function Overloading 397
Optional Parameters 398
The params Keyword 399
Recursive Functions 400
Summary 401
Chapter 25 Debugging 403
Getting Started with Debugging 404
Stepping Through Code with the Debugger 410
Summary 418
Chapter 26 Classes 419
Understanding Classes 420
Class Inheritance 428
Summary 431
Chapter 27 Object-Oriented Thinking 433
The Object-Oriented Metaphor 434
An Object-Oriented Boids Implementation 436
Summary 455
PART III: GAME PROTOTYPE EXAMPLES AND TUTORIALS 457
Chapter 28 Prototype 1: Apple Picker 459
The Purpose of a Digital Prototype 460
Preparing 461
Coding the Apple Picker Prototype 470
GUI and Game Management 484
Summary 494
Chapter 29 Prototype 2: Mission Demolition 495
Getting Started: Prototype 2 496
Game Prototype Concept 496
Art Assets 497
Coding the Prototype 502
Summary 544
Chapter 30 Prototype 3: Space SHMUP 545
Getting Started: Prototype 3 546
Setting the Scene 548
Making the Hero Ship 549
Adding Some Enemies 557
Spawning Enemies at Random 566
Setting Tags, Layers, and Physics 568
Making the Enemies Damage the Player 571
Restarting the Game 575
Shooting (Finally) 577
Summary 581
Chapter 31 Prototype 3.5: Space SHMUP Plus 583
Getting Started: Prototype 3.5 584
Programming Other Enemies 584
Shooting Revisited 592
Showing Enemy Damage 609
Adding Power-Ups and Boosting Weapons 612
Making Enemies Drop Power-Ups 622
Enemy_4—A More Complex Enemy 625
Adding a Scrolling Starfield Background 634
Summary 636
Chapter 32 Prototype 4: Prospector Solitaire 639
Getting Started: Prototype 4 640
Build Settings 640
Importing Images as Sprites 642
Constructing Cards from Sprites 644
The Prospector Game 661
Implementing Prospector in Code 664
Implementing Game Logic 677
Adding Scoring to Prospector 685
Adding Some Art to the Game 698
Summary 704
Chapter 33 Prototype 5: Bartok 707
Getting Started: Prototype 5 708
Build Settings 710
Coding Bartok 711
Building for WebGL 750
Summary 752
Chapter 34 Prototype 6: Word Game 753
Getting Started: Prototype 6 754
About the Word Game 754
Parsing the Word List 756
Setting Up the Game 763
Laying Out the Screen 769
Adding Interactivity 778
Adding Scoring 782
Adding Animation to Letters 785
Adding Color 788
Summary 790
Chapter 35 Prototype 7: Dungeon Delver 793
Dungeon Delver—Game Overview 794
Getting Started: Prototype 7 795
Setting Up the Cameras 796
Understanding the Dungeon Data 798
Adding the Hero 808
Giving Dray an Attack Animation 818
Dray's Sword 821
Enemy: Skeletos 822
The InRoom Script 825
Per-Tile Collision 828
Aligning to the Grid 832
Moving from Room to Room 839
Making the Camera Follow Dray 842
Unlocking Doors 843
Adding GUI to Track Key Count and Health 848
Enabling Enemies to Damage Dray 852
Making Dray's Attack Damage Enemies 856
Picking Up Items 859
Enemies Dropping Items on Death 861
Implementing a Grappler 864
Implementing a New Dungeon—The Hat 872
The Delver Level Editor 877
Summary 877
PART IV: APPENDICES 879
Appendix A Standard Project Setup Procedure 881
Appendix B Useful Concepts 887
Appendix C Online Reference 947
Index 953
To submit errata that you have found or view known errata, please visit the book's website at http://book.prototools.net.