Introduction to Game Design, Prototyping, and Development, 3rd edition
BRAND: PEARSON
Publisher: | Addison-Wesley Professional |
Author: | Jeremy Gibson Bond |
Edition: | (August 5, 2022) © 2022 |
eBook ISBN: | 9780136619857 |
Print ISBN: | 9780136619949 |
Type: | 1 Year Subscription. Dành cho Cá nhân |
eBook edition. 1 year Subscription. Dành cho Cá nhân | Trường ĐH, Nhóm, Thư Viện: Gọi 0915920514 để báo giá Pearson, Vital Source eBook hoặc mua Sách In
See what in the box
Mô tả sản phẩm
Tìm hiểu tất cả các kỹ năng thiết kế và phát triển mà bạn cần để tạo ra những trò chơi tuyệt vời với Unity, Engine trò chơi chuyên nghiệp phổ biến nhất thế giới
Nếu bạn muốn thiết kế và phát triển trò chơi, không gì có thể thay thế được trải nghiệm thực tế, mạnh mẽ với các kỹ thuật và công cụ hiện đại. Đó chính xác là những gì cuốn sách này cung cấp. Người hướng dẫn hàng đầu và nhà phát triển trò chơi độc lập Jeremy Gibson Bond đề cập đến cả ba lĩnh vực mà bạn cần để thành công: lý thuyết thiết kế trò chơi, tạo nguyên mẫu lặp lại nhanh và lập trình thực tế.
Dựa trên hai cuốn sách bán chạy nhất trước đây, Phiên bản thứ ba này có hàng trăm cải tiến trên hơn 400 trang mới, tất cả đều được thiết kế để khiến nó trở nên dễ hiểu hơn và hữu ích hơn trong việc phát triển trò chơi hiện đại.
Năm hướng dẫn trò chơi đã được sửa đổi và mở rộng kỹ lưỡng để bao gồm nhiều phương pháp hay nhất khác cho việc tạo nguyên mẫu và phát triển, đồng thời tất cả các ví dụ hiện đều sử dụng Unity 2020.3 LTS (Hỗ trợ dài hạn), một tiêu chuẩn ổn định và giàu tính năng trong nhiều năm tới. Nội dung mới bao gồm các hướng dẫn nâng cao đáng kể, một chương về Ngăn xếp công nghệ hướng dữ liệu (DOTS) hiệu suất cao của Unity, các Thử thách viết mã mới để giúp bạn chuyển sang tạo trò chơi của riêng mình từ đầu và các mẹo về các bước tiếp theo sau khi bạn đọc xong cuốn sách . Trang web được cải tiến bao gồm các phiên bản có thể chơi được của tất cả các trò chơi mẫu, cùng với một công cụ mới thú vị cung cấp phản hồi ngay lập tức về các lỗi tiềm ẩn trong mã của riêng bạn.
Phần I: Thiết kế trò chơi và tạo mẫu trên giấy
Sử dụng Layered Tetrad để hiểu và thiết kế những trải nghiệm tương tác mạnh mẽ.
Khám phá các phương pháp thiết kế trò chơi cốt lõi về tạo mẫu, thử nghiệm và lặp lại trên giấy.
Tìm hiểu các chiến lược hiệu quả để luôn đi đúng hướng và đúng tiến độ.
Nhận các mẹo để tìm được một công việc xứng đáng trong ngành ngày nay.
Phần II: Lập trình C# trong Unity
Tìm hiểu C# từ những điều cơ bản thông qua kế thừa lớp, lập trình hướng đối tượng và thiết kế hướng dữ liệu.
Phần III: Hướng dẫn nguyên mẫu trò chơi
Triển khai trò chơi trên năm thể loại: trò chơi điện tử, trò chơi vật lý thông thường, trò chơi bắn súng không gian, trò chơi bài solitaire và trò chơi phiêu lưu từ trên xuống. Mỗi trò chơi được thiết kế để có thể dễ dàng mở rộng vào các dự án của riêng bạn.
Đưa ba trò chơi từ nguyên mẫu đến trò chơi “có thể chơi được lần đầu tiên” thông qua các chương hướng dẫn mở rộng mới giúp cải tiến trò chơi hơn so với các phiên bản trước của cuốn sách.
MỚI! Phần IV: Các bước tiếp theo
Giải quyết thư viện Thử thách viết mã mới đang phát triển, một phương pháp đã được chứng minh để chuyển từ hướng dẫn sang tạo dự án của riêng bạn từ đầu.
Nhận ý tưởng và nguồn lực cho các dự án mới để bạn tự mình giải quyết.
Foreword
Preface
PART I Game Design and Paper Prototyping
Chapter 1
Thinking Like a Designer
You Are a Game Designer
Bartok: A Game Design Exercise
The Definition of Game
Summary
Chapter 2
Game Analysis Frameworks
Common Frameworks for Ludology
MDA: Mechanics, Dynamics, and Aesthetics
Formal, Dramatic, and Dynamic Elements
The Elemental Tetrad
Summary
Chapter 3
The Layered Tetrad
The Inscribed Layer
The Dynamic Layer
The Cultural Layer
The Responsibility of the Designer
Summary
Chapter 4
The Inscribed Layer
Inscribed Mechanics
Inscribed Aesthetics
Inscribed Narrative
Inscribed Technology
Summary
Chapter 5
The Dynamic Layer
The Role of the Player
Emergence
Dynamic Mechanics
Dynamic Aesthetics
Dynamic Narrative
Dynamic Technology
Summary
Chapter 6
The Cultural Layer
Beyond Play
Cultural Mechanics
Cultural Aesthetics
Cultural Narrative
Cultural Technology
Authorized Transmedia Are Not Part of the Cultural Layer
The Cultural Impact of a Game
Summary
Chapter 7
Acting Like a Designer
Iterative Design
Innovation
Brainstorming and Ideation
Changing Your Mind
Scoping!
Summary
Chapter 8
Design Goals
Design Goals: An Incomplete List
Designer-Centric Goals
Player-Centric Goals
Summary
Chapter 9
Paper Prototyping
The Benefits of Paper Prototyping
Paper Prototyping Tools
Paper Prototyping for Interfaces
A Paper Prototype Example
Best Uses for Paper Prototyping
Poor Uses for Paper Prototyping
Summary
Chapter 10
Game Testing
Why Playtest?
Being a Great Playtester Yourself
The Circles of Playtesters
Methods of Playtesting
Other Important Types of Testing
Summary
Chapter 11
Math and Game Balance
The Meaning of Game Balance
The Importance of Spreadsheets
Examining Dice Probability with Sheets
The Math of Probability
Randomizer Technologies in Paper Games
Weighted Distributions
Weighted Probability in Google Sheets
Permutations
Using Sheets to Balance Weapons
Positive and Negative Feedback
Summary
Chapter 12
Guiding the Player
Direct Guidance
Indirect Guidance
Teaching New Skills and Concepts
Summary
Chapter 13
Puzzle Design
Scott Kim on Puzzle Design
The Steps of Solving a Puzzle
Puzzle Examples in Action Games
Designing and Developing Puzzle Games
Summary
Chapter 14
The Agile Mentality
The Manifesto for Agile Software Development
Scrum Methodology
Burndown Chart Example
Creating Your Own Burndown Charts
Summary
Chapter 15
The Digital Game Industry
About the Game Industry
Game Education
Getting Into the Industry
Don't Wait to Start Making Games!
Summary
PART II Programming C# in Unity
Chapter 16
Thinking in Digital Systems
Systems Thinking in Board Games
An Exercise in Simple Instructions
Game Analysis: Apple Picker
Summary
Chapter 17
Introducing Unity Hub and the Unity Editor
Downloading Unity
Introducing Our Development Environment
Creating a Unity Account
Checking Out a Sample Project
Creating Your First Unity Project
Learning Your Way Around Unity
Setting Up the Unity Window Layout
Summary
Chapter 18
Introducing Our Language: C#
Understanding the Features of C#
Reading and Understanding C# Syntax
Summary
Chapter 19
Hello World: Your First Program
Creating a New Project
Making a New C# Script
Making Things More Interesting
Summary
Chapter 20
Variables and Components
Introducing Variables
Statically Typed Variables in C#
Important C# Variable Types
The Scope of Variables
Naming Conventions
Important Unity Variable Types
Unity GameObjects and Components
Summary
Chapter 21
Boolean Operations and Conditionals
Booleans
Comparison Operators
Conditional Statements
Summary
Chapter 22
Loops
Types of Loops
Set Up a Project
while Loops
do...while Loops
for Loops
foreach Loops
Jump Statements within Loops
Summary
Chapter 23
Collections in C#
C# Collections
Using Generic Collections
List<T>
Dictionary<Tkey, TValue>
Array
Multidimensional Arrays
Jagged Arrays
Jagged List<T>s
Choosing Whether to Use an Array or List
Summary
Chapter 24
Functions and Parameters
Setting Up the Function Examples Project
Definition of a Function
What Happens When You Call a Function?
Function Parameters and Arguments
Returning Values
Returning void
Function Naming Conventions
Why Use Functions?
Function Overloading
Optional Parameters
The params Keyword
Recursive Functions
Summary
Chapter 25
Debugging
Getting Started with Debugging
Stepping Through Code with the Debugger
Summary
Chapter 26
Classes
Understanding Classes
Class Inheritance
Summary
Chapter 27
Object-Oriented Thinking
The Object-Oriented Metaphor
An Object-Oriented Boids Implementation
Summary
Chapter 28
Data-Oriented Design
The Theory of Data-Oriented Design
DOTS Tutorial and Example
The Future of Unity DOTS
Summary
PART III Game Prototype Tutorials
Chapter 29
Apple Picker
What You Will Learn
The
Apple Picker
Prototype
The Purpose of a Digital Prototype
Preparing
Coding the
Apple Picker
Prototype
GUI and Game Management
Summary
Chapter 30
Mission Demolition
What You Will Learn
The
Mission Demolition
Prototype
Getting Started:
Mission Demolition
Game Prototype Concept
Art Assets
Coding the Prototype
From Prototype to First Playable
Summary
Chapter 31
Space SHMUP --
Part 1
What You Will Learn
Getting Started:
Space SHMUP
Setting the Scene
Making the Hero Ship
Adding Some Enemies
Spawning Enemies at Random
Setting Tags, Layers, and Physics
Making the Enemies Damage the Player
Restarting the Game
Shooting (Finally)
Summary
Chapter 32
Space SHMUP --
Part 2
What You Will Learn
Getting Started:
Space SHMUP
-- Part 2
Enemy to Enemy_0
Programming Other Enemies
Shooting Revisited
Showing Enemy Damage
Adding PowerUps and Boosting Weapons
Race Conditions & Script Execution Order
Making Enemies Drop PowerUps
Enemy_4 -- A More Complex Enemy
Tuning Settings for the Game Entities
Adding a Scrolling Starfield Background
Summary
Chapter 33
Prospector Solitaire
-- Part 1
What You Will Learn
The
Prospector
Game
Getting Started:
Prospector Solitaire
Build Settings
Setting Up the Unity Window Layout
Setting Up the Camera and Game Pane
Importing Images as Sprites
Constructing Cards from Sprites
Implementing
Prospector
in Code
Implementing Game Logic
Summary
Chapter 34
Prospector Solitaire --
Part 2
What You Will Learn
Getting Started:
Prospector --
Part 2
Additional
Prospector
Game Elements
Adding GUI Elements to Display the Score
Building and Running Your WebGL Build
Summary
Chapter 35
Dungeon Delver --
Part 1
What You Will Learn
The
Dungeon Delver
Game
Getting Started:
Dungeon Delver
Setting Up the Cameras
Understanding the Dungeon Data
Showing the Map with a Unity Tilemap
Adding the Hero
Giving Dray an Attack Animation
Dray's Sword
Programmatic Collision in Unity Tilemap
The InRoom Script
Enemy: Skeletos
Keeping GameObjects in the Room
Aligning to the Grid
Moving from Room to Room
Making the Camera Follow Dray
Summary
Chapter 36
Dungeon Delver --
Part 2
What You Will Learn
Getting Started:
Dungeon Delver --
Part 2
Dungeon Delver --
Part 2 Overview
Implementing TileSwaps
Swapping in LockedDoor GameObjects
Implementing Keys and Unlocking Doors
Adding GUI to Track Key Count and Health
Enabling Enemies to Damage Dray
Making Dray's Attack Damage Enemies
Modifying Enemy to Take Damage
Picking Up Items
Enemies Dropping Items on Death
Implementing a New Dungeon -- The Hat
Implementing a Grappler
Summary
Part IV Next Steps
Chapter 37
Coding Challenges
What Is a Coding Challenge?
Getting Started on a Coding Challenge
Filling in the Blanks
How to Approach Each Challenge
Chapter 38
Beyond This Book
Continue to Learn Unity Development
Build a Classic Game
Start a Small Game Project or Prototype
Make Games for Lifelong Enrichment
Consider Going to School for GameDev
Explore Advanced Game Design
Finally, Drop Me a Line
PART V Online Appendices
Appendix A
Standard Project Setup Procedure
The Set Up Sidebar for Tutorial Projects
Setting Up a New Project
Importing a Starter UnityPackage
Setting the Scene Name
Setting the Game Pane to Full HD (1080p)
Setting Up a WebGL Build
Understanding Unity Version Control
Summary
Appendix B
Useful Concepts
Topics Covered
C# and Unity Coding Concepts
Attributes
Automatic Properties
Bitwise Boolean Operators and Layer Masks
Coroutines
Unity Example--Coroutines
Delegates, Events, and UnityEvents
UnityEvents
Enums
Extension Methods
Interfaces
Unity Example--Interfaces
Unity Makes Frequent Use of Interfaces for Observer Pattern
JSON (JavaScript Object Notation) in Unity
Lambda Expressions =>
Naming Conventions
Object-Oriented Software Design Patterns
Component Pattern
Observer Pattern
Singleton Pattern
Strategy Pattern
More Information on Design Patterns in Game Programming
Operator Precedence and Order of Operations
Race Conditions
Unity Example--Race Conditions
Recursive Functions
String Interpolation -- $""
StringBuilder
Structs
Unity Messages Beyond Start() and Update()
Life-Cycle Messages
Frame-Based Messages
Physics-Based Messages
Variable Scope
XML
XML Documentation in C#
Math Concepts
Cosine and Sine (Cos and Sin)
Unity Example--Sine and Cosine
Dice Probability Enumeration
Unity Example--Dice Probability
Using Data-Oriented Design to Improve the DiceProbability Code
Dot Product
Interpolation
Linear Interpolation
Time-Based Linear Interpolations
Linear Interpolations Using Zeno's Paradox
Interpolating More Than Just Position
Linear Extrapolation
Easing for Linear Interpolations
Bezier Curves
Three-Point and Four-Point Bezier Curves
A Recursive Bezier Curve Function
A Data-Oriented Bezier Function
Pen-and-Paper Roleplaying Games
Tips for Running a Good Roleplaying Campaign
User Interface Concepts
Complex Game Controller Input
Input Manager Mapping for Various Controllers
Right-Click on macOS
Control-Click = Right-Click
Use Any PC Mouse
Set Your macOS Mouse to Right-Click
Set Your macOS Trackpad to Right-Click
Appendix C
Online Reference
Tutorials
Unite Conference
Unity's YouTube Channel
Programming
Searching Tips
Finding and Creating Assets
Other Tools and Educational Discounts
Appendix D
Tips for Teaching from This Book
The Goal of This Appendix
Teaching Introduction to Game Design
Teaching Introduction to Game Programming
More Information Is Available
Tìm hiểu tất cả các kỹ năng thiết kế và phát triển mà bạn cần để tạo ra những trò chơi tuyệt vời với Unity, Engine trò chơi chuyên nghiệp phổ biến nhất thế giới
Nếu bạn muốn thiết kế và phát triển trò chơi, không gì có thể thay thế được trải nghiệm thực tế, mạnh mẽ với các kỹ thuật và công cụ hiện đại. Đó chính xác là những gì cuốn sách này cung cấp. Người hướng dẫn hàng đầu và nhà phát triển trò chơi độc lập Jeremy Gibson Bond đề cập đến cả ba lĩnh vực mà bạn cần để thành công: lý thuyết thiết kế trò chơi, tạo nguyên mẫu lặp lại nhanh và lập trình thực tế.
Dựa trên hai cuốn sách bán chạy nhất trước đây, Phiên bản thứ ba này có hàng trăm cải tiến trên hơn 400 trang mới, tất cả đều được thiết kế để khiến nó trở nên dễ hiểu hơn và hữu ích hơn trong việc phát triển trò chơi hiện đại.
Năm hướng dẫn trò chơi đã được sửa đổi và mở rộng kỹ lưỡng để bao gồm nhiều phương pháp hay nhất khác cho việc tạo nguyên mẫu và phát triển, đồng thời tất cả các ví dụ hiện đều sử dụng Unity 2020.3 LTS (Hỗ trợ dài hạn), một tiêu chuẩn ổn định và giàu tính năng trong nhiều năm tới. Nội dung mới bao gồm các hướng dẫn nâng cao đáng kể, một chương về Ngăn xếp công nghệ hướng dữ liệu (DOTS) hiệu suất cao của Unity, các Thử thách viết mã mới để giúp bạn chuyển sang tạo trò chơi của riêng mình từ đầu và các mẹo về các bước tiếp theo sau khi bạn đọc xong cuốn sách . Trang web được cải tiến bao gồm các phiên bản có thể chơi được của tất cả các trò chơi mẫu, cùng với một công cụ mới thú vị cung cấp phản hồi ngay lập tức về các lỗi tiềm ẩn trong mã của riêng bạn.
Phần I: Thiết kế trò chơi và tạo mẫu trên giấy
Sử dụng Layered Tetrad để hiểu và thiết kế những trải nghiệm tương tác mạnh mẽ.
Khám phá các phương pháp thiết kế trò chơi cốt lõi về tạo mẫu, thử nghiệm và lặp lại trên giấy.
Tìm hiểu các chiến lược hiệu quả để luôn đi đúng hướng và đúng tiến độ.
Nhận các mẹo để tìm được một công việc xứng đáng trong ngành ngày nay.
Phần II: Lập trình C# trong Unity
Tìm hiểu C# từ những điều cơ bản thông qua kế thừa lớp, lập trình hướng đối tượng và thiết kế hướng dữ liệu.
Phần III: Hướng dẫn nguyên mẫu trò chơi
Triển khai trò chơi trên năm thể loại: trò chơi điện tử, trò chơi vật lý thông thường, trò chơi bắn súng không gian, trò chơi bài solitaire và trò chơi phiêu lưu từ trên xuống. Mỗi trò chơi được thiết kế để có thể dễ dàng mở rộng vào các dự án của riêng bạn.
Đưa ba trò chơi từ nguyên mẫu đến trò chơi “có thể chơi được lần đầu tiên” thông qua các chương hướng dẫn mở rộng mới giúp cải tiến trò chơi hơn so với các phiên bản trước của cuốn sách.
MỚI! Phần IV: Các bước tiếp theo
Giải quyết thư viện Thử thách viết mã mới đang phát triển, một phương pháp đã được chứng minh để chuyển từ hướng dẫn sang tạo dự án của riêng bạn từ đầu.
Nhận ý tưởng và nguồn lực cho các dự án mới để bạn tự mình giải quyết.
Foreword
Preface
PART I Game Design and Paper Prototyping
Chapter 1
Thinking Like a Designer
You Are a Game Designer
Bartok: A Game Design Exercise
The Definition of Game
Summary
Chapter 2
Game Analysis Frameworks
Common Frameworks for Ludology
MDA: Mechanics, Dynamics, and Aesthetics
Formal, Dramatic, and Dynamic Elements
The Elemental Tetrad
Summary
Chapter 3
The Layered Tetrad
The Inscribed Layer
The Dynamic Layer
The Cultural Layer
The Responsibility of the Designer
Summary
Chapter 4
The Inscribed Layer
Inscribed Mechanics
Inscribed Aesthetics
Inscribed Narrative
Inscribed Technology
Summary
Chapter 5
The Dynamic Layer
The Role of the Player
Emergence
Dynamic Mechanics
Dynamic Aesthetics
Dynamic Narrative
Dynamic Technology
Summary
Chapter 6
The Cultural Layer
Beyond Play
Cultural Mechanics
Cultural Aesthetics
Cultural Narrative
Cultural Technology
Authorized Transmedia Are Not Part of the Cultural Layer
The Cultural Impact of a Game
Summary
Chapter 7
Acting Like a Designer
Iterative Design
Innovation
Brainstorming and Ideation
Changing Your Mind
Scoping!
Summary
Chapter 8
Design Goals
Design Goals: An Incomplete List
Designer-Centric Goals
Player-Centric Goals
Summary
Chapter 9
Paper Prototyping
The Benefits of Paper Prototyping
Paper Prototyping Tools
Paper Prototyping for Interfaces
A Paper Prototype Example
Best Uses for Paper Prototyping
Poor Uses for Paper Prototyping
Summary
Chapter 10
Game Testing
Why Playtest?
Being a Great Playtester Yourself
The Circles of Playtesters
Methods of Playtesting
Other Important Types of Testing
Summary
Chapter 11
Math and Game Balance
The Meaning of Game Balance
The Importance of Spreadsheets
Examining Dice Probability with Sheets
The Math of Probability
Randomizer Technologies in Paper Games
Weighted Distributions
Weighted Probability in Google Sheets
Permutations
Using Sheets to Balance Weapons
Positive and Negative Feedback
Summary
Chapter 12
Guiding the Player
Direct Guidance
Indirect Guidance
Teaching New Skills and Concepts
Summary
Chapter 13
Puzzle Design
Scott Kim on Puzzle Design
The Steps of Solving a Puzzle
Puzzle Examples in Action Games
Designing and Developing Puzzle Games
Summary
Chapter 14
The Agile Mentality
The Manifesto for Agile Software Development
Scrum Methodology
Burndown Chart Example
Creating Your Own Burndown Charts
Summary
Chapter 15
The Digital Game Industry
About the Game Industry
Game Education
Getting Into the Industry
Don't Wait to Start Making Games!
Summary
PART II Programming C# in Unity
Chapter 16
Thinking in Digital Systems
Systems Thinking in Board Games
An Exercise in Simple Instructions
Game Analysis: Apple Picker
Summary
Chapter 17
Introducing Unity Hub and the Unity Editor
Downloading Unity
Introducing Our Development Environment
Creating a Unity Account
Checking Out a Sample Project
Creating Your First Unity Project
Learning Your Way Around Unity
Setting Up the Unity Window Layout
Summary
Chapter 18
Introducing Our Language: C#
Understanding the Features of C#
Reading and Understanding C# Syntax
Summary
Chapter 19
Hello World: Your First Program
Creating a New Project
Making a New C# Script
Making Things More Interesting
Summary
Chapter 20
Variables and Components
Introducing Variables
Statically Typed Variables in C#
Important C# Variable Types
The Scope of Variables
Naming Conventions
Important Unity Variable Types
Unity GameObjects and Components
Summary
Chapter 21
Boolean Operations and Conditionals
Booleans
Comparison Operators
Conditional Statements
Summary
Chapter 22
Loops
Types of Loops
Set Up a Project
while Loops
do...while Loops
for Loops
foreach Loops
Jump Statements within Loops
Summary
Chapter 23
Collections in C#
C# Collections
Using Generic Collections
List<T>
Dictionary<Tkey, TValue>
Array
Multidimensional Arrays
Jagged Arrays
Jagged List<T>s
Choosing Whether to Use an Array or List
Summary
Chapter 24
Functions and Parameters
Setting Up the Function Examples Project
Definition of a Function
What Happens When You Call a Function?
Function Parameters and Arguments
Returning Values
Returning void
Function Naming Conventions
Why Use Functions?
Function Overloading
Optional Parameters
The params Keyword
Recursive Functions
Summary
Chapter 25
Debugging
Getting Started with Debugging
Stepping Through Code with the Debugger
Summary
Chapter 26
Classes
Understanding Classes
Class Inheritance
Summary
Chapter 27
Object-Oriented Thinking
The Object-Oriented Metaphor
An Object-Oriented Boids Implementation
Summary
Chapter 28
Data-Oriented Design
The Theory of Data-Oriented Design
DOTS Tutorial and Example
The Future of Unity DOTS
Summary
PART III Game Prototype Tutorials
Chapter 29
Apple Picker
What You Will Learn
The
Apple Picker
Prototype
The Purpose of a Digital Prototype
Preparing
Coding the
Apple Picker
Prototype
GUI and Game Management
Summary
Chapter 30
Mission Demolition
What You Will Learn
The
Mission Demolition
Prototype
Getting Started:
Mission Demolition
Game Prototype Concept
Art Assets
Coding the Prototype
From Prototype to First Playable
Summary
Chapter 31
Space SHMUP --
Part 1
What You Will Learn
Getting Started:
Space SHMUP
Setting the Scene
Making the Hero Ship
Adding Some Enemies
Spawning Enemies at Random
Setting Tags, Layers, and Physics
Making the Enemies Damage the Player
Restarting the Game
Shooting (Finally)
Summary
Chapter 32
Space SHMUP --
Part 2
What You Will Learn
Getting Started:
Space SHMUP
-- Part 2
Enemy to Enemy_0
Programming Other Enemies
Shooting Revisited
Showing Enemy Damage
Adding PowerUps and Boosting Weapons
Race Conditions & Script Execution Order
Making Enemies Drop PowerUps
Enemy_4 -- A More Complex Enemy
Tuning Settings for the Game Entities
Adding a Scrolling Starfield Background
Summary
Chapter 33
Prospector Solitaire
-- Part 1
What You Will Learn
The
Prospector
Game
Getting Started:
Prospector Solitaire
Build Settings
Setting Up the Unity Window Layout
Setting Up the Camera and Game Pane
Importing Images as Sprites
Constructing Cards from Sprites
Implementing
Prospector
in Code
Implementing Game Logic
Summary
Chapter 34
Prospector Solitaire --
Part 2
What You Will Learn
Getting Started:
Prospector --
Part 2
Additional
Prospector
Game Elements
Adding GUI Elements to Display the Score
Building and Running Your WebGL Build
Summary
Chapter 35
Dungeon Delver --
Part 1
What You Will Learn
The
Dungeon Delver
Game
Getting Started:
Dungeon Delver
Setting Up the Cameras
Understanding the Dungeon Data
Showing the Map with a Unity Tilemap
Adding the Hero
Giving Dray an Attack Animation
Dray's Sword
Programmatic Collision in Unity Tilemap
The InRoom Script
Enemy: Skeletos
Keeping GameObjects in the Room
Aligning to the Grid
Moving from Room to Room
Making the Camera Follow Dray
Summary
Chapter 36
Dungeon Delver --
Part 2
What You Will Learn
Getting Started:
Dungeon Delver --
Part 2
Dungeon Delver --
Part 2 Overview
Implementing TileSwaps
Swapping in LockedDoor GameObjects
Implementing Keys and Unlocking Doors
Adding GUI to Track Key Count and Health
Enabling Enemies to Damage Dray
Making Dray's Attack Damage Enemies
Modifying Enemy to Take Damage
Picking Up Items
Enemies Dropping Items on Death
Implementing a New Dungeon -- The Hat
Implementing a Grappler
Summary
Part IV Next Steps
Chapter 37
Coding Challenges
What Is a Coding Challenge?
Getting Started on a Coding Challenge
Filling in the Blanks
How to Approach Each Challenge
Chapter 38
Beyond This Book
Continue to Learn Unity Development
Build a Classic Game
Start a Small Game Project or Prototype
Make Games for Lifelong Enrichment
Consider Going to School for GameDev
Explore Advanced Game Design
Finally, Drop Me a Line
PART V Online Appendices
Appendix A
Standard Project Setup Procedure
The Set Up Sidebar for Tutorial Projects
Setting Up a New Project
Importing a Starter UnityPackage
Setting the Scene Name
Setting the Game Pane to Full HD (1080p)
Setting Up a WebGL Build
Understanding Unity Version Control
Summary
Appendix B
Useful Concepts
Topics Covered
C# and Unity Coding Concepts
Attributes
Automatic Properties
Bitwise Boolean Operators and Layer Masks
Coroutines
Unity Example--Coroutines
Delegates, Events, and UnityEvents
UnityEvents
Enums
Extension Methods
Interfaces
Unity Example--Interfaces
Unity Makes Frequent Use of Interfaces for Observer Pattern
JSON (JavaScript Object Notation) in Unity
Lambda Expressions =>
Naming Conventions
Object-Oriented Software Design Patterns
Component Pattern
Observer Pattern
Singleton Pattern
Strategy Pattern
More Information on Design Patterns in Game Programming
Operator Precedence and Order of Operations
Race Conditions
Unity Example--Race Conditions
Recursive Functions
String Interpolation -- $""
StringBuilder
Structs
Unity Messages Beyond Start() and Update()
Life-Cycle Messages
Frame-Based Messages
Physics-Based Messages
Variable Scope
XML
XML Documentation in C#
Math Concepts
Cosine and Sine (Cos and Sin)
Unity Example--Sine and Cosine
Dice Probability Enumeration
Unity Example--Dice Probability
Using Data-Oriented Design to Improve the DiceProbability Code
Dot Product
Interpolation
Linear Interpolation
Time-Based Linear Interpolations
Linear Interpolations Using Zeno's Paradox
Interpolating More Than Just Position
Linear Extrapolation
Easing for Linear Interpolations
Bezier Curves
Three-Point and Four-Point Bezier Curves
A Recursive Bezier Curve Function
A Data-Oriented Bezier Function
Pen-and-Paper Roleplaying Games
Tips for Running a Good Roleplaying Campaign
User Interface Concepts
Complex Game Controller Input
Input Manager Mapping for Various Controllers
Right-Click on macOS
Control-Click = Right-Click
Use Any PC Mouse
Set Your macOS Mouse to Right-Click
Set Your macOS Trackpad to Right-Click
Appendix C
Online Reference
Tutorials
Unite Conference
Unity's YouTube Channel
Programming
Searching Tips
Finding and Creating Assets
Other Tools and Educational Discounts
Appendix D
Tips for Teaching from This Book
The Goal of This Appendix
Teaching Introduction to Game Design
Teaching Introduction to Game Programming
More Information Is Available