Chapter 1: Getting Started with Game Kit and Game Center
Game Kit and Game Center a History
Game Center Benefits and Marketing
Game Kit: An Overview
Sample Game: UFOs
UFOs: Examining the Source Code
Getting Started with iTunes Connect
Chapter 2: Game Center: Setting Up and Getting Started
Game Center from the user perspective
Testing for Game Center
Authenticating with Game Center
The Sandbox
Watching for Status Changes
Working with GKLocalPlayer
Retrieving a Friends List
Friend List Avatars
Working with Players
Chapter 3: Leaderboards
Why a Leaderboard?
An Overview of Leaderboards in Game Center
Configuring a Leaderboard in iTunes Connect
Posting a Score
Setting a Default Leaderboard
Adding Score Posting to UFOs
Handling Failures When Submitting a Score
Presenting a Leaderboard
Customizing the Leaderboard
Mapping a Player ID
Local Player Score
A Better Approach
Chapter 4: Achievements
Why Achievements?
An Overview of Achievements in Game Center
Configuring Achievements in iTunes Connect
Resetting Achievements
Adding Achievement Hooks
Chapter 5: Matchmaking and Invitations
Why Add Matchmaking and Invitations to Your App?
Common Matchmaking Scenarios
Creating a New Match Request
Presenting Match GUI
Handling Incoming Invitations
Auto-Matching
Matching Programmatically
Adding a Player to a Match
iOS 5
Reinvites
Player Groups
Player Attributes
Player Activity
Using Your Own Server (Hosted Matches)
Chapter 6: The Peer Picker
Benefits of the Peer Picker
Real-World Examples
Working with Sessions
Presenting a Peer Picker
Advanced GKSession Interaction
The Peer Picker Delegate
Summary
Chapter 7: Network Design Overview
Three Types of Networks
Less Common Networks
Reliable Data vs. Unreliable Data
Sending Only What Is Needed
Prediction and Extrapolation
Formatting Messages
Preventing Cheating and Preventing Timeout-Related Disconnections
What to Do When All Else Fails
Chapter 8: Exchanging Data
Modifying a Single-Player Game
Setting Up Our Engine for Multiplayer
Putting Everything Together
Disconnections
Chapter 9: Turned-Based Gaming with Game Center
A New Sample Project
GKTurnedBasedMatchmakerViewController
Starting a New Game
Making the First Move
Continuing a Game in Progress
Ending a Match
Quitting and Forfeiting
Programmatic Matches
GKTurnBasedEventHandler
Chapter 10: Voice Chat
Voice Chat for Game Center
Voice Chat for Game Kit
Putting It Together
Chapter 11: In-App Purchase with StoreKit
Setting Up Your App in iTunes Connect
Adding Products to Your App
Purchasing a Product
Subscriptions and Renewals
Test Accounts and Testing Purchases
Submitting a Purchase GUI Screenshot
Developer Approval
Receipts
Tying Everything Together in UFOs
Kyle Richter started writing code in the early 90's on the Commodore 64, and soon after progressed to a Mac SE. Since then he has been dedicated to working exclusively with Apple products. Kyle is currently the CEO of MartianCraft LLC a custom mobile software development shop. Kyle has been running software development companies since 2004. His company was behind the release of the first iOS trivia game, as well as the first mobile game to support true non-local multiplayer. His companies have been named to the Inc 5000 fastest growing companies in the world on three separate occasions. Kyle has worked on notable project for some of the largest brands in the world. He is also a frequent speaker on software development and entrepreneurship speaking at more than two hundred events across the globe. In his spare time he enjoys traveling, backcountry hiking, scuba diving, and cooking. He can be found on twitter @kylerichter.
Beau Bolle has been tinkering with technology as long as he can remember and has over 20 years of professional software development experience. He’s worked on a wide variety of clients from startups to Fortune 500 companies on an even wider variety of projects including audio tools; social media apps; e-commerce, bug tracking, source control, and CRM systems; and enterprise apps. As CTO of MartianCraft, he is dedicated to creating an environment that fosters creativity and enables people to do their best work. In his free time, Beau enjoys traveling, camping, and hiking. He’s an avid tabletop gamer and has recently taken up leatherworking.