Introduction to Game Design, Prototyping, and Development

From Concept to Playable Game with Unity and C#

Paperback Engels 2022 9780136619949
Verwachte levertijd ongeveer 9 werkdagen

Samenvatting

A hands-on book that explains concepts "by doing,"  Introduction to Game Design, Prototyping, and Development, Third Edition, takes students through the process of making both paper and digital game prototypes. Rather than focusing on a single tutorial, as most Unity books have done, this book explores several small prototypes, reinforcing critical concepts through repetition from project to project. Author Jeremy Gibson Bond's approach creates a stable of "base projects" that serve as starters for readers looking to create their own games), while skipping the aspects of project creation (e.g. modeling, animation, etc.) that are less central to this book. Intermediate students may browse this book for a tutorial that clarifies the specific prototyping or programming concept that they wish to learn. 
This book begins with an introduction to general game design concepts and basic programing concepts. C# is the chosen language used in this book, and it is easy to learn and enforces good coding practices. Game prototyping and programming tutorials use Object-Oriented Programming (OOP), the standard for coding over the past 30+ years, in addition to the new Data-Oriented Technology Stack (DOTS) and Entity Component System (ECS), providing a well-rounded approach. Game development concepts covered help students find further resources to expand their game design knowledge. 

Specificaties

ISBN13:9780136619949
Taal:Engels
Bindwijze:Paperback

Lezersrecensies

Wees de eerste die een lezersrecensie schrijft!

Inhoudsopgave

