Introduction to Game Center

Session 404 WWDC 2010

iOS 4 includes a developer preview of Game Center, Apple's new social gaming network. Get introduced to the concepts behind this technology and understand how to use it to create great games. Learn about the classes and APIs in the Game Kit framework and see how your users will interact with your Game Center enabled app.

Mike Lampell: Hello and thank you for coming.

Mike Lampell here to tell you all about Game Center.

So, we're really excited about Game Center and we want to tell you a little bit more about what's in it.

So, first off, Game Center is a developer preview right now.

So, it's there for you guys to work with and we will be saying when, later this year, you'll be able to use it and shift games with it.

Game Center includes three pieces.

You have the Game Center application and that's where you go to discover new Game Center friends, to discover new Game Center games and to compare how you're doing against your friends.

It also includes GameKit, which a powerful, flexible, framework and the Game Center Services, which is our backbone set of servers.

We're going to be going over this and a lot more detail today in this session and then the next two sessions, we're going to be going into detail on how to use these and how to code for them.

So, first of all, just as a big overview, Game Center sits on top of GameKit, our Game Center application and so do your games.

They both take advantage of the same framework, there's a couple of pieces of the framework that are limited only to Game Center application and those have to do with account management, friends management and being able to see multiple games at once.

So, this is kind of the overall picture of how it looks and we're going to be talking about all these in more detail.

Just want to encourage everybody to go to the other two parts, we have Game Center Techniques Part 1, which is going to go into Leader Boards, Achievements, Game Center Techniques Part 2 is going to go into more of the multiplayer aspects of it, Invites, Auto-Matching and a couple other features like that.

Graham did a session this morning, if any of you missed it, on Quest.

Those are going to be repeated on Friday.

We encourage you to go to those.

We also have two labs which we encourage you to go to.

So, what you'll learn in the overview.

First, we're going to go over the definition of what is a Game Center game and we'll go over the definition of what is a Game Center player.

Once we got those definitions out of the way, we're going to go on and start looking over what's in the application, what's in the framework and then I want to highlight some differences between what you're going to see in development and what the consumer's going to see in production.

First of all, what is a Game Center game?

So you have to do two things to be a Game Center game.

First of which you have to register your bundle identifier through the developer portal.

Second thing is, when you, when your game is launched, you have to authenticate a Game Center player.

You do those two things, you're a Game Center game.

Pretty simple.

There's a couple optional things that we encourage people to use such as Leader Boards, Achievements and Multiplayer functionality that we have and we'll be going into all this in more detail.

But, I want to say, if you just do the first two things and become a Game Center game, actually maybe multiplayer for the first one, you get a lot of extra things.

If you have multiplayer you, you get the invite notifications.

This is a fantastic way to increase discoverability of your games.

When a person gets an invite notification, if they don't have the game, they'll get a purchase upgrade option or upgrade option if they have it in the wrong version and purchase option if they don't have it.

If you just do the first two things, you're automatically listed in Game Center as a game a person has played.

This means when other people looking at their friends games, they'll see your game listed.

You get all the friend comparison stuff in our Game Center application, you get the secure player registration authentication and you get all our friend relationships from our social gaming network.

Game Center player, again you have to do two things to be a Game Center player.

You have to have an account and most people already have an account.

We leverage the iTunes accounts there to there or you can create a new account that's an Apple ID without the iTunes information.

You can do either, but almost everybody out there using an iPhone right now or iPod touch has the iTunes account.

You also have to create a unique nickname.

Some people already have unique nicknames.

This is the same name space as the iTunes Store today, when you do reviews of music or apps, it asks you for a nickname, this is the same name space.

So, a lot of people already have these first two things.

There's some optional things, just listed a few here, but, but optional things for players is creating a status message and making friends.

So, just a couple of things as a highlight you get from a Game Center player, first of all, you the developers find out the person's nickname, as I said it's unique, but it's not persistent.

We also have the unique Player ID, this one is unique and persistent.

So it, the deal is the person can change their nickname if they decide to, but this unique Player ID would persistent and unique and this is what you should use to reference that player.

There's also a flag letting you know if the player is under age and there's the information about that player's friends.

In the Game Center app, there's also, obviously editing the styles, message, seeing all your friends status messages, the games played and statistics for those games.

