I’ve been a full-time software developer for about 13 years now. Most of the software I’ve written involved client software connecting to a big database holding data, modifying that data and producing reports of that data. Recently I’ve been combining data with a user’s location. I’ve also been involved in the design and running of very large community websites, optimizing data and traffic to keep everything running smoothly.
Those who follow me on Twitter (@spencerpieters) know that very recently I have taken up Core Data on the Mac and iPhone.
They’re all different subjects but they all have something in common: data.
I’m a data guy. I love data. I love visualizing data in different ways, on different devices and in different contexts. Data is great.
On the other hand, data can be quite boring. If you tell people about some data processing algorithm that you produced, you can see in their faces how they visualize you sitting in a dark corner being all, well, nerdy.
But that’s ok, because you can also be a software developer that people look up to. An awesome guy, a rockstar even. You could be … a games developer !!
Now, if you’re my age and I tell you I’ve had a C64, an Amiga, and then pc’s going from XT, AT, Pentiums and what not, it will probably sound very familiar to you. I’ve played games on all of these platforms but I’ve never been a hardcore gamer. If I look back at the games I’ve tried they’ve always been games that were truly ahead of their time, like Thunderhawk on the Amiga. Remember how smooth that chopper flew through a 3D environment ? Yeah, so do I. What I’m saying is I’ve always tried games that were truly awesome pieces of software.
I’ve bought the odd book on 68000 assembler and a few others but I never really got into games development. I’ve always felt it was a bit over my head and maybe a sidestep to far away from my beloved data.
After my last Apress book review, I got in touch with the wonderful people of Apress. They were very happy with my review and said I could pick a book for free for review purposes. And guess what, maybe I was dreaming of becoming a rockstar after all, I choose “Beginning iPhone Games Development” (BIGD).
At just over 700 pages, BIGD takes you various aspects of games development, such as animation, sprites, sounds, streaming data and connected gaming. The first few chapters give you a very short introduction to Cocoa Touch, Objective-C and memory management. If you’re new to all this, you *will* need separate books on these subjects.
In chapter 3 you will be playing with NSTimer and CADisplayLink to animate objects, learning the differences between the two.
Chapter 4 introduces you to the wonderful world of Quartz, where you will be creating sprites for an Asteroids-like game.
Chapter 5 introduces Core Animation. You’ll learn how to animate UIViews with simple movements, animation curves, reverse/repeat, transforms, transitions and animating layers. The good thing about this chapter is you’ll be able to reuse some of this stuff in non-game apps, on UIViews that represent data. Nothing wrong with giving your data apps a touch of Core Animation sexyness.
Chapter 6 introduces the basics of OpenGL. You’ll learn about subjects such as objects, camera, lens and camera position and the link with model matrices, viewport and the projection matrix. OpenGL is continued in chapters 7 and 8 where you will continue work on your Asteroids game: drawing your ship, the rocks and how to implement collision detection. It sounds complicated (and it is: entire books have been written on the subject of OpenGL) but you get good source code to learn from.
You step away from the graphical stuff and enter the wonderful world of audio in chapters 9, 10, 11 and 12.
Chapter 13 introduces network play and explains the different ways of connecting: tcp/ip, Bonjour, Sockets, BSD Sockets API, CFNetwork, NSNetServices and GameKit. Most of this chapter is available in other Apress iPhone books as well. In the following chapters all these networking concepts are explained in detail showing you how to build simple head-to-head games, multiplayer games, and internet connected games while also explaining dangers such as lag.
Chapters overview:
- 1: A revolutionary gaming platform: games for everyone, anytime, anywhere
- 2: Developing iPhone games: peeking inside the iPhone toolbox
- 3: Moving images on a small screen – UIKit controls
- 4: She shoots, she hits, she scores!
- 5: Flipping out and sweeping away with Core Animation
- 6: OpenGL basics: wrapping your head around the OpenGL API
- 7: Putting it together: making a game in OpenGL
- 8: The next steps: atlases, sprites and particles – oh my!
- 9: Introduction to Core Audio
- 10: Making noise with OpenAL
- 11: 3D Audio – turning noise into game sounds
- 12: Streaming, thumping, pulse-quickening game excitement
- 13: Networking for iPhone games: introduction
- 14: Going head to head
- 15: Party time
- 16: Connecting with the outside world
- 17: Putting it all together: now comes the fun part
If you are new to Cocoa Touch and if you are hoping that this book will let you write your first game, then this book is not for you.
If you have experience with Cocoa and have at least heard of some topics like OpenGL and Core Animation then you will enjoy this book a lot. It is not *the* bible on game development but no book is. You could build a nice library with dedicated Quartz and OpenGL books alone. What it *does* do is give you a very-well explained introduction on all these topics, kindle your intrest to hopefully make you learn more.
No book on games development has held my interest for so long.
It also teaches the data developers a few cool tricks to improve their apps. We can be rockstars after all. Little ones.



























[...] This post was mentioned on Twitter by Steve Michaels, Spencer Pieters. Spencer Pieters said: Reviewed Beginning iPhone Games Development by @Apress for the @CocoaHeadsBe website. Read it via http://bit.ly/9GtMap [...]
Thanks for the review. I am making my way through this book as a new iPhone/iPad developer interested in creating applications with animation, audio, etc. The authors have done a great job of getting the flow and pace of the book just right (for me anyway). Even a relative newbie like me can follow along quite easily with fun and relevant examples that will get you learning quickly, but not overwhelm you. I have also gone through Apress Beginning iPhone 3 Development and iPhone SDK Development (Dudney, Adamson) – this book is far superior IMHO, not just for game developers, but for anyone wanting to add some rich media, interaction, animation, sound and sizzle to their apps. 2 thumbs up!!
Checkout cocos2d for simple game development, there is also an excellent apress book published in nov 2010 that treats cocos2d development from zero to hero.