Front Line Awards: Game Dev Books

Game Developer Magazine has named the finalists for the 2009 Front Line Awards, their 12th annual evaluation of the year’s best game-making tools in the categories of programming, art, audio, game engine, middleware, and books. The following books have been nominated:

Related Links:

New from O’Reilly — iPhone Game Development

‘iPhone Game Development’ by Paul Zirkle, Lead Mobile Programmer at Konami Digital Entertainment and Joe Hogue, a mobile programmer with Electronic Arts. Together, provides an experienced iPhone developer with the knowledge needed to make games for the Apple iPhone. Starting with a basic overview of game and technical design particular to the new device, the book moves on to detail the development process with examples. You will find everything from game development basics and an introduction to iPhone programming to tips on using APIs to develop in-game physics and strategies for AppStore publication. Topics include:

  • Learn how to develop iPhone games that provide engaging user experiences
  • Become familiar with Objective-C and the Xcode suite of tools
  • Learn what it takes to adapt the iPhone interface to games
  • Create a robust, scalable framework for a game app
  • Understand the requirements for implementing 2D and 3D graphics
  • Learn how to add music and audio effects, as well as menus and controls
  • Get instructions for publishing your game to the App Store

This book promises you everything from game development basics and iPhone programming fundamentals to guidelines for dealing with special graphics and audio needs, creating in-game physics, and much more.

Related Review Links:

‘Beginning iPhone Development: Exploring the iPhone SDK’ by Dave Mark and Jeff LaMarche

Clear Examples and Well-Choosen Images

Beginning iPhone Development advertises itself as “A complete course in iPhone and iPod touch programming” and I think it fulfills its promise. Dave Mark and Jeff LaMarche have plenty of experience and it shows in this book. There aren’t very many iPhone books out yet, as Apple continues to release updates to its SDK, but this is the best one of the group. The book is easy to understand and covers all the topics a beginning iPhone developer would need to know. From clear examples to well-chosen example images, this book covers iPhone development well.

The book’s teaching method is very well made for beginners. While those new to programming in general may have minor issues, it’s not designed to teach the beginner programmer, but anyone who is trying to learn iPhone development will have an easy time with this book. It covers user interface design, accelerometer programming, Quartz and OpenGL drawing – the chapters follow each other in a logical order.
Read the rest of this entry »

Free eBook: Invent Your Own Computer Games with Python

Invent Your Own Computer Games with Python (or IYOCGwP “eye-yawk-gwip”) is a book (hopefully a series of books) that teaches Python game programming for kids in the 9 to 12 year old age range. Instead of teaching principles and concepts, each chapter has a complete example of a game and its source code up front, and then provides explanation for the code.

Related Link: http://www.python.org

Pangea Software’s Ultimate Game Programming Guide for Mac OS X

Among the topics covered are: Development tools, OpenGL, PPC optimizations, VAR (Vertex Array Range), Carbon, Audio Playback (QuickTime & OpenAL), Input (mouse, keyboard & HID manager), Networking, and Marketing & Selling.

Related Links:

Processing 0135 Released & Book Published

Processing — an open-source and cross-platform language and development environment for Mac OS X, Linux, and Windows, with the ability to export either applications for those platforms or Java applets for embedding in web-pages — has been updated to version 0135, fixing several bugs, and bringing Processing closer to trying to emerge from beta status “in the next few months” in the words of the initiators of the project.

Additionally, a book on Processing authored by the initiators of the project, Processing: A Programming Handbook for Visual Designers and Artists, has now been published.

Free eBook Become an XCoder

Blender Basics Free Classroom Tutorial Book

A very nice 118 pages PDF that covers most of the features in Blender, including the Game Engine.

‘Core Mac OS X and Unix Programming: Master Darwin and the Core Technologies’ by Hillegass & Dalrympl

Introduction

One day, I got an email in my mailbox. It was from Aaron Hillegass, asking me to review his and Mark Dalrymple’s new book, ‘Core Mac OS X and Unix Programming: Master Darwin and the Core Technologies’. I reviewed Aaron’s last book on Cocoa Programming, ‘Cocoa Programming for Mac OS X’, and I must have pleased the author (the book sure pleased me!).