The Game Center is there to pull all of this together so people can browse how their friends are doing, how they're doing and all their different games, all that.

And you also get a list of recently played people and games and we'll go into that in a bit.

So, I want to do an overview of the Game Center application and we're going to do something kind of un-Apple like here.

I'm going to be talking about some features you haven't seen yet.

I'll try and call out the ones that are different from what you see and what's available in the developer seeds right now, and what will be available to the consumers, as we go along.

The Game Center application is a built in application.

It's, it comes with iOS 4 and it's available to everybody to use and it's there to promote social gaming.

It's where you go to do your player account creation and modification, create and manage your friend relationships, view your friend details, view your game details, purchase games and launch games with or without invites and again I'll get into this in more detail.

So, first off, I want to show the Me tab.

This is where you go to get your player overview, you get a high level look at yourself, you're the player, it's where they can manage their status, change their status and manage their account.

Here's where you go to, if you click on the Account button, you go to Log Out, Change Accounts or change any of your account settings.

I also want to point out the bottom are four tabs, what you're seeing today in the developers seed has three tabs, because one tab we don't enable in the developer seed and that is the Games tab, third tab in, and I'll be going into that.

In the Games tab you see a list of games, Game Center games that you've played.

These are ordered in the order you played them last and there's some extra high level information per game there.

It also has a button there to go find more Game Center games.

Obviously, trying to increase the discoverability of all the Game Center games.

Now, I want to go back one tab to the Friends tab and talk about that.

These will kind of coincide in a minute.

Friends tab is a list of all your friends, most of this you're seeing today, some of this your not.

It's ordered by the ones that most recently played, so you kind of get an indication of when this player last played.

It also tells you what game they last played.

That part you're not seeing today.

And, this is a great way for you to discover if a lot of your friends are playing a certain game or which ones most popular among your friends.

Right here, at a quick glance, you can see.

You have a lot of people playing Onword, so then it gives you their status message, also.

So, great way to get a high level information about your friends, you hit the + button to add more friends or you can drill down and look at any detail on these friends in more detail.

So let's do that.

So we're going to go look at Ares of War.

So this is a friend's detail page and what you see on here is high level information about the friend, real similar to what you see for yourself.

You got the how many friends they have, how many games they've played and ooh, they don't have many achievements yet, but they show how many achievements they had if they did.

And there's their status message and now there's three categories underneath this of the games they've played.

We break them down to three sections, the games that I've played with Ares of War is the first section,he games we've played together.

And then the second section is the games they've played that I haven't, but we both own.

And then the games they own that I don't and this is another great way for discoverability of new games, so I don't have Blocks, they do, tells me the overall rating of this game, how much it is and if I click on it, it takes me to the store.

I can go buy that game.

We got a lot of I think features like that built in to Game Center for discoverability of new games.

We're going to really help people find good games.

So now, I want to drill into one of those games in a little bit more detail, so now I'm looking at a game my friend played, Tanks.

So what it does in this case is, since I'm looking at my friend's game, it knows we both have this game, it's comparing my progress in this game versus my friend's.

So, right away I can see where we rank in the leaderboards and how many achievements they have versus how many I have.

Real quick and easy.

So now let's drill down a little bit, we're going to look at the leaderboard for them and real, it highlights me and highlights my friend if they're on there and I can quickly and easily see where we're at.

Now, each leaderboard comes with the basic filters for friends or anyone and for time, today, this week or all time.

It's all built in for you and real easy to use.

So there's the friend's leaderboard and there's the overall leaderboard listed here.

Now, let's go look at achievements.

Again, since I'm looking at my friend's game, it does a real quick comparison of my achievements in Tanks versus their achievements in Tanks.

Real quick and easy.

And, we don't give away any spoilers, so if I don't have the achievement it doesn't show that achievement to me, it shows it as I would see it.

So, you see the one with the question mark, I haven't earned that yet, but my friend has.

Doesn't show me what it is, we aren't giving away the spoiler alert.

So, just real quick, I want to look at how the Game Detail screen looks at for me, so now, it's a little bit different than how it looks at from looking at my friend's.

I'm looking at my game detail for Tanks and in this case, there's no comparison here, it has the leaderboards, it has achievements, it has my overall summation of those two, but it also has a button called Recently Played.

