Blog

Unity Game Development Essentials – Book Review

September 10, 2010 by Devin Reimer

Longer ago than I would like to admit Packt Publishing contacted me and asked me if I would be willing to review one of their books (‘Unity Game Development Essentials‘), if they sent me out a copy. I agreed, but since I live in Canada they weren’t able to send me out a copy due to the additional shipping costs. Instead they offer to send me out a pdf copy.  I knew it would take me longer to read the book in pdf format (as I hate reading long things on a computer), but I didn’t think it would end up taking me this long. I ended up getting really busy and good book reviews were already being put up online (Everyday 3D and drawlogic to name a few). So finishing reading this book got put on the back burner. I didn’t feel that bad as Packt sent me a pdf, so it didn’t really cost them anything.

That all being said, it was bugging me that I said I would do something and I hadn’t. So the other day I thought it might be good to do a quick book review keeping in mind the Unity 3.0 beta I’ve been playing around with. The reason being that one thing I worry about when buying a book is where or not it will be too out-of-date.

Better late than never, so now onto the actually book review.

First off this is a good book that covers a lot of ground. If you are new to Unity you will learn a lot of from it. It doesn’t suffer from going to fast but is still able to cover everything it needs to. I found the chapter on Particle System particularly well done.

One important thing to point out is this book should not be mistaken as a book for programmers.  This book assumes you know almost nothing about coding and what code is in the book is pretty limited. The code within this book also isn’t always the best when it comes to coding practices (for simplicity). But this is alright if you are new to Unity as there are a lot of things to learn before you can write much code anyway. Just be aware that if you are a serious programmer there will be some sections you might want to skim.

All coding examples in this book are wrote in JavaScript(UnityScript), so as Bartek also pointed out in his review you might find it helpful to translate the code to C# as you go. Not only does this help you understand the code instead of suffering from “copy and paste syndrome” but I do believe that C# is the best language to be coding Unity in.

From a Unity 3.0 Beta standpoint, you should have no worries about this book being too out-of-date. Almost all new things within Unity 3.0 are additions and not changes, so this book will still help you build your Unity skill set.

My only other comment is I found it a little odd that Chapter 2 is focuses on Terrain. I feel that there is a lot of other items that probably should be covered first. That being said I do understand that the reason it is introduced so early is so there is a platform to build upon in the following chapters.

Overall if you are new to Unity and are looking for a book this is one you should definitely check out.

Link to: Unity Game Development Essentials

8 Responses to "Unity Game Development Essentials – Book Review"

  1. viaria says:

    why c# is the best for writing unity apps. unity says there is no difference between 3 languages. what is your reason to think that.

  2. Devin Reimer says:

    @viaria

    Hi, I go over a few of the reason why I think C# is the best language in this post: http://blog.almostlogical.com/2009/11/06/flash-developer-to-unity3d-developer-where-should-i-begin/.

    But it does hurt to talk about it again. Before I get into the reasons, Unity is correct there are no difference between the 3 languages in the final result. As they all get compiled to the same thing there is no difference. But this does mean there is no difference in coding in the 3 languages.

    Some reasons why C# is the best language to be using with Unity
    1) C# is a much more robust, structured and standardized language. This makes working on medium to large projects much easier. Also allows projects to scale with less frustration.
    2) C# is a widely used language. This means if you learn it, you will have the skill set to work in different environments, Server-side .NET, Silverlight, MonoTouch, etc. While Unity says there is a language called JavaScript, it isn’t really JavaScript it’s a unique hybrid. That is why a lot of us call it UnityScript. So you won’t be able to take code you write in it and move it anywhere else. As for Boo is a very obscure language, so there is really no reason to work with it.
    3) C# has better coding editors and works better with them. While now that Unity supports MonoDevelop, this has become a little bit less of an issue (still not great support). I personally still use Visual Studio because it works great with C#.
    4) C# is a strongly typed language, UnityScript is not. While this does require you to do a lot more casing, it prevents errors and helps with debugging. That alone makes it worth using.
    5) There is lots of C# code on the Internet for the taking. Since C# is so widely used finding code and code examples is not hard. While some people say JavaScript(UnityScript) is easier because there are more examples, with the release of Unity 3.0 all examples on there site will also be available in C#.
    6) Use C# to write libraries not JavaScript. If you write a code library in JavaScript, no one using C# can use it, another version will need to be written. If you write it in C# both C# users and JavaScript users will be able to use it (this has to do with compile order).
    7) Most serious Unity developers uses C#, I’ve talk to lots of people about this and they all use C#. In my opinion the only use JavaScript(UnityScript) exists is not to scare non-developers away from Unity. That is also the reason they call it JavaScript instead of UnityScript. This is so non-developers might feel more comfortable as they might been familiar with JavaScript.

    I hope this answers your question.

  3. I quite like looking through a post that will make men and women think.
    Also, thank you for permitting me to comment!

Leave a response