Book Review Post Header

Mastering Unity 2D Game Development Review

This is my chapter by chapter review of “Mastering Unity 2D Game Development”. I come from a games programming background and have used Unity for several years so I am relatively skilled in using the engine and have been exposed to many programming elements discussed in the book before reading.This prior exposure to complex topics I feel made the book easy to read and progress through, whereas somebody with less experience may find certain topics such as design patterns daunting. The author does try and make these as accessible as possible though.

Chapter 1
This chapter includes a lot of focus on improvements for Unity 4.3 which will no doubt become outdated very quickly (at the time of writing Unity has already released another new version 4.5). It does talk about several new features added in this version (4.3) which is relatively useful. It also describes the mission statement of the book really clearly and introduces the project that will be worked on throughout the book. It also points towards several good websites which can be used to get free assets for any projects readers might be working on.

Chapter 2
This chapter dives right into talking about project structure and why it is a good thing. It glosses over what happens with components and doesn’t go into much detail on what they are. Some poor wording in regards to a previous example being mentioned, where there aren’t any previous examples. There is some discussion about best practises for performance with GetComponent which is very useful.

The explanation of why to use an object orientated approach is fantastic and the diagrams illustrate the point very well. Mentions key components and attributes of 2D sprites in Unity and talks about why they are important. Some aspects of sprites are talked about in too much detail such as the view controls.

Long chapter but explains a lot in quite a bit of detail, talks about very complex topics in a way that would be understandable for somebody with only mild exposure to programming.

Chapter 3
This chapter explains in great detail various components of the animation system, struggles at points with errors in the code and often confusing sentence structure regarding which GameObjects should be created/used. Once the errors are worked out through use of the Errata and common sense the chapter serves as an excellent introduction to the animation system.

Chapter 4
Chapter 4 has a good discussion of helpful websites to get resources from however this runs the risk of the site being out of date and not updated in the future. It also touches on the important differences between Update and FixedUpdate. Resolution issues being described and illustrated can be very helpful for people looking at multi-platform games, there is some discussion about pre directives which are incredibly powerful tools for developers looking at multi-platform.

There is plenty of information regarding tags and sorting layers which is very useful. Explaining how to use tags in scripts is an excellent feature. Several bugs in the code which are rectified by the Errata could hinder progression without access to the fixes. This was another quite long chapter but covers some very important topics and explains them in enough detail.

It also looks at several more aspects of game design which I really liked as it justified the code being written with good design choices rather than just explaining the code.

Chapter 5
Chapter 5 was a really theory focused chapter, discussing programming design patterns and the benefits/drawbacks of specific patterns within the context of Unity. As an experienced programmer this chapter provided a great refresher on design patterns and implementing them in Unity.

I felt it could have been broken down into two chapters to make it slightly more manageable to people coming from a non-programming background however.

Chapter 6
Discusses various web related resources to be used within projects, reuses several design patterns taught in the previous chapter as well as revisiting best practises for certain areas of development. Introduces using animation curves in code to be used within any kind of script which is an incredibly powerful tool. Chapter also guides you through creating an incredibly robust fade manager for scene transitioning which could be reused in any number of projects.

Talks about some other areas of game design such as world building and procedural content generation and then points towards some very nice resources on both topics, adding further value to the book by giving options for further development of the project being made.

Chapter 7
Very good chapter evolving what was learnt in previous chapters about state machines and applying it to game AI. Also discusses numerous other forms of AI that could be used which give the reader a chance to explore additional topics. The topic of randomness in computers is also discussed at some length which is very helpful to understand how seeding is important and computational overhead regarding randomness can be avoided.

Chapter 8
Talks at great length about monetization strategies amongst games, I think this could be cut and used in another chapter as the core content of this chapter should be focused on the inventory system. Inventory system reiterates previously discussed code and further establishes the need for good design.

The going further section of this chapter is plentiful and gives readers several more avenues to explore to develop the skills it has tried to establish.

Chapter 9
A very code heavy chapter again, reiterates once more on the importance of state machines as well as another example being used in the form of the battle system. Discusses more design choices regarding GUIs showing examples to take inspiration from. A lot of UI code that is created may well be made redundant with the new UI system in Unity 4.6.

Not many going further suggestions for this chapter, possibly due to the system only being half finished at this stage.

Chapter 10
More demonstrating the usefulness of Managers for systems, a point that needs to be drilled home and is done so in a very effective manner. Talks more about battle flow showing how structure and flow control are very important. Looks at using 3D particle effects in 2D space which is a very effective tool, looks back on aspects of the animation development discussed in earlier chapters.

A lot of going further suggestions which is fantastic, a system as important as battle should have lots of points to be developed on which would serve as excellent topics for readers to look into.

Chapter 11
Looks into extending the editor further which is one of Unity’s best features, illustrating what can be achieved in the editor is an important topic for any Unity book and it is covered very well here. Talks more about topics that could improve your game as well as looking into some of them very briefly. Re-examines Saving/Loading along with serialization again and completes the example of the system for this project, web data is also mentioned showing how to back it up if the reader is creating a web player game.

Chapter 12
Talks at length regarding preprocessors and platform specifics, very important topic for readers looking into publishing games on multiple platforms. Demonstrates how to create a very handy Unity package to be used with future projects.

Chapter 13

Discusses further topics to look into as well as many resources for these topics, some fantastic websites mentioned however these may run the risk of becoming outdated in time. This chapter serves as a final going further point for the entire book and doesn’t have any technical content.

Conclusion
If you are willing to overlook some of the errors in the code many of which have been rectified in the errata this would be a fantastic book for anybody with some programming/Unity experience. I wouldn’t recommend it to somebody coming in without any prior knowledge of programming or Unity as I feel several topics would not be suited to a beginners however it is an excellent jumping off point for people looking into more complex topics or people who want to explore Unity2D in a fair amount of detail.

Mastering Unity 2D Game Development Cover

 

Originally published September 2014
Disclaimer: The review was completed by using a free review copy I received from Packt Publishing.