Introduction to Game Design, Prototyping, and Development

Book description

Learn All the Design & Development Skills You Need to Make Great Games with Unity, the Worlds Most Popular Professional Game Engine If you want to design and develop games, there is no substitute for strong, hands-on experience with modern techniques and tools. That is exactly what this book provides. Leading instructor and indie game developer Jeremy Gibson Bond covers all three disciplines that you need to succeed: game design theory, rapid iterative prototyping, and practical programming.

Building on two previous best-sellers, this Third Edition contains hundreds of improvements across more than 400 new pages, all designed to make it even easier to understand and more useful in modern game development.

The five game tutorials have been thoroughly revised and expanded to cover even more best practices for prototyping and development, and all examples now use Unity 2020.3 LTS (Long Term Support), a stable and feature-rich standard for years to come. The new content includes greatly enhanced tutorials, a chapter on Unitys high-performance Data-Oriented Tech Stack (DOTS), new Coding Challenges to help you transition to making your own games from scratch, and tips on next steps after you have finished the book. The revamped website includes playable versions of all example games, plus an exciting new tool that provides immediate feedback on potential errors in your own code.

Part I: Game Design and Paper Prototyping* Use the Layered Tetrad to understand and design powerful interactive experiences.

* Explore the core game design practices of paper prototyping, testing, and iteration.

* Learn effective strategies for staying on track and on schedule.

* Get tips for finding a rewarding job in todays industry.

Part II: Programming C# in Unity

* Learn C# from the basics through class inheritance, object-oriented programming, and data-oriented design.

Part III: Game Prototype Tutorials

* Implement games across five genres: arcade, casual physics, space shooter, solitaire card game, and top-down adventure game. Each game is designed to be easily extensible into your own projects.

* Take three games from prototype to first playable through new extended tutorial chapters that refi ne the games further than in previous editions of the book.

NEW! Part IV: Next Steps

* Tackle the new, growing library of Coding Challenges, a proven method for transitioning from tutorials to creating your own projects from scratch.

* Get ideas and resources for new projects to tackle on your own.