What Recently Played does is this will give me a list of all the people I've recently played in Tank.

This way, if I played somebody and I liked them but forgot, I can go in there, find them and friend them from there.

It's an easy way if some games don't show me who I was playing or something like that, I can go in here and find out and still make friends with them.

We also have a Tell a Friend button, another great way to increase that discoverability about your game.

I'm going to tell my friends that I love this game and they can go buy it.

There's been this Play button in the upper corner there that I haven't talked about.

And I want to talk about that for a little bit right now.

So, it's on every Game Detail screen and it may do something a little bit different depending on which screen it's on.

This one, I'm on my friend's Tank screen, their Game Detail, if I hit Play here it's going to launch Tank.

So no matter, on all of them, if I click the Play button it will launch that game.

But in this case, since I'm on my friend's Tank Detail, it will launch the game and tell the game I want to play with this friend.

So, it will automatically start the invitation process.

So if I click Play it launches Tank, brings up the Invite Flow, this is a UI we provide and automatically selects that friend.

From here I can click Next, put in a personalized message for them and send it.

We're going to do a quick demo of this, we're actually going to do a quick demo of launching the invite from within a game and Albert Ho, if you can come up and help me on this.

Albert Ho: We fired up two iPhones here, so, I'm logging in as Thunder Zeus with this device here and I'm also going to go ahead and fire Tanks up, first.

So you see when Tanks boots, you'll see a "Welcome back" message drop and that's how you know you've authenticated against Game Center.

And so Tank is a game we use internally for testing.

It's really a head to head, you destroy the other team's tanks before you lose any tanks of your own.

And we built this game largely to test the various invite and auto-matching features of Game Center.

So, I'll just demonstrate the Invite Flow here, so I'll click on Invite and it'll will bring up a UI, which lists the, what we call the multiplayer sort of game screen, so this is a list of U, this is a list of UI that we provide for game developers, you don't have to do anything to write this UI.

Just ingrade this view controller into your code.

So you'll notice that there is a, a slot representing, that says Auto-match, so if I were to click Play Now and any, if there were other players for example in the audience playing Tanks and clicking Play Now the game would automatically auto-match and start.

But in this demo we're going to show the invite sequence instead.

So if I click on Invite Friend it will bring up a list of all my friends and I'm going to select Ares of War and then click Next and I can type him a quick message.

Then the Push notification came from the other device and with my message and so on invitee side I'll click Accept Now and the Tank game will launch.

So you'll notice it launched automatically into the Tank game and into the multiplayer game screen and it was very quick.

But, the devices were connecting, trying to establish a peer-to-peer connection and now at this point they're both marked as ready.

So they have a peer-to-peer connection at this point and if I go back to this device and click Play Now, the game will start and they are connected inside the game.

So, I'll move the tanks around, just to show that we're in the same game, they're tanks so they're very, very slow and so as you can see the games are connected.

So, there really wasn't a lot of code at all to get this to work.

In the later sessions you'll see actually how simple it is to get this connected.

Mike Lampell: I just wanted to show how quick and easy it all works.

Now I want to move in and talk about the GameKit framework that enables all this to work.

And again we're just doing an overview here to familiarize yourself with the pieces and then the next two sessions we're going to go into detail on how to use them.

Here's another look at the overall layout of the GameKit framework.

There's basically broken down into the general section of the multiplayer section, we provide the ways to authenticate a user, submitting scores, displaying leaderboards and using our standard UI or a custom UI, submitting and displaying achievements, again standard UI, custom UI, establishing multiplayer games, an example is just shown there and in game voice chat.

All these I'm going to talk about a little bit more.

So authenticating a user.

That was one of the requirements to be a Game Center game is to authenticate a user when it starts up.

When do you do this?

You do this as soon as the UI can be presented.

What it's going to do is authenticate that user through our servers if we can reach them, but I got to mention that it's, it's all asynchronous, you don't really know when that's going to happen, it could be that we can't get to our servers, it could be it takes a little bit to get to our servers, it could be that player hasn't logged in yet and we have to log them in, it could be they don't even have an account, I'm going to have to create an account and then log in.

So, we maybe presenting different UIs depending on the state of that user.

But, as soon as we can log them in we present the Welcome Back screen and return you an authentication.

