Right off the bat, I knew this was not going to be an in-depth resource. The book weighs in and a light 120 pages, though the title does say “getting started” so I least they were upfront about it. That said, I did find the book useful and feel it was a good intro text for people unfamiliar with UDK.
Getting Started with UDK by John P. Doran explains how to create a simple tower defense type game using the Epic UDK (Unreal Development Kit). UDK is a free version of the popular Unreal Engine 3, and is targeted toward indie developers. Though the software itself can be downloaded for free, there are various rules in the license as to how content created with the engine can be used. For example, there is a revenue sharing model if you make over a certain amount. Even so, it’s still a great piece of software and certainly a good deal at this price (who can beat free?).
Anyway, this book has only 4 chapters that take you through creating a game. It started with using CSG (constructive solid geometry) to block out a simple level. We use the editor to add various items to the map, like spawn-points for the enemies. Then it moves onto using Kismet, the built-in visual programming language, to add logic to the game. In this part we create some rules, for example, deducting life when the enemies reach the base. We also create some towers that shoot missiles at the enemies. Next we build a GUI and HUD using Flash and Scaleform, and finally cook and package the game for distribution.
I have been meaning to learn more about UDK for a while now, both for work and for my own personal benefit. Mainly, though, since I am working on my own engine I want to make sure I have a firm understanding of what’s out there so I know how to improve upon it. UDK seems very powerful, and it’s fun to play around with an engine that comes with a ton of AAA assets from the start. Working with the engine certainly gives me some ideas, and shows me some things that could be innovated on. I will certainly want to learn more, as I feel this book barely scratches the surface.
However, there were some parts I did not like. Namely, in the first section on Kismet the author skips a crucial step (connecting one node to another). Without this step, the code does not work all (but doesn’t produce any errors either) and the reader is left to wonder if they made a mistake. Thankfully the images in the book show the correct setup, so if you look closely you can figure this out. Even so, this seems like a huge oversight and it’s really sad when authors make careless mistakes like this. Maybe even worse is that almost none of the Kismet logic is explained at all. In the later part of the book there is one part where you are setting up Kismet code for maybe 30 minutes straight, following steps in the book, but without any sort of guidance or explanation. You do eventually get something that works, but with little knowledge of what you are doing in the process. Granted, much of it is self explanatory, but it really should be explained in some fashion.
All in all, this is not a horrible introductory text. If you are already familiar with UDK, you can probably skip this book, but for new-comers this may be an approachable resource. I still don’t feel like I understand even a fraction of the engine, but I do feel at least a bit more confident in moving to a more in-depth book. In addition, the Kindle e-book was a cheap $9.99, so I can’t complain on the price. For the most part, the formatting was good and the images were decent quality, in-color, and zoomable. On the downside, some of the Actionscript code was a little difficult to read due to the word-wrap, but this is a problem across-the-board with programming e-books. Anyway, for $10 this is a great bang-for-your-buck, even at the rather brief 120 pages. I did end up with a functional game at the end, and that counts for a lot.