However, as I grasped what ‘Master Darwin’ was about, I silently smiled to myself thinking that poor Hillegass had made the mistake of his life, asking me to review a book on Unix programming. Given that I’ve never gotten beyond mkdir, ls, top, and uptime as far as Unix goes, he could as well have given John Milton’s ‘Paradise Lost’ to a six-year old. But I was wrong. Aaron and Mark made a better programmer, and somewhat of a Darwin acolyte, out of me, the same way Aaron had turned me into a Cocoa programmer a few months ago (now, if Big Nerd Ranch would only release an OpenGL book).

Besides giving a Unix book to someone who finds KDE to be arcane, the timing couldn’t have been worse. The package arrived while I was in the middle of changing apartments and had a game programming deadline one month down the line, not to mention having started to work full-time a week earlier. So, I took the book to work, and I read it on the subway. Much like the Cocoa book, I was hooked rather quickly.

Meanwhile, Back at the Ranch

The book originated from Big Nerd Ranch’s course, and is essentially the student guide for those who attended it. It starts out with a well written, albeit a bit short, introduction to Unix and an explanation of where Mac OS met Unix. I might be thick, but it wasn’t until here that I finally grasped what Darwin was all about. Following that is a very good C refresher. I tend to skip these, but this one is very informative. For me, it was not just a refresher, but a source of both some new material that I have never gotten around to researching, and of reassurance regarding certain things I had only suspected. All the neat-o code tricks with which most books seem to be riddled and that clutter the examples (a manifestation of the author’s ego?) are stuck in the refresher. Every code example through this book is clean and easy to read.

‘Master Darwin’ contains both Objective-C (with Cocoa) and straight C. Is there an Obj-C refresher? Unfortunately there is not, but Aaron’s ‘Cocoa Programming for Mac OS X’ covers that in detail. Considering the excellence of this refresher, as well as the use of Objective-C, it shouldn’t have been too much work to just throw in a quick five-page explanation of basic Obj-C concepts (but then again, this isn’t a language textbook). This book contains no C++, but for once, this is positive. Nothing in the book is dependent on C++, and nothing in it excludes C++. All objective-oriented concepts are introduced through Cocoa and Objective-C. No, this is not a book on languages. It’s a book about a killer platform, and, to my relief, Aaron and Mark have made that distinction very clear, and stuck to it. The text is devoid of any “code knowledge” (outside the C Refresher), which makes it effective. I’m impressed with their discipline. In all, the book is very clean and to the point.

New Book in Town

Throughout ‘Master Darwin’ the authors make the line betweek Unix and Mac OS X very clear, and this is an important point. For those like me who are unfamiliar with Unix, it gives confidence to know where a particular concept originated from, and what it is related to. As teachers, the authors are very reliable. They explain what’s hard and why it is hard, which is something that I always appreciate. Also, they offer not only knowledge, but experience, and experience from one Unix guru and one former NeXT employee is the best kind with which to write this book. If you want to learn some Unix on your Mac, then they’ll give you that on the fly, too.

The topics range from mouthwatering headlines such as “Network Programming With Sockets”, “Multiprocessing”, “Rendezvous”, “Multithreading”, and “Performance Tuning”, to some more low-key things that you didn’t know you needed: a very meaty and useful walk-through on the GCC compiler, debugging with GDB (and boy, did this make my debugging more effective! That chapter alone was worth reading the book for), File I/O, and a very interesting chapter on memory handling.

A few of these chapters deserve a closer look. The three chapters on the compiler, how to build different types of libraries, and handling command line programs build a very stable knowledge and confidence regarding how to actually use the tools that hang around the developer tools. These chapters are an explanation of a lot of different tools that I have found use for, especially when it comes to debugging and building libraries. Project Builder looks a lot more attractive when you know what’s beneath the surface. Together with the GDB (GNU Debugger) chapter, I feel like a god.

The chapter on memory does a great job of explaining the Unix memory model and how it relates to the old Mac OS memory model, as well as the different memory allocation calls, problems and pitfalls, and memory debugging methods. Learning how to set the memory debug environment variables is downright invaluable. In fact, the first nine chapters give a very solid understanding of the entire platform and the tools.