Now it could be we'll return you an authentication even if we can't get to our servers and we'll cover that in the next sessions.

The player information that you get back from this like I was saying before is the unique ID and the nickname.

And again, please use the unique ID as the persistent information you store if you want to remember this person.

Leaderboards.

Leaderboards are, are a great way I think for adding another dimension to games, letting people compete worldwide and believe me, you know iPhone OS or iOS is worldwide so, I mean it's a great feature and we tried to make it real simple for you guys to add and use.

We provide a standard UI that you can just use to display your leaderboards works in landscape or portrait, comes with the basic filters I talked about or you can customize the UI as they did for Quest and in that case you get a fully immersive feel in it.

It's the same data, we're, we're keeping on our servers and providing back to you when you ask for it, but we, but we provide that flexibility.

The features, as I was saying, includes the filters and you can also query the number of entries so you can see how many friends of mine have played this game which is the Friends Leaderboard, how many people overall have played this game and that's the, Everyone Leaderboard or you, and you can also retrieve ranges.

So if, so if you have a player who's ranked 700th, you can retrieve a range around that player and show him who's right above him or who's right below him.

Is, so leaderboard setup, this is done through iTunes Connect, real simple and easy to use.

A lot of you have already used iTunes Connect for some other features.

You enable it through iTunes Connect, you set the sort order whether your leaderboard is ascending or descending, you know golf games will be different than the first person shooter game in the order they're sorted.

You specify the suffix, this is if it says points or oranges or tanks or whatever it says and you specify the format you want the numbers to be in.

So it's not only integers, we support a lot of other formats.

We'll be going over those in later sessions, the exact formats.

And for each of these we provide a way to localize it into all the languages we support for this.

I want to talk a little bit about leaderboard usage.

One of the things is, there's one leaderboard for all versions of your game.

So, a lot of people put out a game and then put out another version and another version and another and I want to say they're all referencing the same leaderboard data, so it would be really bad game design if at one point you changed your, your scoring mechanism because all of that's going up to our same server.

Now each game has their own leaderboard or leaderboards but all the versions of your game share the same leaderboard or leaderboards.

Another thing I want to say is do not download all entries.

You may have millions of people who have played your game, hopefully.

And you don't want to try and download the entire leaderboard.

It's a bad user experience, it will take forever you just download what the player needs to see.

So, here's another thing that's coming soon, it's not available right now but due to strong demand, we're making sure it gets in for the first release and that's multiple leaderboards and this is set up really similar to everything else.

You go to iTunes Connect and there you can specify the different categories of leaderboards you want, we also do something, we, you can have an overall leaderboard skill, so if you have let's say a leaderboard for easy and a leaderboard for medium and a leaderboard for hard difficulties in your game, if you want to do it that way, you can also have an overall leaderboard and what this does is all scores, we will automatically copy those up to the overall leaderboard, you just have to submit to your category.

You can have leaderboards if you have like a race track per track or whatever you want.

And again, you can have one overall one, we'll take care of that for you.

If you don't have an overall leaderboard you have to specify a default leaderboard because that's the one that by default will come up in the Game Center, in our Game Center application.

And the way this works different from what you're doing today is there's another field you can specify which category you're submitting this score for.

And then when you query the data back, you use that same category.

All this we're going into more detail later.

Now I want to talk about achievements.

Achievements are another great way to add dimension to a game and I think we've made it real simple again.

Just like on leaderboards we provide a standard UI, you can just use and then the achievements will look very similar in your game as they do in Game Center or you can choose to customize it and make it fully immersive within your game.

We provide the flexibility to do either.

I'm going to talk about what our achievements do because it's a little bit different than what you might be used to.

One, we, we provide before and afters, so you can have a description before the person has accomplished that achievement and then a separate description for after the person has accomplished that achievement.

So, if you want to be fun you go find the hidden treasure and you know before and then after "Congratulations on finding the hidden treasure."

I'm sure you can be much more creative on that.

We also offer progress on achievements, so if one of your achievements might be, Kill 500 Orcs and the players killed 400 so far, well they haven't quite achieved the achievement yet, but we can show progress towards it.

So if you report up that 80 percent of that achievements been accomplished, we'd be able to show that.

We also support hidden achievements.

Hidden achievements are, they don't show up until your game tells us to show it for that player.

