We have reviewed many Unity books before, however, we never reviewed a full-on Unity book geared to Unity-experienced developers. That's exactly why Packt Publishing, with the help of Jate Wittayabundit, released Unity 3 Game Development Hotshot.
With just a word of warning, Unity 3 Game Development Hotshot is far from a beginners book. You should be familiar with Unity enough and know your way around things.
With that said, let's get right into the review! But first, I'm sure you want to hear a little of my Unity background. Without boring you, I've been a game developer for quite some time and started to use Unity around a year and a half ago. I was able to pick up Unity very quickly as the way the Unity team implemented scripting is just perfect. I would not call myself an expert, but I would say I know my way around.
Unity 3 Game Development Hotshot provides a ton of information. With its eight chapters and four appendixes about all kinds of info, this book is one of the most informational Unity books I have ever read.
But then again, in 380 pages, you can for sure cover quite a bit. Here are some of the main concepts that Jate has discussed:
- Basics like creating a camera, 2D, physics, and sound
- Using GUI Skin to create menus and tabs
- Exporting 3D models to FPX from 3D Studio Max
- Creating control scripts
- Forming rockets and particles
- Building a smart AI
- Optimizing code using the profiler
- Constructing a ragdoll
- Loading and saving high school data from and to a server
- Explaining all the different ways to write shaders
As you can clearly see, Jate has put a great deal of work into Unity 3 Game Development Hotshot; he really knows his stuff. From artificial intelligence programming to working with particles, this book is massively informational.
I really have to say, I am quite impressed with Unity 3 Game Development Hotshot. All of the chapters and appendixes fit together so well, that the entire book keeps you interested in the content page after page. Not only is it packed with more than I could ask for, the writing is very professional and organized.
Unlike other Unity books I have read from Packt Publishing, this book does not take the beginning approach at all. Instead, Jate decided to jump right on in on a platformer game, or commonly known as a 2D game. Even though this might not be a beginner’s book, starting of with a 2D game removes the Z-axis, thus virtually disabling the 3D part in Unity. This way, chapter one can focus more on the learning curve and not have to worry about the 3D aspects just yet.
From the basics of creating a camera and a level to creating a special character class to handle certain functions, this chapter is always crammed with helpful, real-world information.
In just forty-one pages, Jate has guided you though with building quite a fun 2D platformer.
This chapter is all about the user interface tools, specifically the GUI class in Unity. With the chapter being split into five parts, it gives the reader a gist on how to apply GUI Skin into your game.
In fact, I would say that half of the chapter is simply using the Unity inspector to customize all kinds of properties. The other half is simply the code used to control the entire menu that is being built.
With Jate’s amazing guidance, you’ll quickly learn how to populate labels dynamically and to even use the powerful Unity GUI tools to create lists that can scroll.
This chapter is so practical as in every game, you need to have an user interface; you wouldn’t want the gamer playing a game with no UI! However, as there is no set way to create an UI, it can sometimes be a bit confusing on the best way to create the perfect UI. With Jate’s code and directions that just make sense, it just makes you feel so confident that you can build any UI that you see.
Chapter three takes on an important concept in any 3D game, shaders. Writing shaders is very difficult as the entire concept of Cg/HLSL programming is a bit challenging, but Jate takes you along the path of writing a nice and simple shader.
He starts out mentioning that a shader is built up of six main parts (or textures). After he has all the main textures established, he starts to write about how diffuse/specular lighting work, which are two different algorithms in shader programming that do look quite different.
He then goes on speaking up how to export a 3D model to the FBX format for Unity’s use and then programming the shader itself. The programming isn’t too difficult, but I am quite glad that Jate goes on and discusses how how the vertex and pixel shader programing come together for a full blown shader. If you never knew how shaders really worked (which I’ll be honest, I knew how to create them just not the full on technical aspects of them), I’m sure this chapter will help correct that.
The next chapter, chapter four, is all about animation to make your 3D character more realistic.
If you’re going to build a 3D character that’s interactive, you will need all kinds of animations to handle running, walking, jumping, and et cetera. Jate guides you the first part adding in all the animations into Unity.
After that, you somehow need to control these animations and adjust their speed based on the current condition, which would be done by a control script. Thing is, you cannot always change an animation on the fly so he used the CrossFade() function to blend the two animation clips together.
This chapter is so useful, that if you are going to buy any Unity book before you create your super-awesome 3D project, I’d buy it for this chapter. You’re most likely going to have some kind of character, and with this chapter, you’ll know exactly how to make you character more realistic than ever.
We all like rockets in 3D games; it just adds the extra flare and fun to the game. Thing is, there are many things that need to be taken into consideration when adding a rocket into your game. Throughout this entire chapter, Jate will teach you how to set up your character for the rocket launcher, making sure movement is stopped in the character, creating the animations, creating the scope target, making the rocket launcher do its thing, and lastly making an object for the rocket launcher.
Sure, it might just be a few particles and a 3D model of a gun and a character, but in order to control everything and make sure the rocket is fired at the right time is a bit complicated.
All in all, chapter five is one big chapter achieving one solid concept, firing a rocket.
Artificial intelligence is one extremely rough concept in any kind of game. For most games, using any kind of random function will help mimic artificial intelligence.
To keep things a bit short, this chapter is quite the chapter in terms of learning. Designing any kind of AI is quite tough, but Jate did one heck of a job with this random-based AI
Also, one intelligent think Jate did is create a Jump() function to make sure the enemy will jump when it hits a wall. So essentially, you will create a waypoint for the enemy to travel, whether in order or random, make the enemy follow the path, and if the enemy hits a wall, make the enemy jump. And of course if it comes near the character, start to shoot at it!
Quite a simple concept that really does not use any advanced concepts. And the author even combines some already created scripts together to control the movement of the enemy.
This chapter is one of my favorite chapters as it deals with optimizing scripts for ultimate performance and a bit more. Instead of creating one huge capsule around the capsule, it would make sense to create a ray cast (picture it as a line below the character) to check if the character hit something, in this case, the enemy hitting a wall.
As the capsule was being generated on every frame when the AI was walking, it was lowing the FPS quite a bit. Generating a ray cast saves a ton of processing power, which Jate clearly wrote about. Jate also spoke about a bit on Unity Pro’s profiler, which can be used to check how much processing power and resources everything takes.
Not only is optimization a key part of this chapter, there is also an added section about replacing the character’s mesh with a ragdoll prefab, so when the AI/player dies, its body will conform to the ground. And then he even adds in some extra things like making a wall destructible and also making an object, like a wall dynamically break by a trigger action.
Along with chapter four, chapter seven is also one of those chapters I would buy this book for. Knowing why your game is slowing down is critical to every game developer.
Chapter eight merges into a whole different subject, creating a high score menu and sending and loading the high scores. As this chapter deals with the internet, you get a slight break from the 3D world and learning how to implement a fully working high score system in your game.
Just a really nice added chapter that is really needed for any 3D game... like you can believe, there is a good portion of code in this chapter to connect with the server in all kinds of ways.
I really enjoyed reviewing Unity 3 Game Development Hotshot. However, I have to say, this is one of larger Packt book reviews I have ever written; it did take me a good portion of time to write this entire review as there is just so much in Unity 3 Game Development Hotshot.
This is, by far, the best Unity book I have ever read. As Jate is very intelligent in Unity programming, you will learn a ton from this one single Unity book. Even though it is 360 pages, this book packs a punch for how much info you’ll get out of it. Every page you read in this book keeps you connected and almost wants you to stop reading and try it for yourself!
As this is Jate’s first Packt book, I really do look forward to reading any oncoming Unity books of his. Although I do feel that I should mention that some of the grammar throughout the book, especially in his code comments, is a bit off. I am not sure if it’s just a programmer getting lazy, or just bad grammar:
//For toggle the open and close our menu window
Despite some of the grammatical errors in the comments, the overall book is written very professionally. Unity 3 Game Development Hotshot is not a beginner’s book (which is what is mentioned in the book and on Packt’s website), so please make sure you know the ins and outs of Unity first.
With all of that said, Unity 3 Game Development Hotshot is the book for you if you’re looking for a very informational Unity book that builds upon the basic skills that you already know in Unity. There is quite a bit talked about in this book and for the money, this Unity book is very much worth it.
Let @tjasko know on Twitter!