The chapter on multithreading is quite easy to grasp, especially if you’ve worked through the chapter on multiprocessing first. I read them in reverse order, but despite that, I managed to get a simple multithreaded application up and running in no time. However, the multithreading chapter is placed a little too late in the book in my opinion. Several of the earlier chapters refer to it and talk about possible problems with threading, before one has even got a grasp on what threading involves. On the other hand, if one were to reorder the chapters, the threading chapter would be among the first ones, and that would look rather silly (not to mention scaring readers away). Just make sure that you skim that chapter early on if you plan to do multithreading, to get an idea of what it’s all about.

A very useful chapter lives near the end of the book. It is the one on CVS, which is a tool (type ‘man cvsin’ the Terminal to get a quick look) to handle source files in larger projects, especially when there are multiple persons working on them. As someone who works on two machines (a tower and a laptop, not to mention that I’ve become rabid about backing up data after a few mishaps involving a Powerbook and a hammer), CVS will be with me from now on. Still, that chapter exemplifies a small weakness in many of the walk-throughs in this book — in a few places (not many, maybe three or four in five hundred pages) the instructions are ambigous. Asking the reader to “cd somewhere” isn’t much help, if the previous text has worked with three different directories.

However, despite the threading chapter placement, ‘Master Darwin’ is better planned than Aaron’s Cocoa book. First there are a few “getting started” chapters, and then an assortment of rather independent lesson-style tutorial chapters. Actually, the book feels very much like a cookbook, with a few chapters in the beginning describing the tools and their use, and then mouth-watering recipies. Even the “For the More Curious” sections would feel very well-placed in a cook book, as well as “More Advanced Issues”. One little discomfort is the lack of page references. I always prefer “…on page 152” rather than “…later in the book” or “…discussed elsewhere”.

It’s evident that this is the student literature for Big Nerd Ranch’s course. As such, it works very well; I picked up the book, jumped into the middle of it, typed in and compiled the example programs, and I could solve the challenge at the end of the chapter. That’s a good mark for any book. All the code in the book is, as I said, very easy to read and structured. Read Bjarne Stroustrup’s official book on C++ — that code looks like it was obfuscated on purpose! But in ‘Master Darwin’, they are not only well-written, they are good too! They examine and exercise every aspect of the concept they illustrate, and do so in concise manner. When the authors examine sockets, the example programs wade through writing a simple network server and a simple client for that server in less than four pages, and yes, that is quite remarkable. In short, these are the best code examples I’ve read.

Into the Sunset

After reviewing Aaron’s Cocoa book, I looked at other reviews of it. It seemed like reviewers couldn’t decide on whether or not they liked the fact that the chapters consecutively built upon one another. Some people like to be able to jump in into the middle of the book and start from there, others like it when a book gives a well-knit reading experience. The duality of the two formats is resolved nicely here. For those who like to jump in and just do a few exercises, feel free. I did this, because I was interested in threading, and it worked out fine. For those who like to read the book like a textbook, do so. Keep on reading and coding from page 1 to 532, and you’ll notice how nicely everything ties in with the multichapter applications.

Above that, the book has a very nice layout. I really like when the important parts of a code example are put in bold face, as I am not too fond of reading code.

Who should get this book, then? Is this the ultimate book? Well, it might be the ultimate book for you. It clearly isn’t a beginner book, nor is it for anyone who already knows their Unix. In that sense, it is a book for the advanced, as opposed to the super-users. I suggest that you know your way around C and Cocoa (and subsequently Objective-C) before picking up this book. And no, it is not only for application programmers. Game programmers can benefit greatly from many of the chapters, something that I had never expected from this title. However, the greatest thing about this book is that it imparts confidence. If you code a few code examples from the book, you’ll soon notice that the first example in each chapter is rather complex, or at least not the simplest possible. That way, the authors give you proof that “you can do this”, and then they go about explaining things more in-depth. This is much similar to Aaron’s Cocoa book, which was quite ripe with “you can do this” pep talk. Finally, yet another reason to get ‘Master Darwin’ is that it’s a very good book to improve your C skills. It’s not a book on abstract programming principles, but a high-mark book concerning hands-on programming.

