Register your product to gain access to bonus material or receive a coupon.
Learn Game Design, Prototyping, and Programming with Today’s Leading Tools: Unity™ and C#
Award-winning game designer and professor Jeremy Gibson 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 you master the crucial practice of iterative prototyping using Unity. As the top game engine for cross-platform game development, Unity allows you 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.
If you want to develop games, you need strong experience with modern best practices and professional tools. There’s no substitute. There’s no shortcut. But you can get what you need in this book.
COVERAGE INCLUDES
Unity 101: A Video Tutorial with Jeremy Gibson
Please visit the site associated with Introduction to Game Design, Prototyping, and Development at book.prototools.net/
Game Design Prototyping: Introducing the Unity Development Environment
Download the sample pages (includes Chapter 16 and Index)
Preface xxiv
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