This is the preface I wrote for the first edition of my game programming book Learn Unity 4 for iOS Game Development. My preface was removed in the second edition, so here it is for posterity.
Technically, I first started programming on a TRS-80 in my junior high school library, but really I just typed in the same BASIC code listing from a magazine every day until the librarian mentioned I could save the program on a cassette. I’m embarrassed to recall my first reaction when I heard the library had a computer: “What’s it good for?”
A year later, I saw the light when I got my hands on an Apple II. After cracking open the user manual and learned how to draw graphics in BASIC, I was hooked. Soon I was writing Reversi games (one in BASIC, one in 6502 assembly) and even a 3D wireframe display program.
In the intervening years I wandered the Windows wasteland and worked in small and large groups developing computer graphics and games. But fast forward to six years ago, when I happily got back into the Apple fold (now with Unix!) and attended my first Apple World Wide Developer Conference. Joachim Ante, one of the cofounders and the CTO of Unity Technologies, gave me an impromptu demo of Unity 1.5, and it was exactly what I’d been looking for — an inexpensive 3D game engine that ran on a Mac and able to target multiple platforms, including Windows, Mac and web browsers.
So I bought a Unity 1.5 Indie license as soon as I returned home (this was when Unity Indie wasn’t free), later upgraded to Unity Pro, and was pleasantly surprised a couple of years later that Unity would support iOS! (I love it when a plan comes together)
In the meantime, my former employers at Hyper Entertainment granted me a license to port HyperBowl, a 3D arcade bowling game I worked on over ten years ago, to Unity and various platforms supported by Unity, so now I had a meaty project to work with, besides the smaller apps I’d been experimenting with.
It took me six months to get the first version of the HyperBowl remake running as a Unity webplayer, standalone Mac and PC executables and on the iPhone (and by the way, also Android, Linux and Flash). And really, it was three months actually spent using Unity if you subtract the time I spent figuring out how to extract the art and audio assets from the original game.
Over the next few years, HyperBowl and my other games got faster and better-looking with each new version of Unity and took advantage of more iOS features and more iOS devices like the iPad. I added capabilities using third-party plugins, a new pause menu, and even an entire new HyperBowl lane (level) with packages from the Unity Asset Store, which is conveniently integrated in the Unity Editor.
This has all taken place with a dev team of one (not counting all the work put into the original licensed assets), and I didn’t have to learn a single line of Objective-C or create my own art! In a sense, I feel like I’ve returned to my programming roots, working on my own projects for fun, and as a bonus, profit! Hopefully, I can distill my experience with Unity over the last six years (both mistakes and successes) into this book.
About this Book
With any game development book there’s the problem of trying to be all things to all people — there are plenty of areas in game development, Unity, and iOS that could easily take up whole books in themselves. This book is an introduction to developing games for iOS with Unity, so our goal is to get everyone acquainted with Unity and moving into Unity iOS development smoothly, following the same progression I’ve made over the years (but in less time!)
No one knows everything. That’s why a key to successful development is knowing how to find the tools, assets, information and help you need. So instead of just listing a recap of topics at the end of each chapter (I never bother reading those), we’ll suggest followup reading and resources for you to explore further.
This is a good place to recommend some other worthwhile Unity books. Even on the same topic, it’s useful to read different books for their different takes on the subject. For example, Will Goldstone wrote one of the first Unity books, Unity Game Development Essentials, Sue Blackman’s Beginning Unity 3D Development is a hefty tome that presents an adventure game, and Jeff Murray covers Unity iOS in Game Development for iOS with Unity 3D, using a kart racing game as an example.
Since I waxed nostalgic on Apple computers, I should follow up with a list of good Apple historical reading. Revolution in the Valley is a fun collection of Mac development anecdotes collected by Andy Hertzfeld. iWoz is an interesting peek at early Apple history and at the Woz himself.
While this book does use make heavy use of example game projects, we won’t have much discussion on game design. But there’s certainly a lot of interesting reading on the subject. My favorite game design book is Richard Rouse’s Game Design: Theory and Practice, mostly a collection of interviews with famous game designers. And there’s a bounty of game design articles and blogs on the web site Gamasutra (http://gamasutra.com/).
Before we get started, I’d like to give a special mention to the people who helped me get started back in my Apple II days. My parents, who bought the Apple II that I ended up programming (and also a printer after they saw me typing out code listings on a typewriter — that junior high typing class really paid off!). My fellow Apple II programmers, Dave Lyons (now actually at Apple) and Cam Clarke (who made it to Silicon Valley but left us all too early), and Mr. Leaman, the computer programming teacher who let us hide out in the computer lab during pep rallies. That was time well spent.