They can be used for a lot of different things, if you want to keep the achievements secret and just don't want to let the user know about it until they've achieved it and let them know, you can do it that way.

I think they're going to be really useful for in app purchases.

So, for instance if you want to tie some achievements to an in app purchase you start them out hidden, when the person purchases that in app purchase, you can then unhide those achievements and so that's how you'd do it with hidden achievements.

You set them up the same way, through iTunes Connect, real simple and easy.

So, again just like leaderboards, one set of achievements per app, not as you have different versions of your app, they all point to the same achievement data so you have to kind of plan ahead and design these out appropriately for your game.

Cause you would, it would be bad to give your user an achievement and then put out another version of your game and that achievements now something totally different.

So, just plan ahead when you do this and like I said, you set it up through iTunes Connect.

Here's an example of how Quest customized the leaderboard display for their game.

Now I want to move on to multiplayer.

Multiplayer is normally extremely difficult thing to implement in games and we've gone and made it much, much more simple.

Part of one of the things that we offer for multiplayer is game invitations, in the example you just saw, auto-matching, multiplayer UI, matchmaking only, and in-game voice chat.

Let me go into these in a little bit more detail.

Multiplayer game invitations, I think you just saw how that worked with the push notifications.

Push notifications have been really, really robust and popular and we're leveraging that for the in game invitations.

So wherever you are you can invite a friend and wherever they are, whatever they're doing they can get an invite, so this is really mobile multiplayer.

They click Accept, as you saw, it launches the game.

Now, we also identify when a friend doesn't have your application and in this case we'll give them the option to go to the App Store and purchase your application.

So great way of discoverability of your game, you leverage our entire social gaming network to do this.

We also, if they have your game but they don't have the appropriate version to play against, we take care of that also and tell them to go to the App Store to update.

Auto-matching.

Auto-matching I think is an awesome feature that we have, invites are great for friends to invite friends but I just want to play a multiplayer game now, I want to be able to play against anybody else and our auto-matching service helps to do that.

Players launch the game, then they select to be auto-matched, all the people selecting to be auto-matched feed up to our server, our server does some great logic, figures out the best matches out of all those people and returns that information.

We can set up a peer-to-peer connection after that or you can take these matches to your own server, if you have your own server to host the games, and then you're playing.

We also have some other features to extend our auto-matching which I'll talk about briefly, just player groups and player attributes.

So first, I just want to kind of do a visual example of what I just explained so make sure everybody gets it in their head.

We have, this is another game we created just to test out stuff, this is Onword done by one of our engineers, Ken.

And, I choose to hit Multiplayer and that brings up our UI.

This is a UI we provide, it's consistent for all the games so you, the user is very familiar on how to do invites and how to do auto-matching.

And this game supports up to 2 to 4 players, went and made it a 4 player game by hitting Add a Player a few times and at this point, by default, everybody comes up to be auto-matched.

So if I were to hit Play now, it's going to go to our server and say auto-match me.

I could choose to invite a friend or not, we did an example of that, I'm going to do auto-match for all these people.

That information gets compute, communicated up to our Game Center auto-matching service and I'm assuming you guys are writing popular games, right?

So there's going to be lots of other people doing the same thing.

There's a probability thing, there's always going to be lots of people wanting to play your game and all that information gets fed into our services and our services then do some great logic and figure out, here's the best, here's a good grouping of those people asking and it will do this for everybody.

So everybody will get matched and it does it very, very quickly, passes that information back to the games and then we can set up real quickly and easily, we've provide the services to set up the peer-to-peer network with all these people or like I said you can take it to your server and connect up there.

So we support both of those.

We've built in the peer-to-peer connectivity to make it super simple, that's usually another very difficult thing for games to develop.

We've done a lot of great technologies there, we're really happy about that.

We should be able to connect just about any two devices over Wi-Fi or over 3G.

So, now I want to talk about some of the expansions we've put on and excuse the art a little bit.

Let's say you have a racing game and you have 4 race tracks and what you want to do is have people select which race track they want to race on and then go out and match from there so that, "Hey I want to race on the figure 8 one," and I get matched to other people that want to race on the figure 8 track.

Well the way this works is we provide player groups.

You communicate up to our services the groupings you want to be matched into and we find the best matches within anyone of those groupings.

