Introduction to Game Design, Prototyping, and Development: From Concept to Playable Game with Unity and C#, 2nd edition
Published by Addison-Wesley Professional (August 20, 2017) © 2018
- Jeremy Gibson Bond
- A print text (hardcover or paperback)Â
- Free shipping
- Also available for purchase as an ebook from all major ebook resellers, including InformIT.com
Award-winning game designer and professor Jeremy Gibson Bond has spent the last decade teaching game design and working as an independent game developer. Over the years, his most successful students have always been those who effectively combined game design theory, concrete rapid-prototyping practices, and programming skills.
Introduction to Game Design, Prototyping, and Development is the first time that all three of these disciplines have been brought together into a single book. It is a distillation of everything that Gibson has learned teaching hundreds of game designers and developers in his years at the #1 university games program in North America. It fully integrates the disciplines of game design and computer programming and helps students master the crucial practice of iterative prototyping using Unity. As the top game engine for cross-platform game development, Unity allows readers to write a game once and deliver it to everything from Windows, OS X, and Linux applications to webpages and all of the most popular mobile platforms.
- The first modern tutorial on both game design and development, revised: covers new Unity releases, C#, as well as Mobile and VR
- Teaches best practices used by professional game designers to rapidly create working, playable prototypes
- Covers today's leading, fastest growing game development platform: Unity
- Focuses on C# and rapid game prototyping
- Includes a full section of modular projects that can jumpstart your own games
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
Prior to joining the faculty at Michigan State, Jeremy taught for three years as a Lecturer in the Electrical Engineering and Computer Science department at the University of Michigan Ann Arbor, where he taught game design and software development. From 2009 to 2013, Jeremy was an Assistant Professor of Practice teaching game design for the Interactive Media and Games Division of the University of Southern California's School of Cinematic Arts, which was named the number one game design school in North America throughout his tenure there.
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. He started his career as a programmer and prototyper for companies such as Human Code and frog design; has also 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 online game Skyrates, which won the Silver Gleemax Award for Strategic Gaming 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.
Need help? Get in touch