We assume that youre a reasonably capable programmer, and that you know at least a little bit about developing for iOS: what Xcode is and how to get around in it, how to use the iOS Simulator, and the basics of the Swift programming language. We also assume you know how to use an iOS device. We dont assume any existing knowledge of game development on any platform, but were guessing that youre reading this book with a vague idea about the kind of game youd like to make.
This book isnt based on any particular genre of gamesyoull find the recipes in it applicable to all kinds of games, though some will suit some genres more than others.
Organization of This Book
Each chapter of this book contains recipes: short solutions to common problems found in game development. The book is designed to be read in any order; you dont need to read it cover-to-cover, and you dont need to read any chapter from start to finish. (Of course, we encourage doing that, because youll probably pick up on stuff you didnt realize you wanted to know.)
Each recipe is structured like this: the problem being addressed is presented, followed by the solution, which explains the technique of solving the problem (or implementing the feature, and so on). Following the solution, the recipe contains a discussion that goes into more detail on the solution, which gives you more information about what the solution does, other things to watch out for, and other useful knowledge.
Here is a concise breakdown of the material each chapter covers:
This chapter discusses different ways to design the architecture and code layout of your game, how to work with timers in a variety of ways, and how blocks work in iOS. Youll also learn how to schedule work to be performed in the future using blocks and operation queues, and how to add unit tests to your project.
This chapter focuses on interface design and working with UIKit, the built-in system for displaying user interface graphics. In addition to providing common objects like buttons and text fields, UIKit can be customized to suit your needsfor some kinds of games, UIKit might be the only graphical tool youll need.
In this chapter, youll learn how to get input from the user so that you can apply it to your game. This includes touching the screen, detecting different types of gestures (such as tapping, swiping, and pinching), as well as other kinds of input like the users current position on the planet, or motion information from the variety of built-in sensors in the device.
This chapter discusses how to work with sound effects and music. Youll learn how to load and play audio files, how to work with the users built-in music library, and how to make your games sound work well when the user wants to listen to his or her music while playing your game.
This chapter is all about storing information for later use. The information that games need to save ranges from the very small (such as high scores), to medium (saved games), all the way up to very large (collections of game assets). In this chapter, youll learn about the many different ways that information can be stored and accessed, and which of these is best suited for what you want to do, as well as how to make use of iCloud features.
This chapter discusses SpriteKit, the 2D graphics system built into iOS. SpriteKit is both powerful and very easy to use; in this chapter, youll learn how to create a scene, how to animate sprites, and how to work with textures and images. This chapter also provides you with info you can use to brush up on your 2D math skills.
In this chapter, youll learn how to use the 2D physics simulation thats provided as part of SpriteKit. Physics simulation is a great way to make your games movements feel more realistic, and you can use it to get a lot of great-feeling game for very little programmer effort. Youll learn how to work with physics bodies, joints, and forces, as well as how to take user input and make it control your games physical simulation.
This chapter covers Scene Kit, Apples new 3D framework. It has recipes for showing 3D objects with Scene Kit; working with cameras, lights, and textures; and using physics in 3D.
This chapter discusses how to make objects in your game behave on their own, and react to the player. Youll learn how to make one object chase another, how to make objects flee from something, and how to work out a path from one point to another while avoiding obstacles. Youll also learn how to use Core ML and Vision to detect objects seen by the camera.