Now we also provide some other functionality on top of this.

There's a way to query the service so you can find out, see this one poor guy, he's the only guy that wants to play that one track right now and you can query the services and kind of see that that's happening and either provide the user with some feedback or automatically adjust them over to a more popular race track.

So that they will get matched.

All this is, you can create as many of these player groups as you want or you can adjust them dynamically during run time.

So now I want to talk about player attributes and this will work, I'm going to do an example here for like a dungeon crawler game, this will work equally well for lots of different types of games.

There's a lot of different ways this could be used, if you have the, let's say a music type game and you wanted to create a band with a drummer, a guitarist and whatever else, it could be used for that also.

But, this time, what we want to do is put a match together with four different types of people or different combinations of people in the same match.

And we do this with our player attributes, so we're going to do a dungeon crawl, so now, just to make it simple, I've gone back to one player group, everybody communicates up to our service and they communicate up also their player attributes.

And we get a little bit of logic based on this on how to use those attributes to match people.

Again, we do our logic plus the extra logic the game sends up to us and are able to match back the people with the right player attributes.

These two extensions are really powerful and flexible and I can't wait to see what you guys do with them.

This game has a range of players, 2 to 4 players can play it.

Your game may only be for 2, only for 4, if you tell us that then that's the default we use and there is no adjusting.

But if you offer the range, the user can select how many people they want to play with.

He has a racing game he wants to race with three people right now.

Maybe he wants to race with only one other person, his friend head to head, he can choose, he can choose whether he wants to be auto-matched, he can choose whether he wants to invite a friend, it's all there, he can also add a personalized message for all the friends he's inviting or one per friend.

He can do it all through our invite UI.

It's also a possibility of doing a combination of the two.

I can invite one of my friends and then be Auto-Matched for two others.

So let's say we want to play a 4 player game but I only have one other friend available right now.

We provide the UI to do this and we make it simple and we make it consistent across all the games using multiplayer in Game Center, so that the user gets very familiar with how this works and I think it will be great for getting a lot of people to play.

Here's a feature I really love, so, in-game voice chat.

I'm playing a multiplayer game, I have a phone here.

I have a device capable of voice and a speaker and everything on it.

I want to be able to talk to the people I'm playing with, so we also hook into all of this in game voice chat.

We provide the controls for you to set the participation, so if you have a 4 player game, you can have everybody talking to everybody or you can choose to have Team A talking amongst themselves and Team B talking amongst themselves, there's a lot of flexibility here including flexibility on the volume and new controls and we'll be going over these in a lot more detail.

I just kind of wanted to do the high level here.

Went through Game Center application, that's where people go to find everything and I talked about some of the new features that you're not seeing right now.

Went through the framework which I think is powerful and flexible, we allow you to do a lot of things really easily, when it comes to, when we show you the code later, you'll be really surprised at how little code it takes to add like leaderboards, achievements or multiplayer to your game.

Now I want to talk about the difference between what you're doing right now and what will be in production.

Part of which I already went over and that's what you're seeing and developer's seed for the Game Center application is slightly different than what the consumer will see.

For one there's an extra tab.

One of the things we hide in the developer's seed is the games you're playing or have played.

And we do this for your privacy.

So if you have friends that are working at a rival company, they won't see all the games you're working on and that's one of the reasons we do that.

So let me step through this in a little bit more detail.

First of all, development versus production, we often call development sandbox, so you will hear it referred to that way also.

This is the development area.

This is where you make new games or you make new versions of current titles.

So, if you've already put out a version of your game and you're working on the next version, even though you already have one in production, the one you're working on is in our development section sandbox.

I also want to mention the difference in accounts and the data.

So, it's a separate nickname space in sandbox versus production.

It can be the same iTunes account, but it will be a separate nickname name space.

So any nicknames you're creating right now on, in our sandbox, in our developer preview, those are different than what you will have in production.

Just so you know.

But also the Game Center Service, servers are different.

You're hitting a different set of servers than our production servers.

That means that all the matching you're doing is to a different set of people than in production.

All the leaderboard data you have right now is separate than what will be seen in production.

And the same is true with achievements.

This is great, so you can mess with this stuff, you can play with it, you can change the way it works and it won't affect anything you've already shipped if you're working on another version of it.

