Monday, August 13, 2012

Monkey Game Development: A Beginner's Guide

 Having just opened Monkey for the first time simultaneously with this book, I must say this is a very well done book. I had learned Java through school so it was not my first programming language, but as far as monkey goes it was a completely fresh start. Monkey Game Development walks you through the creation of eight different games over ten chapters, one per chapter with the first chapter as an introduction and the last as guidelines for getting games published.

 Starting from the first game, a remake of Pong in the form of "Pongo," I could tell this book would do well with me. It explained the basic methods that would recur throughout every game I made with the book, and even explained why those methods belonged in every game. For every new piece of information it made sure I knew not only how to type it in, but also why it worked the way it did and why it was either necessary, or why it saved time. On the subject of saving time, the book comes with a host of graphics, sounds, fonts, and a particularly useful library called fantomEngine. It was introduced in chapter four and used with every game created from that point onwards. fantomEngine was created specifically for this book and is a library to help speed up the creation of your games by providing useful functions such as loading images, fonts, and sounds, creating images from sprite sheets, creating transitions and timers, and much more.

 My biggest complaint about Monkey Game Development is the lack of instruction on compiling to the various destinations. In chapter one, it mentions it will guide you through the installation of the various SDKs and how to set them up for Monkey, yet it never does. For example, in chapter five you create a game called Chain Reaction and it is the first game you are able to upload to an android device. In the beginning of the chapter it says it will show you how to set up Android, yet by the end of the chapter it only tells you how to change the name of your game and the icons for it once it is already on Android. I flailed trying to upload this game to android for hours.

 My only other complaint about Monkey Game Development is the rampant typos. After going through the entire book I am truly unsure whether they were on purpose or not. Admittedly, they did help me learn the code much better then if they were not there, but it would still be a good idea to at least mention to expect those landmines in the code in the intro chapter. The typos included everything from misspellings of method headers, forgetting to type in the parenthesis after calling a method, alternate spellings of fields from the initialization to the implementation, and much more. Again, the typos helped more then they detracted, but I'm still not entirely sure they were supposed to be there, or an accident by the editor. 
I highly recommend this book to all people looking to learn the Monkey programming language, particularly for game creation as the name suggests. The book has several faults, but the benefits far outweigh those faults. I read through the book and did all of the games in a week, and am now making a game of my own to prove I know Monkey.

It's going well.

[Note from Andrew: Josh is my new trainee programmer minion.]