You are previewing Introduction to Game Design, Prototyping, and Development: From Concept to Playable Game with Unity and C#.
O'Reilly logo
Introduction to Game Design, Prototyping, and Development: From Concept to Playable Game with Unity and C#

Book Description

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

  • In-depth tutorials for eight different game prototypes

  • Developing new game design concepts

  • Moving quickly from design concepts to working digital prototypes

  • Improving your designs through rapid iteration

  • Playtesting your games and interpreting the feedback that you receive

  • Tuning games to get the right “game balance” and “game feel”

  • Developing with Unity, today’s best engine for independent game development

  • Learning C# the right way

  • Using Agile and Scrum to efficiently organize your game design and development process

  • Debugging your game code

  • Getting into the highly competitive, fast-changing game industry

  • Table of Contents

    1. About This eBook
    2. Title Page
    3. Copyright Page
    4. Praise for Introduction to Game Design, Prototyping, and Development
    5. Contents at a Glance
    6. Contents
    7. Foreword
    8. Preface
      1. The Purpose of This Book
        1. Part I: Game Design and Paper Prototyping
        2. Part II: Digital Prototyping
        3. Part III: Game Prototype Examples and Tutorials
        4. Part IV: Appendices
      2. There Are Other Books Out There
      3. Our Digital Prototyping Environment: Unity
      4. Who This Book Is For
      5. Conventions
    9. Acknowledgments
    10. About the Author
    11. Part I: Game Design and Paper Prototyping
      1. Chapter 1. Thinking Like a Designer
        1. You Are a Game Designer
        2. Bartok: A Game Exercise
        3. The Definition of Game
        4. Summary
      2. Chapter 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. Chapter 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. Chapter 4. The Inscribed Layer
        1. Inscribed Mechanics
        2. Inscribed Aesthetics
        3. Inscribed Narrative
        4. Inscribed Technology
        5. Summary
      5. Chapter 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. Chapter 6. The Cultural Layer
        1. Beyond Play
        2. Cultural Mechanics
        3. Cultural Aesthetics
        4. Cultural Narrative
        5. Cultural Technology
        6. Authorized Transmedia Are Not in the Cultural Layer
        7. The Cultural Impact of a Game
        8. Summary
      7. Chapter 7. Acting Like a Designer
        1. Iterative Design
        2. Innovation
        3. Brainstorming and Ideation
        4. Changing Your Mind
        5. Scoping!
        6. Summary
      8. Chapter 8. Design Goals
        1. Design Goals: An Incomplete List
        2. Designer-Centric Goals
        3. Player-Centric Goals
        4. Summary
      9. Chapter 9. Paper Prototyping
        1. The Benefits of Paper Prototypes
        2. Paper Prototyping Tools
        3. An Example of a Paper Prototype
        4. Best Uses for Paper Prototyping
        5. Poor Uses for Paper Prototyping
        6. Summary
      10. Chapter 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. Chapter 11. Math and Game Balance
        1. The Meaning of Game Balance
        2. Installing Apache OpenOffice Calc
        3. Examining Dice Probability with Calc
        4. The Math of Probability
        5. Randomizer Technologies in Paper Games
        6. Weighted Distributions
        7. Permutations
        8. Positive and Negative Feedback
        9. Using Calc to Balance Weapons
        10. Summary
      12. Chapter 12. Puzzle Design
        1. Puzzles Are Almost Everywhere
        2. Scott Kim on Puzzle Design
        3. Puzzle Examples in Action Games
        4. Summary
      13. Chapter 13. Guiding the Player
        1. Direct Guidance
        2. Indirect Guidance
        3. Teaching New Skills and Concepts
        4. Summary
      14. Chapter 14. 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. Chapter 15. Thinking in Digital Systems
        1. Systems Thinking in Board Games
        2. An Exercise in Simple Instructions
        3. Game Analysis: Apple Picker
        4. Summary
      2. Chapter 16. Introducing Our Development Environment: Unity
        1. Downloading Unity
        2. Introducing Our Development Environment
        3. Running Unity for the First Time
        4. Setting Up the Unity Window Layout
        5. Learning Your Way Around Unity
        6. Summary
      3. Chapter 17. Introducing Our Language: C#
        1. Understanding the Features of C#
        2. Reading and Understanding C# Syntax
        3. Summary
      4. Chapter 18. Hello World: Your First Program
        1. Creating a New Project
        2. Making a New C# Script
        3. Making Things More Interesting
        4. Summary
      5. Chapter 19. 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. Chapter 20. Boolean Operations and Conditionals
        1. Booleans
        2. Comparison Operators
        3. Conditional Statements
        4. Summary
      7. Chapter 21. 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. Chapter 22. Lists and Arrays
        1. C# Collections
        2. List
        3. Array
        4. Multidimensional Arrays
        5. Jagged Arrays
        6. Whether to Use Array or List
        7. Summary
        8. Moving Forward
      9. Chapter 23. Functions and Parameters
        1. Set Up the Function Examples Project
        2. Definition of a Function
        3. Function Parameters and Arguments
        4. Returning Values
        5. Proper Function Names
        6. When Should You Use Functions?
        7. Function Overloading
        8. Optional Parameters
        9. The params Keyword
        10. Recursive Functions
        11. Summary
      10. Chapter 24. Debugging
        1. Getting Started with Debugging
        2. Stepping Through Code with the Debugger
        3. Summary
      11. Chapter 25. Classes
        1. Understanding Classes
        2. Class Inheritance
        3. Summary
      12. Chapter 26. Object-Oriented Thinking
        1. The Object-Oriented Metaphor
        2. An Object-Oriented Boids Implementation
        3. Summary
      13. Chapter 27. The Agile Mentality
        1. The Manifesto for Agile Software Development
        2. Scrum Methodology
        3. Creating Your Own Burndown Charts
        4. Summary
    13. Part III: Game Prototype Examples and Tutorials
      1. Chapter 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
        6. Next Steps
      2. Chapter 29. Prototype 2: Mission Demolition
        1. Getting Started: Prototype 2
        2. Game Prototype Concept
        3. Art Assets
        4. Coding the Prototype
        5. Summary
        6. Next Steps
      3. Chapter 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. Adding Power-Ups
        11. Resolving Race Conditions in Code
        12. Making Enemies Drop Power-Ups
        13. Programming Other Enemies
        14. Adding Particle Effects and Background
        15. Summary
        16. Next Steps
      4. Chapter 31. 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. Adding Scoring to Prospector
        8. Summary
        9. Next Steps
      5. Chapter 32. Prototype 5: Bartok
        1. Getting Started: Prototype 5
        2. Build Settings
        3. Coding Bartok
        4. Summary
        5. Next Steps
      6. Chapter 33. Prototype 6: Word Game
        1. Getting Started: Word Game Prototype
        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
        9. Adding Color
        10. Summary
        11. Next Steps
      7. Chapter 34. Prototype 7: QuickSnap
        1. Getting Started: QuickSnap Prototype
        2. Building the Scene
        3. Coding the Game
        4. Summary
        5. Next Steps
      8. Chapter 35. Prototype 8: Omega Mage
        1. Getting Started: Omega Mage Prototype
        2. Building the Scene
        3. The Mage Character
        4. Mouse Interaction
        5. Movement
        6. The Inventory and Selecting Elements
        7. Casting the Fire Ground Spell
        8. Changing Rooms
        9. Spawning Enemies
        10. Abstracting the Enemy Interface
        11. Making an EnemyFactory
        12. Summary
        13. Next Steps
    14. Part IV: Appendices
      1. Appendix A. Standard Project Setup Procedure
        1. Setting Up a New Project
        2. Getting the Scene Ready for Coding
      2. Appendix B. Useful Concepts
        1. Topics Covered
        2. C# and Unity Coding Concepts
        3. Math Concepts
        4. Interpolation
        5. Roleplaying Games
        6. User Interface Concepts
      3. Appendix C. Online Reference
        1. Tutorials
        2. Unity Resources
        3. Programming
        4. Searching Tips
        5. Finding Assets
        6. Educational Software Discounts
    15. Index