O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Introduction to Game Design, Prototyping, and Development: From Concept to Playable Game with Unity and C#, 2nd Edition

Book Description

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

Table of Contents

  1. Cover Page
  2. Title Page
  3. Copyright Page
  4. Dedication
  5. Contents at a Glance
  6. Contents
  7. Foreword
  8. Preface
  9. Acknowledgments
  10. About the Author
  11. Part I Game Design and Paper Prototyping
    1. 1 Thinking Like a Designer
      1. You Are a Game Designer
      2. Bartok: A Game Exercise
      3. The Definition of Game
      4. Summary
    2. 2 Game Analysis Frameworks
      1. Common Frameworks for Ludology
      2. MDA: Mechanics, Dynamics, and Aesthetics
      3. Formal, Dramatic, and Dynamic Elements
      4. The Elemental Tetrad
      5. Summary
    3. 3 The Layered Tetrad
      1. The Inscribed Layer
      2. The Dynamic Layer
      3. The Cultural Layer
      4. The Responsibility of the Designer
      5. Summary
    4. 4 The Inscribed Layer
      1. Inscribed Mechanics
      2. Inscribed Aesthetics
      3. Inscribed Narrative
      4. Inscribed Technology
      5. Summary
    5. 5 The Dynamic Layer
      1. The Role of the Player
      2. Emergence
      3. Dynamic Mechanics
      4. Dynamic Aesthetics
      5. Dynamic Narrative
      6. Dynamic Technology
      7. Summary
    6. 6 The Cultural Layer
      1. Beyond Play
      2. Cultural Mechanics
      3. Cultural Aesthetics
      4. Cultural Narrative
      5. Cultural Technology
      6. Authorized Transmedia Are Not Part of the Cultural Layer
      7. Summary
    7. 7 Acting Like a Designer
      1. Iterative Design
      2. Innovation
      3. Brainstorming and Ideation
      4. Changing Your Mind
      5. Scoping
      6. Summary
    8. 8 Design Goals
      1. Design Goals: An Incomplete List
      2. Designer-Centric Goals
      3. Player-Centric Goals
      4. Summary
    9. 9 Paper Prototyping
      1. The Benefits of Paper Prototypes
      2. Paper Prototyping Tools
      3. Paper Prototyping for Interfaces
      4. An Example Paper Prototype
      5. Best Uses for Paper Prototyping
      6. Poor Uses for Paper Prototyping
      7. Summary
    10. 10 Game Testing
      1. Why Playtest?
      2. Being a Great Playtester Yourself
      3. The Circles of Playtesters
      4. Methods of Playtesting
      5. Other Important Types of Testing
      6. Summary
    11. 11 Math and Game Balance
      1. The Meaning of Game Balance
      2. The Importance of Spreadsheets
      3. The Choice of Google Sheets for This Book
      4. Examining Dice Probability with Sheets
      5. The Math of Probability
      6. Randomizer Technologies in Paper Games
      7. Weighted Distributions
      8. Permutations
      9. Using Sheets to Balance Weapons
      10. Positive and Negative Feedback
      11. Summary
    12. 12 Guiding the Player
      1. Direct Guidance
      2. Four Methods of Direct Guidance
      3. Indirect Guidance
      4. Seven Methods of Indirect Guidance
      5. Teaching New Skills and Concepts
      6. Summary
    13. 13 Puzzle Design
      1. Scott Kim on Puzzle Design
      2. Puzzle Examples in Action Games
      3. Summary
    14. 14 The Agile Mentality
      1. The Manifesto for Agile Software Development
      2. Scrum Methodology
      3. Burndown Chart Example
      4. Creating Your Own Burndown Charts
      5. Summary
    15. 15 The Digital Game Industry
      1. About the Game Industry
      2. Game Education
      3. Getting Into the Industry
      4. Don't Wait to Start Making Games!
      5. Summary
  12. Part II Digital Prototyping
    1. 16 Thinking in Digital Systems
      1. Systems Thinking in Board Games
      2. An Exercise in Simple Instructions
      3. Game Analysis: Apple Picker
      4. Summary
    2. 17 Introducing the Unity Development Environment
      1. Downloading Unity
      2. Introducing Our Development Environment
      3. Launching Unity for the First Time
      4. The Example Project
      5. Setting Up the Unity Window Layout
      6. Learning Your Way Around Unity
      7. Summary
    3. 18 Introducing Our Language: C#
      1. Understanding the Features of C#
      2. Reading and Understanding C# Syntax
      3. Summary
    4. 19 Hello World: Your First Program
      1. Creating a New Project
      2. Making a New C# Script
      3. Making Things More Interesting
      4. Summary
    5. 20 Variables and Components
      1. Introducing Variables
      2. Strongly Typed Variables in C#
      3. Important C# Variable Types
      4. The Scope of Variables
      5. Naming Conventions
      6. Important Unity Variable Types
      7. Unity GameObjects and Components
      8. Summary
    6. 21 Boolean Operations and Conditionals
      1. Booleans
      2. Comparison Operators
      3. Conditional Statements
      4. Summary
    7. 22 Loops
      1. Types of Loops
      2. Set Up a Project
      3. while Loops
      4. do...while Loops
      5. for Loops
      6. foreach Loops
      7. Jump Statements within Loops
      8. Summary
    8. 23 Collections in C#
      1. C# Collections
      2. Using Generic Collections
      3. List
      4. Dictionary
      5. Array
      6. Multidimensional Arrays
      7. Jagged Arrays
      8. Whether to Use Array or List
      9. Summary
    9. 24 Functions and Parameters
      1. Setting Up the Function Examples Project
      2. Definition of a Function
      3. Function Parameters and Arguments
      4. Returning Values
      5. Proper Function Names
      6. Why Use Functions?
      7. Function Overloading
      8. Optional Parameters
      9. The params Keyword
      10. Recursive Functions
      11. Summary
    10. 25 Debugging
      1. Getting Started with Debugging
      2. Stepping Through Code with the Debugger
      3. Summary
    11. 26 Classes
      1. Understanding Classes
      2. Class Inheritance
      3. Summary
    12. 27 Object-Oriented Thinking
      1. The Object-Oriented Metaphor
      2. An Object-Oriented Boids Implementation
      3. Summary
  13. Part III Game Prototype Examples and Tutorials
    1. 28 Prototype 1: Apple Picker
      1. The Purpose of a Digital Prototype
      2. Preparing
      3. Coding the Apple Picker Prototype
      4. GUI and Game Management
      5. Summary
    2. 29 Prototype 2: Mission Demolition
      1. Getting Started: Prototype 2
      2. Game Prototype Concept
      3. Art Assets
      4. Coding the Prototype
      5. Summary
    3. 30 Prototype 3: Space SHMUP
      1. Getting Started: Prototype 3
      2. Setting the Scene
      3. Making the Hero Ship
      4. Adding Some Enemies
      5. Spawning Enemies at Random
      6. Setting Tags, Layers, and Physics
      7. Making the Enemies Damage the Player
      8. Restarting the Game
      9. Shooting (Finally)
      10. Summary
    4. 31 Prototype 3.5: Space SHMUP Plus
      1. Getting Started: Prototype 3.5
      2. Programming Other Enemies
      3. Shooting Revisited
      4. Showing Enemy Damage
      5. Adding Power-Ups and Boosting Weapons
      6. Making Enemies Drop Power-Ups
      7. Enemy_4—A More Complex Enemy
      8. Adding a Scrolling Starfield Background
      9. Summary
    5. 32 Prototype 4: Prospector Solitaire
      1. Getting Started: Prototype 4
      2. Build Settings
      3. Importing Images as Sprites
      4. Constructing Cards from Sprites
      5. The Prospector Game
      6. Implementing Prospector in Code
      7. Implementing Game Logic
      8. Adding Scoring to Prospector
      9. Adding Some Art to the Game
      10. Summary
    6. 33 Prototype 5: Bartok
      1. Getting Started: Prototype 5
      2. Build Settings
      3. Coding Bartok
      4. Building for WebGL
      5. Summary
    7. 34 Prototype 6: Word Game
      1. Getting Started: Prototype 6
      2. About the Word Game
      3. Parsing the Word List
      4. Setting Up the Game
      5. Laying Out the Screen
      6. Adding Interactivity
      7. Adding Scoring
      8. Adding Animation to Letters
      9. Adding Color
      10. Summary
    8. 35 Prototype 7: Dungeon Delver
      1. Dungeon Delver—Game Overview
      2. Getting Started: Prototype 7
      3. Setting Up the Cameras
      4. Understanding the Dungeon Data
      5. Adding the Hero
      6. Giving Dray an Attack Animation
      7. Dray's Sword
      8. Enemy: Skeletos
      9. The InRoom Script
      10. Per-Tile Collision
      11. Aligning to the Grid
      12. Moving from Room to Room
      13. Making the Camera Follow Dray
      14. Unlocking Doors
      15. Adding GUI to Track Key Count and Health
      16. Enabling Enemies to Damage Dray
      17. Making Dray's Attack Damage Enemies
      18. Picking Up Items
      19. Enemies Dropping Items on Death
      20. Implementing a Grappler
      21. Implementing a New Dungeon—The Hat
      22. The Delver Level Editor
      23. Summary
  14. Part IV Appendices
  15. Appendix A Standard Project Setup Procedure
  16. Appendix B Useful Concepts
  17. Appendix C Online Reference
  18. Index
  19. Code Snippets