Learning C# by Developing Games with Unity 2021 Review
There’s nothing quite like the joy and excitement of game development. It’s the reason I started programming and is still the reason I enjoy programming today.
I’m always seeking new resources to help people get started on their game development journey. Today, I’m reviewing the digital version of Learning C# by Developing Games with Unity 2021 (sixth edition) by Harrison Ferrone and Packt.
The book has 14 chapters, ending chapter 14 on page 385. The book is well-paced from beginning to end, providing everything from getting a Unity/C# environment setup to building a game called Hero Born from scratch.
Each topic is introduced at just the right time for beginners, and each chapter has a pop quiz to give readers a chance to check their understanding (I wish every tech book would include this!). There’s a section at the end of the book with all answers to the quizzes to check your answers.
Here’s the chapter outline:
- Getting to Know Your Environment
- The Building Blocks of Programming
- Diving into Variables, Types, and Methods
- Control Flow and Collection Types
- Working with Classes, Structs, and OOP
- Getting Your Hands Dirty with Unity
- Movement, Camera Controls, and Collisions
- Scripting Game Mechanics
- Basic AI and Enemy Behavior
- Revisiting Types, Methods, and Classes
- Introducing Stacks, Queues, and HashSets
- Saving, Loading, and Serializing Data
- Exploring Generics, Delegates, and Beyond
- The Journey Continues
As the title suggests, this book will teach you everything you need to know to get a solid foundation in C#. You’ll start with the building blocks of programming, covering how to define, name, and initialize variables and see results in the Unity Console Window.
You’ll notice the author uses a spiral curriculum structure in which key concepts are repeated when more complexity needs to be introduced to learn the next topic. I’ve always found this approach far more effective than describing all the complexity up-front when introducing new concepts.
The book covers far too much for me to go through in detail. Here are just some of the C# concepts you’ll learn and practice throughout the book:
- Control Flow
- Object-Oriented Programming Concepts
As you’re learning C#, you’ll be applying it in the context of Unity. The author has done a great job pointing out Unity specifics, like the component-based model, MonoBehaviour, editing fields in the Unity inspector, etc.
I love that this book does more than direct you to Unity; it covers game design with a primer that talks about some points for planning your game design, such as the big-picture concept, core mechanics, story, and art style. It also details standard documents in game development, namely Game Design Document (GDD) and Technical Design Document (TDD).
That’s just the start! Once you begin building Hero Born, you’ll learn to use primitives and materials to white-box the level using the editor tools, prefabs, setting up lighting, handling physics and collisions, adding animation via code and the Unity Animation window, and much, much more.
What’s Not Covered
Rather than list everything covered, it would be easier to list what is not. The following list is from chapter 14. If you’re looking for detail on these topics, you may want to find additional resources.
- Shaders and effects
- Scriptable Objects
- Editor extension scripting
- ProBuilder and Terrain tools
- PlayerPrefs and saving data
- Model rigging
- Animator states and transitions
This book is easy for me to recommend. It’s one of the best beginner-focused books I’ve read for Unity. I’m stoked that we have such tools and resources available for anyone who wants to get into game development today. Check it out and get started making your first game!