<p>Foreword <br>Preface <br><strong>PART I Game Design and Paper Prototyping </strong><br><strong>Chapter 1</strong> Thinking Like a Designer <br>You Are a Game Designer <br>Bartok: A Game Design Exercise <br>The Definition of Game<br>Summary <br><strong>Chapter 2</strong> Game Analysis Frameworks <br>Common Frameworks for Ludology <br>MDA: Mechanics, Dynamics, and Aesthetics <br>Formal, Dramatic, and Dynamic Elements<br>The Elemental Tetrad <br>Summary <br><strong>Chapter 3</strong> The Layered Tetrad <br>The Inscribed Layer <br>The Dynamic Layer<br>The Cultural Layer<br>The Responsibility of the Designer <br>Summary<br><strong>Chapter 4</strong> The Inscribed Layer <br>Inscribed Mechanics <br>Inscribed Aesthetics<br>Inscribed Narrative<br>Inscribed Technology<br>Summary <br><strong>Chapter 5</strong> The Dynamic Layer<br>The Role of the Player<br>Emergence<br>Dynamic Mechanics <br>Dynamic Aesthetics<br>Dynamic Narrative<br>Dynamic Technology <br>Summary <br><strong>Chapter 6</strong> The Cultural Layer <br>Beyond Play <br>Cultural Mechanics <br>Cultural Aesthetics<br>Cultural Narrative<br>Cultural Technology <br>Authorized Transmedia Are Not Part of the Cultural Layer <br>The Cultural Impact of a Game <br>Summary <br><strong>Chapter 7</strong> Acting Like a Designer <br>Iterative Design <br>Innovation <br>Brainstorming and Ideation <br>Changing Your Mind<br>Scoping!<br>Summary <br><strong>Chapter 8</strong> Design Goals <br>Design Goals: An Incomplete List <br>Designer-Centric Goals <br>Player-Centric Goals<br>Summary<br><strong>Chapter 9</strong> Paper Prototyping <br>The Benefits of Paper Prototyping <br>Paper Prototyping Tools <br>Paper Prototyping for Interfaces <br>A Paper Prototype Example <br>Best Uses for Paper Prototyping <br>Poor Uses for Paper Prototyping<br>Summary <br><strong>Chapter 10</strong> Game Testing <br>Why Playtest?<br>Being a Great Playtester Yourself <br>The Circles of Playtesters <br>Methods of Playtesting <br>Other Important Types of Testing <br>Summary <br><strong>Chapter 11</strong> Math and Game Balance <br>The Meaning of Game Balance <br>The Importance of Spreadsheets<br>Examining Dice Probability with Sheets <br>The Math of Probability <br>Randomizer Technologies in Paper Games <br>Weighted Distributions <br>Weighted Probability in Google Sheets <br>Permutations <br>Using Sheets to Balance Weapons <br>Positive and Negative Feedback<br>Summary <br><strong>Chapter 12</strong> Guiding the Player <br>Direct Guidance <br>Indirect Guidance<br>Teaching New Skills and Concepts <br>Summary <br><strong>Chapter 13 </strong>Puzzle Design <br>Scott Kim on Puzzle Design <br>The Steps of Solving a Puzzle<br>Puzzle Examples in Action Games<br>Designing and Developing Puzzle Games<br>Summary <br><strong>Chapter 14 </strong>The Agile Mentality <br>The Manifesto for Agile Software Development <br>Scrum Methodology <br>Burndown Chart Example <br>Creating Your Own Burndown Charts <br>Summary <br><strong>Chapter 15 </strong>The Digital Game Industry <br>About the Game Industry <br>Game Education<br>Getting Into the Industry <br>Don't Wait to Start Making Games!<br>Summary <br><strong>PART II Programming C# in Unity </strong><br><strong>Chapter 16</strong> Thinking in Digital Systems <br>Systems Thinking in Board Games <br>An Exercise in Simple Instructions<br>Game Analysis: Apple Picker<br>Summary <br><strong>Chapter 17 </strong>Introducing Unity Hub and the Unity Editor <br>Downloading Unity <br>Introducing Our Development Environment <br>Creating a Unity Account <br>Checking Out a Sample Project <br>Creating Your First Unity Project<br>Learning Your Way Around Unity <br>Setting Up the Unity Window Layout <br>Summary <br><strong>Chapter 18 </strong>Introducing Our Language: C#<br>Understanding the Features of C#<br>Reading and Understanding C# Syntax <br>Summary <br><strong>Chapter 19 </strong>Hello World: Your First Program <br>Creating a New Project <br>Making a New C# Script<br>Making Things More Interesting <br>Summary <br><strong>Chapter 20 </strong>Variables and Components <br>Introducing Variables <br>Statically Typed Variables in C#<br>Important C# Variable Types <br>The Scope of Variables <br>Naming Conventions <br>Important Unity Variable Types <br>Unity GameObjects and Components <br>Summary <br><strong>Chapter 21 </strong>Boolean Operations and Conditionals <br>Booleans <br>Comparison Operators <br>Conditional Statements<br>Summary <br><strong>Chapter 22 </strong>Loops <br>Types of Loops <br>Set Up a Project<br>while Loops <br>do...while Loops <br>for Loops <br>foreach Loops <br>Jump Statements within Loops <br>Summary <br><strong>Chapter 23</strong> Collections in C#<br>C# Collections <br>Using Generic Collections <br>List&lt;T&gt;<br>Dictionary&lt;Tkey, TValue&gt;<br>Array <br>Multidimensional Arrays <br>Jagged Arrays <br>Jagged List&lt;T&gt;s<br>Choosing Whether to Use an Array or List <br>Summary <br><strong>Chapter 24 </strong>Functions and Parameters <br>Setting Up the Function Examples Project <br>Definition of a Function <br>What Happens When You Call a Function?<br>Function Parameters and Arguments <br>Returning Values <br>Returning void <br>Function Naming Conventions <br>Why Use Functions?<br>Function Overloading <br>Optional Parameters<br>The params Keyword <br>Recursive Functions <br>Summary <br><strong>Chapter 25 </strong>Debugging <br>Getting Started with Debugging <br>Stepping Through Code with the Debugger <br>Summary <br><strong>Chapter 26 </strong>Classes <br>Understanding Classes <br>Class Inheritance <br>Summary <br><strong>Chapter 27 </strong>Object-Oriented Thinking <br>The Object-Oriented Metaphor <br>An Object-Oriented Boids Implementation <br>Summary <br><strong>Chapter 28 </strong>Data-Oriented Design <br>The Theory of Data-Oriented Design <br>DOTS Tutorial and Example <br>The Future of Unity DOTS <br>Summary <br><strong>PART III Game Prototype Tutorials </strong><br><strong>Chapter 29 </strong>Apple Picker<br>What You Will Learn <br>The Apple Picker Prototype <br>The Purpose of a Digital Prototype <br>Preparing <br>Coding the Apple Picker Prototype <br>GUI and Game Management <br>Summary <br><strong>Chapter 30 </strong>Mission Demolition <br>What You Will Learn <br>The Mission Demolition Prototype <br>Getting Started: Mission Demolition <br>Game Prototype Concept <br>Art Assets <br>Coding the Prototype <br>From Prototype to First Playable <br>Summary <br><strong>Chapter 31 </strong>Space SHMUP -- Part 1<br>What You Will Learn <br>Getting Started: Space SHMUP <br>Setting the Scene <br>Making the Hero Ship <br>Adding Some Enemies<br>Spawning Enemies at Random <br>Setting Tags, Layers, and Physics <br>Making the Enemies Damage the Player <br>Restarting the Game <br>Shooting (Finally)<br>Summary <br><strong>Chapter 32 </strong>Space SHMUP -- Part 2<br>What You Will Learn <br>Getting Started: Space SHMUP -- Part 2<br>Enemy to Enemy_0 <br>Programming Other Enemies <br>Shooting Revisited <br>Showing Enemy Damage <br>Adding PowerUps and Boosting Weapons <br>Race Conditions &amp; Script Execution Order<br>Making Enemies Drop PowerUps<br>Enemy_4 -- A More Complex Enemy<br>Tuning Settings for the Game Entities<br>Adding a Scrolling Starfield Background <br>Summary <br><strong>Chapter 33 </strong>Prospector Solitaire -- Part 1<br>What You Will Learn <br>The Prospector Game <br>Getting Started: Prospector Solitaire<br>Build Settings <br>Setting Up the Unity Window Layout <br>Setting Up the Camera and Game Pane<br>Importing Images as Sprites <br>Constructing Cards from Sprites<br>Implementing Prospector in Code <br>Implementing Game Logic <br>Summary <br><strong>Chapter 34 </strong>Prospector Solitaire -- Part 2<br>What You Will Learn <br>Getting Started: Prospector -- Part 2<br>Additional Prospector Game Elements <br>Adding GUI Elements to Display the Score <br>Building and Running Your WebGL Build <br>Summary <br><strong>Chapter 35 </strong>Dungeon Delver -- Part 1<br>What You Will Learn <br>The Dungeon Delver Game <br>Getting Started: Dungeon Delver <br>Setting Up the Cameras <br>Understanding the Dungeon Data <br>Showing the Map with a Unity Tilemap <br>Adding the Hero <br>Giving Dray an Attack Animation <br>Dray's Sword <br>Programmatic Collision in Unity Tilemap <br>The InRoom Script <br>Enemy: Skeletos <br>Keeping GameObjects in the Room <br>Aligning to the Grid <br>Moving from Room to Room <br>Making the Camera Follow Dray <br>Summary <br><strong>Chapter 36</strong> Dungeon Delver -- Part 2<br>What You Will Learn <br>Getting Started: Dungeon Delver -- Part 2<br>Dungeon Delver -- Part 2 Overview <br>Implementing TileSwaps <br>Swapping in LockedDoor GameObjects <br>Implementing Keys and Unlocking Doors <br>Adding GUI to Track Key Count and Health <br>Enabling Enemies to Damage Dray <br>Making Dray's Attack Damage Enemies <br>Modifying Enemy to Take Damage <br>Picking Up Items <br>Enemies Dropping Items on Death <br>Implementing a New Dungeon -- The Hat <br>Implementing a Grappler <br>Summary <br><strong>Part IV Next Steps </strong><br><strong>Chapter 37</strong> Coding Challenges <br>What Is a Coding Challenge?<br>Getting Started on a Coding Challenge <br>Filling in the Blanks <br>How to Approach Each Challenge <br><strong>Chapter 38 </strong>Beyond This Book <br>Continue to Learn Unity Development <br>Build a Classic Game <br>Start a Small Game Project or Prototype <br>Make Games for Lifelong Enrichment <br>Consider Going to School for GameDev <br>Explore Advanced Game Design <br>Finally, Drop Me a Line <br><strong>PART V Online Appendices </strong><br><strong>Appendix A</strong> Standard Project Setup Procedure<br>The Set Up Sidebar for Tutorial Projects<br>Setting Up a New Project<br>Importing a Starter UnityPackage<br>Setting the Scene Name<br>Setting the Game Pane to Full HD (1080p)<br>Setting Up a WebGL Build<br>Understanding Unity Version Control<br>Summary<br><strong>Appendix B </strong>Useful Concepts<br>Topics Covered<br>C# and Unity Coding Concepts<br> Attributes<br> Automatic Properties<br> Bitwise Boolean Operators and Layer Masks<br> Coroutines<br> Unity Example--Coroutines<br> Delegates, Events, and UnityEvents<br> UnityEvents<br> Enums<br> Extension Methods<br> Interfaces<br> Unity Example--Interfaces<br> Unity Makes Frequent Use of Interfaces for Observer Pattern<br> JSON (JavaScript Object Notation) in Unity<br> Lambda Expressions =&gt;<br> Naming Conventions<br> Object-Oriented Software Design Patterns<br> Component Pattern<br> Observer Pattern<br> Singleton Pattern<br> Strategy Pattern<br> More Information on Design Patterns in Game Programming<br> Operator Precedence and Order of Operations<br> Race Conditions<br> Unity Example--Race Conditions<br> Recursive Functions<br> String Interpolation -- $""<br> StringBuilder<br> Structs<br> Unity Messages Beyond Start() and Update()<br> Life-Cycle Messages<br> Frame-Based Messages<br> Physics-Based Messages<br> Variable Scope<br> XML<br> XML Documentation in C#<br>Math Concepts<br> Cosine and Sine (Cos and Sin)<br> Unity Example--Sine and Cosine<br> Dice Probability Enumeration<br> Unity Example--Dice Probability<br> Using Data-Oriented Design to Improve the DiceProbability Code<br> Dot Product<br> Interpolation<br> Linear Interpolation<br> Time-Based Linear Interpolations<br> Linear Interpolations Using Zeno's Paradox<br> Interpolating More Than Just Position<br> Linear Extrapolation<br> Easing for Linear Interpolations<br> Bezier Curves<br> Three-Point and Four-Point Bezier Curves<br> A Recursive Bezier Curve Function<br> A Data-Oriented Bezier Function<br>Pen-and-Paper Roleplaying Games<br> Tips for Running a Good Roleplaying Campaign<br>User Interface Concepts<br> Complex Game Controller Input<br> Input Manager Mapping for Various Controllers<br> Right-Click on macOS<br> Control-Click = Right-Click<br> Use Any PC Mouse<br> Set Your macOS Mouse to Right-Click<br> Set Your macOS Trackpad to Right-Click<br><strong>Appendix C</strong> Online Reference<br>Tutorials<br>Unite Conference<br>Unity's YouTube Channel<br>Programming<br>Searching Tips<br>Finding and Creating Assets<br>Other Tools and Educational Discounts<br><strong>Appendix D</strong> Tips for Teaching from This Book<br>The Goal of This Appendix<br>Teaching Introduction to Game Design<br>Teaching Introduction to Game Programming<br>More Information Is Available<br><br><br></p>

Managementboek Top 100

Rubrieken

Populaire producten

    Personen

      Trefwoorden

        Introduction to Game Design, Prototyping, and Development