You won't, you won't accidentally be matched with somebody that's a, has a production version of your game.

And maybe you can take an unfair advantage of them if you're working on a debugged version.

One other thing I failed to mention earlier which I should mention is, we also have a compatibility matrix that you can set up through iTunes Connect, it doesn't really matter right now, because nobody's shipped any Game Center games yet, but once you've shipped one and let's say you come out with a future version where you don't want people to be matched that have the previous version.

You can set that up in iTunes Connect.

And so we call that the Compatibility and we will be talking about that a little bit more later, too.

Once Game Center goes live it will be possible for you to have production Game Center games and development Game Center games both on your device at the same time.

Now there'll only be one Game Center application on your device that will be able to switch back and forth between sandbox and production mode.

And what we're trying to do is make it easy for you guys so it's not confusing when you're in one or when you're in another.

Let me walk you through how that works a little bit.

I just want to talk about how you switch between the two.

This is some of the internal games we made to test out Game Center and what we're going to do is first of all I want to reinforce that this isn't really an issue right now, I'm preparing you guys for the future because I don't think we're going to have another WWDC before the end of the year.

So what you do is, you logout of your current game through Game Center.

I think I showed you before there's that Account button, you hit the Account button and you hit Sign Out.

And that will sign you out of Game Center, then you go back to here so you can select one of your applications, you select the one you want to launch and if it happens to be a sandbox application, one in development, you get a different sign in.

It tells you you're going to be signing in to sandbox.

And from here you can choose to use an existing account and log into that or create a new account.

When you sign in here, you will now be signed into our sandbox servers and if you go back to Game Center, you'll have a , you'll see a slightly different Game Center.

One that's hitting our sandbox servers.

The third tab, the Games tab will disappear and there will be a couple other changes, but it will be getting all it's data from our sandbox servers as will your game.

Now you can reverse the process easily and go back to a production by logging out through Game Center application and logging in using a production application.

Real simple and easy to do and we've tried to make it obvious which one you're hitting, even in the password box.

One more little difference between some, what we've done before at Apple and what we're doing now, as I said, Game Center is available as a developer preview right now.

We'll be out later this year for consumer release and we'll give you plenty of notice before it's available so you'll know when to go out.

You can't ship any games on Game Center until then, but I want to make sure you can get at the Game Center features and it will be available, you can download it as an IPSW from the developer site, you see here.

And again, no submissions to the App Store until later, so I want to make sure everybody's aware of that.

So, let me summarize a little bit what we've gone through.

We've tried to make it real simple for you to adopt all these Game Center features.

Easy ways to enhance social game play.

We provide the player identification to you, we provide the leaderboards and achievements stuff for you and we host it all on our servers, take care of sorting and filtering it and all that for you, the game invites, we've tried to streamline that as much as possible, make it super simple and easy to use.

You can use our standard UI which allows the user a lot of flexibility, they choose who they want to invite, they choose if they want to invite or do auto-matching.

We also provide the ability for you to just do auto-matching.

There's no UI involved in it.

It's real quick and easy, your game says auto-match this person, it goes up, they get auto-matched and they're in a game.

So, all that we've tried to streamline, take something very difficult and hard to do and make it real easy.

We also do the connectivity layer underneath for peer-to-peer connectivity, very, very robust.

We've done some amazing things there and I'm really excited.

Can't wait until that's all out and you guys can try all that.

Everything is really flexible.

We've provided a lot more features than are normally available for these things to, we know we've got a wide variety of games out there and we wanted to appeal to all of them.

We want the wide variety of games that you guys are providing and so we've put a lot of flexibility in here.

Including the skin ability in most of these screens so that you can make them totally immersive, use the data we're giving you and make them fit your game.

We've also, as you saw as we were going through here, I hit some of the viral distribution options we offer in Game Center.

It's been one of the things we focused on.

We want to help sell your game so we've put a lot of discoverability things in Game Center and we talked about a lot of them.

There's more and I think it's going to be great for the entire community.

Players will be able to find great games.

They'll be able to use their friends to help find recommendations for new games, they'll get the friend invites which they, give them the ability to get it.

There's a lot of things in there and I'm really excited about all that.

For more information, please contact our Game Technologies Evangelist Allan.

Apple, Inc. AAPL
1 Infinite Loop Cupertino CA 95014 US