Brief synopsis of Learning C# by Developing Games with Unity 2020
Learning C# by Developing Games with Unity 2020 is a polished book that focuses on applying C# programming to Unity 3D in a beginner-friendly package. It’s a brisk read because it’s formatted to be easy on the eyes and the author delivers a fun and positive reinforcing tone. The reader is led through the creation of a simple game which serves as a very practical application of the core techniques required to manipulate objects and components in Unity 3D. Much of the complexity of C# is boiled down to essential concepts while edge cases best left to intermediate level books are skipped entirely. This is not a bad thing; not at all. It allows the reader to plow forward at high speed without getting bogged down. Finally, the author spends some time acknowledging advanced concepts the reader needs to pursue on their own. That is, advanced OOP and game programming patterns. This is important because many books and courses targeting Unity 3D for beginners don’t even acknowledge that these very important techniques exist in favor of speeding the reader towards completing a poorly-performing unscalable mess they call a "game."
This book is 331 pages not including the chapter quiz answers and index content at the back of the book.
Print and binding quality
This book appears to be very high quality with a matte textured finish on the cover; it feels nice to the touch; the print is large and easy to read with generous use of white space. The pictures are in grayscale, but they are clear enough. There are no noticeable issues with print quality; in fact, this book is above average in that regard.
The target audience is the beginner with no previous programming experience looking to get started with C# programming in Unity 3D. This book would also be appropriate for someone that has some experience with the interface of Unity 3D, but lacks a practical understanding of scripting in C#. The emphasis is very much on the programming in Unity 3D and scripting is used to perform as many operations as possible, even those that could efficiently be performed on the front end via the GUI. Finally, this book might also be a great choice for someone experienced in C# that has no experience with Unity 3D specifically.
Relevance to game development
The relevance of this book to game development is 100% of course. The title should make that abundantly clear. However, the author earns extra brownie points for actually talking about things like programming patterns. Most other beginner Unity 3D books and courses tend to skip these important topics entirely. I can appreciate when programming patterns are talked around right from the start, even if it’s just to direct the reader to follow-up on their own.
How Learning C# by Developing Games with Unity 2020 should be read
For absolute beginners this book should be read linearly from start to finish. The author walks the reader through the creation of a simple game throughout the book so skipping sections won’t really work. If you have some measure of experience already the book would also serve as a handy reference for the very basic principles of applying C# programming to Unity 3D.
Some of the best features found in this book include getting to learn C# programming while using Unity 3D; this keeps things interesting and engaging because you’re making a game while learning. Concepts are kept extremely focused; everything is boiled down to the most essential content that needs to be learned; edge cases are largely ignored. This is good because beginners often get bogged down easily with extraneous information. The last thing you want is for a new reader to become frustrated, overwhelmed, or to quit. The pace of the book is fast and keeps the reader plowing through quickly. Even short reading sessions will tend to yield a satisfying amount of progress. Finally, the author mentions other critical areas of study outside the scope of the book necessary for the reader to learn, like programming patterns.
What I wish was different
The author simplifies C# programming to make the material easier for beginners to digest. I can understand and appreciate that. However, there are some instances where the information is not strictly true, overgeneralizes, or doesn’t mention that other solutions exist. Now, I don’t think it’s a bad thing to keep things simple. Edge cases and complex-but-rarely-used functionality just serve to bog down beginners, but I want the author to explicitly state when he or she is “dumbing” things down a bit. This author doesn’t always do that; he does it occasionally, but there are many instances, especially at the beginning of the book, where that doesn’t happen.
The generous use of white space and large print really made me feel like I was making fast progress; I was completing pages at a much faster rate than the average densely-written computer book. I continually felt a great sense of satisfaction and it encouraged me to keep reading more because the progress was so noticeable. I only found a single typo that I can remember which, I suppose, is not surprising considering it’s the 5th edition. I would put this in the category of well-written books with far fewer errors than average.
Code quality in Learning C# by Developing Games with Unity 2020
Overall the example code is pretty great. As the code base is built up over time the author bolds the changes and new code being added while hiding sections not being altered. The structure of the game constructed throughout the book is simple and clean; you’ll never get lost or disoriented. The author even explains why he chooses to put code in one script versus another. Again, this is something I rarely see in programming books. Whether you agree or disagree with the choices made it helps the reader follow the author’s thought processes.
The tone I get while reading this book is positive and upbeat. There is far more personality being conveyed compared to other computer books on average. This makes the content easier to read and it doesn’t feel like a textbook at all.
At the time of writing this book has 174 global ratings with an overall score of 4.6 out of 5 stars. I’ll respond to the two lowest reviews on the site.
This review is totally inaccurate. If this person really only read the first two chapters that amounts to a total of 44 pages. Since this book is so generously spaced and peppered with large screen shots this really translates to no more than 20 pages in any other book, probably less. The first chapter covers setting up Unity. Chapter two focuses on introducing Unity’s interface and basic variables. I remember reading these chapters and actually saying to myself “wow, this book reads fast!” The content is on par with every other “intro to Unity” book or course except this author has much more personality than the average computer book writer.
The next review slammed this book with a 1 star rating; ouch! But does this hold any water? In short, no. Not a chance. I can only remember a single time when the book instructed the reader to do something without an explanation and it was specifically an optional challenge. All other content is explained. In order to keep the book succinct the author will not re-explain the same task over and over again. I mean, would you want that? No, you learn a concept and build upon it. If you forgot something or need a refresher you go back to the section it was explained in and you read it again. It’s that simple. The code does everything it’s supposed to. The examples are quite simple and straightforward. If you have a computer science degree and you cannot figure out the very basic concepts being introduced here there is something serious going on behind the scenes we don’t know about. You may also want to consider changing careers. No offense.
Should you buy Learning C# by Developing Games with Unity 2020?
I highly recommend this book. This is a perfect first game programming book with very little to complain about. It gets the job done and it directs you on a path to get even better once it finishes. Based on the price and content I would purchase this one new. Just keep in mind, this book strongly focuses on C# programming. You will be creating a game while learning, but that game is quite simple. It really just exists as a way to demonstrate the programming concepts being taught. That said, you absolutely need to know what is being taught in this book if you want to make your own Unity 3D games. That is, if you don’t want them to suck.