Unity 5.x By Example

Book 3 already! So this time we’re looking at “Unity 5.x By Example”. This book explores Unity in a hands-on, practical way by looking at concrete examples that result in real playable games. In other words, you’re going to learn how to make games by making games. The book is divided into 4 projects, both 2D and 3D.
(Just want to play the game? Play it >>HERE<< )

Who Is This Book For?
While the author recommends some base level of game dev knowledge, I found that probably anyone would benefit from the book. I will say that if you have a weak programming background you will probably struggle to finish beyond project A. If you miss something small, it will be very difficult to figure it out without some coding skill. On the other hand, more advanced reader’s might benefit from the performance tips. With all that said, the teaching approach is very incremental and everything is explained so well (at least in the first half, I’ll touch on the rest later) that I breezed through much of it.

Mandatory Skills Will Be Taught
Finally! If you have been following along, you’ll know I dislike an author who shrugs off responsibility for teaching prerequisite tools. The author takes immediate action in teaching the very basics of the interface.

Get Your Feet Wet With Unity
Project A is a small collect the coins game with a FPS perspective. The instructions are thorough, leaving nothing behind. The author goes step-by-step and more importantly describes multiple ways to do the same thing. When coding, everything is summarised well. Notes are scattered throughout the lessons, emphasising possible errors, or expanding on a concept. The use of screenshots really helped keep me on track, especially where if the written explanation was a bit hard to follow, the pictures would highlight exactly what I need. Beyond the basics, the author gives a lot of good info for more experienced users such as:object pooling, Event-driven programming, Finite-State-Machines(FSMs), performance improvement and analysing. I won’t go into detail as I try to keep these reviews brief. Project B is an Asteroids clone, which experiences a sharp spike in difficulty that may deter readers from finishing the book, but the extra effort is indeed worth it.

Close But No Cigar
After doing such a stellar job with the first 2 projects, the quality of teaching seems to slope downward chapter-by-chapter. Where initially in earlier chapters the author would go into great detail, keeping the reader up to speed. The author begins to shorten descriptions or all-together omit vital information (e.g., project C shows how to create level 1, then just says to create levels 2-3 and gives no explanation how to travel between levels). On top of these flaws, naming conventions and coding style change. I feel as though the author may have taken a break between finishing A/B and C/D.

Quotes

“For your own projects, you may not want to make a twin-stick shooter, and that’s fine. I cannot possibly know every kind of game that you want to make. However, it’s important to see the ideas and tools used here as being transferrable, as being the kind of things you can creatively use for your own games.”

“Both are, ultimately, simple games in that they don’t rely on advanced mechanics or display sophisticated features. However, even very sophisticated games, when boiled down to their fundamental ingredients, can be found to rest on a similar foundation of essential concepts such as the ones that we’ve covered so far. That’s why our projects are so critical to understanding Unity in a deep way.”

Summary Overall, the book has a lot to offer including a stellar intro to Unity. The problem is that the author loses his footing halfway, with a dramatic drop in quality of teaching. Citing the need to be concise as to why material is omitted or not repeated is not a reason but an excuse. In addition, changing coding and teaching style mid-way through a book is a total disaster that will frustrate those who attempt to follow along. Just imagine if you took a break between chapters and completely forgot how to do something. Initially, I was in spirit to give a high rating, but a potentially great book is held back by its defective consistency. The first project (FPS) has a slow methodical pace with beginner material. There is a quick jump in difficulty with project B (2D space shooter) that a background in C# will make easier. With project’s C and D not resembling functional games.

After I finished reading the book. I decided to break off the training wheels and experimented heavily in Unity for the first time. I ended up creating a virtual arcade where you can play with some of the projects. My original design was to have the machines function while remaining in the arcade but that ended up a hilarious disaster.
Play Dizzy’s Arcade >>HERE<<

What’s New?
Introducing a new colour-scale to accompany my ratings:
*Green – Highly recommend. Up-to-date and near flawless.
*Blue – Recommend. Acceptable level of obsolete code / flaws.
*Yellow – Highly flawed/aged, but with patience reader’s stand to learn something.
*Red – no

rating: 7/10 Recommended
A little visualisation for everything so far.


Looking Back…

This book really had so much  potential. It was the first time I started to get comfortable with the tools and UI thanks to a fantastic intro. The projects all offered unique concepts and I felt more challenged each chapter. The problem was the second half of the book is incomplete, often missing entire sections like a level-change system the author talks about. I would recommend it based on the first half alone, but tread carefully after that.