In short, this is a book to read in bed, as it is written in a very readable way. Put it under your pillow, remember what topics it covers, and then whip it out when the time is ripe (it will be ripe sooner than you think). The bottom line: this is an extremely useful book, not only packed with interesting information, but also well-written. I can’t wait for Mac OS 9 to die.

Related Links:

‘Designing 3D Games That Sell!’ by Luke Ahearn

Introduction

Who can resist a title like that? Sometimes I damn myself for not being able to resist the discount table at my favorite computer book store, but this time I didn’t. There is a funny little quirk to this, though: I got it at a 50% discount, and it really, truly feels like this is half of a book.

‘Designing3D Games That Sell!’ is divided into two parts, of which the first looks into the business aspects of game development and the second into the actual designing of the game. I may sound a little unfair here, but here goes. The second part of the book is, in my eyes, of zero value. I don’t think that it will be of value to any Mac programmer, as it covers the Genesis3D game engine and Reality Factor, neither of which are ported to the Mac. Fair enough. However, even for the Windows users, I can’t really understand why the second part of the book is there. It feels like a collection of copied-and-pasted basic Genesis3D and level design tutorials that could be found anywhere on the Internet. It is really misplaced in this book. But, as it is of no worth, I’ll leave it at that and focus on the valuable part of the book, which is of high quality.

Getting a Game Published

For any game developer who hopes to get a few bucks out of his or her production, this book is money well spent. It will definitely kill that naive view of the game industry as the Dream Factory where you become filthy rich by writing a Tetris clone. It focuses on the publisher instead of the developer, and tells you what you need to know to land a deal. I’ve only been into this book for less than a week, but I already feel like I’ve grown as a game developer, maturing. I’ve been told what I have to consider as a developer, how to find my audience, how to market a game (which is basically the old did-you-know-you-can-market-through-the-Internet talk, but pulled off with grace), and what are the common pitfalls while doing so. Then we come to the really interesting stuff, namely, a long talk about the publisher, and a lengthy explanation as to why publishers might be reluctant to give you one million dollars for your Tetris clone, no questions asked. This is the business manual everyone needs to read. There is much wisdom in this portion of the book, and I found use for it after just a few days of reading. It explains what risks the publisher is taking, the costs of marketing a game (and they are way higher than I had ever thought), and what the important goals are. This section is mighty discouraging, and it makes you wonder how anyone has gotten a game published — ever. Good thing the next chapters let you in on the secrets.

You are about to learn what the publisher wants. Ahearn provides instructions on how to write a game proposal (the section on opening lines is invaluable), how to analyze the market, how to make the design document attractive to publishers, and, very important indeed, how to make up a budget and a schedule. And boy, are there a lot of things that I would never have thought of if I hadn’t gotten this book under my fingers. This part is very encouraging, though, as you quickly see where you must improve your game proposal. The irony here is that you need to do a great deal of marketing for your game in order to persuade the publisher to market it.

And then, we go visit the publisher. This chapter is an interview guide that you could probably expect to find in any job interview guide book. However, it is actually quite valuable as it is all focused on getting a game published (rather than a general interview guide). The subheadings for this chapter are: “Things you must get right the first time”, “Let the publisher talk”, “Etiquette”, and “Remove stressful and on-the-spot situations”. It even carries a section on how to handle a rejection letter. Finally, a chapter with legal advice on closing a good deal — and how to avoid getting ripped off.

Conclusion

Actually, this book is excellent. It is well worth its money. It points out what you should do, but also the pitfalls and mistakes to avoid. The language is clear and easy to get through, so this book isn’t one of the business bricks you might expect it to be. Finally, what I very much appreciated is that ‘Designing’ is also directed towards the beginner developer, that might have only a few or no titles in his or her track record. It is a tough thing to land a deal, but it seems to be very possible, and Luke Ahearn sure makes me more confident. Just rip all the pages after page 171 out, and you’ll feel great about this book!

Related Books:

iDevGames Forum

iDevApps Forum