Table of contents

  1. Cover Page
  2. About This eBook
  3. Halftitle Page
  4. Title Page
  5. Copyright Page
  6. Pearson’s Commitment to Diversity, Equity, and Inclusion
  7. Dedication Page
  8. Contents at a Glance
  9. Contents
  10. Foreword
  11. Preface
    1. The Purpose of This Book
    2. What’s New in the Third Edition?
    3. Who This Book Is For
    4. The Structure of This Book
    5. Book Website
    6. Why You Should Learn Unity and C#
    7. Conventions in This Book
    8. There Are Other Books Out There
  12. Acknowledgments
  13. About the Author
  14. Figure Credits
  15. Part I Game Design and Paper Prototyping
    1. 1 Thinking Like a Designer
      1. You Are a Game Designer
      2. Bartok: A Game Design 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. The Cultural Impact of a Game
      8. 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 Prototyping
      2. Paper Prototyping Tools
      3. Paper Prototyping for Interfaces
      4. A Paper Prototype Example
      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. Examining Dice Probability with Sheets
      4. The Math of Probability
      5. Randomizer Technologies in Paper Games
      6. Weighted Distributions
      7. Weighted Probability in Google Sheets
      8. Permutations
      9. Using Sheets to Balance Weapons
      10. Positive and Negative Feedback
      11. Summary
    12. 12 Guiding the Player
      1. Direct Guidance
      2. Indirect Guidance
      3. Teaching New Skills and Concepts
      4. Summary
    13. 13 Puzzle Design
      1. Scott Kim on Puzzle Design
      2. The Steps of Solving a Puzzle
      3. Puzzle Examples in Action Games
      4. Designing and Developing Puzzle Games
      5. 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
  16. Part II Programming C# in Unity
    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 Unity Hub and the Unity Editor
      1. Downloading Unity
      2. Introducing Our Development Environment
      3. Creating a Unity Account
      4. Checking Out a Sample Project
      5. Creating Your First Unity Project
      6. Learning Your Way Around Unity
      7. Setting Up the Unity Window Layout
      8. 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. Statically 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<T>
      4. Dictionary<Tkey, TValue>
      5. Array
      6. Multidimensional Arrays
      7. Jagged Arrays
      8. Jagged List<T>s
      9. Choosing Whether to Use an Array or List
      10. Summary
    9. 24 Functions and Parameters
      1. Setting Up the Function Examples Project
      2. Definition of a Function
      3. What Happens When You Call a Function?
      4. Function Parameters and Arguments
      5. Returning Values
      6. Returning void
      7. Function Naming Conventions
      8. Why Use Functions?
      9. Function Overloading
      10. Optional Parameters
      11. The params Keyword
      12. Recursive Functions
      13. 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. 28 Data-Oriented Design
      1. The Theory of Data-Oriented Design
      2. DOTS Tutorial and Example
      3. The Future of Unity DOTS
      4. Summary
  17. Part III Game Prototype Tutorials
    1. 29 Apple Picker
      1. What You Will Learn
      2. The Apple Picker Prototype
      3. The Purpose of a Digital Prototype
      4. Preparing
      5. Coding the Apple Picker Prototype
      6. GUI and Game Management
      7. Summary
    2. 30 Mission Demolition
      1. What You Will Learn
      2. The Mission Demolition Prototype
      3. Getting Started: Mission Demolition
      4. Game Prototype Concept
      5. Art Assets
      6. Coding the Prototype
      7. From Prototype to First Playable
      8. Summary
    3. 31 Space shmup – Part 1
      1. What You Will Learn
      2. Getting Started: Space SHMUP
      3. Setting the Scene
      4. Making the Hero Ship
      5. Adding Some Enemies
      6. Spawning Enemies at Random
      7. Setting Tags, Layers, and Physics
      8. Making the Enemies Damage the Player
      9. Restarting the Game
      10. Shooting (Finally)
      11. Summary
    4. 32 Space SHMUP – Part 2
      1. What You Will Learn
      2. Getting Started: Space SHMUP – Part 2
      3. Enemy to Enemy_0
      4. Programming Other Enemies
      5. Shooting Revisited
      6. Showing Enemy Damage
      7. Adding PowerUps and Boosting Weapons
      8. Race Conditions & Script Execution Order
      9. Making Enemies Drop PowerUps
      10. Enemy_4 — A More Complex Enemy
      11. Tuning Settings for the Game Entities
      12. Adding a Scrolling Starfield Background
      13. Summary
    5. 33 Prospector Solitaire – Part 1
      1. What You Will Learn
      2. The Prospector Game
      3. Getting Started: Prospector Solitaire
      4. Build Settings
      5. Setting Up the Unity Window Layout
      6. Setting Up the Camera and Game Pane
      7. Importing Images as Sprites
      8. Constructing Cards from Sprites
      9. Implementing Prospector in Code
      10. Implementing Game Logic
      11. Summary
    6. 34 Prospector Solitaire – Part 2
      1. What You Will Learn
      2. Getting Started: Prospector – Part 2
      3. Additional Prospector Game Elements
      4. Adding GUI Elements to Display the Score
      5. Building and Running Your WebGL Build
      6. Summary
    7. 35 Dungeon Delver – Part 1
      1. What You Will Learn
      2. The Dungeon Delver Game
      3. Getting Started: Dungeon Delver
      4. Setting Up the Cameras
      5. Understanding the Dungeon Data
      6. Showing the Map with a Unity Tilemap
      7. Adding the Hero
      8. Giving Dray an Attack Animation
      9. Dray’s Sword
      10. Programmatic Collision in Unity Tilemap
      11. The InRoom Script
      12. Enemy: Skeletos
      13. Keeping GameObjects in the Room
      14. Aligning to the Grid
      15. Moving from Room to Room
      16. Making the Camera Follow Dray
      17. Summary
    8. 36 Dungeon Delver – Part 2
      1. What You Will Learn
      2. Getting Started: Dungeon Delver — Part 2
      3. Dungeon Delver — Part 2 Overview
      4. Implementing TileSwaps
      5. Swapping in LockedDoor GameObjects
      6. Implementing Keys and Unlocking Doors
      7. Adding GUI to Track Key Count and Health
      8. Enabling Enemies to Damage Dray
      9. Making Dray’s Attack Damage Enemies
      10. Modifying Enemy to Take Damage
      11. Picking Up Items
      12. Enemies Dropping Items on Death
      13. Implementing a New Dungeon — The Hat
      14. Implementing a Grappler
      15. Summary
  18. Part IV Next Steps
    1. 37 Coding Challenges
      1. What Is a Coding Challenge?
      2. Getting Started on a Coding Challenge
      3. Filling in the Blanks
      4. How to Approach Each Challenge
    2. 38 Beyond This Book
      1. Continue to Learn Unity Development
      2. Build a Classic Game
      3. Start a Small Game Project or Prototype
      4. Make Games for Lifelong Enrichment
      5. Consider Going to School for GameDev
      6. Explore Advanced Game Design
      7. Finally, Drop Me a Line
  19. Index
  20. Part V Online Appendices — http://book.prototools.net or informit.com/title/9780136619949
    1. A Standard Project Setup Procedure
      1. The Set Up Sidebar for Tutorial Projects
      2. Setting Up a New Project
      3. Importing a Starter UnityPackage
      4. Setting the Scene Name
      5. Setting the Game Pane to Full HD (1080p)
      6. Setting Up a WebGL Build
      7. Understanding Unity Version Control
      8. Summary
    2. B Useful Concepts
      1. Topics Covered
      2. C# and Unity Coding Concepts
      3. Math Concepts
      4. Pen-and-Paper Roleplaying Games
      5. User Interface Concepts
    3. C Online Reference
      1. Tutorials
      2. Unite Conference
      3. Unity’s YouTube Channel
      4. Programming
      5. Searching Tips
      6. Finding and Creating Assets
      7. Other Tools and Educational Discounts
    4. D Tips for Teaching from This Book
      1. The Goal of This Appendix
      2. Teaching Introduction to Game Design
      3. Teaching Introduction to Game Programming
      4. More Information Is Available
  21. Code Snippets

Product information

  • Title: Introduction to Game Design, Prototyping, and Development
  • Author(s): Jeremy Gibson Bond
  • Release date: September 2022
  • Publisher(s): Addison-Wesley Professional
  • ISBN: 9780136619918