Tip:
Highlight text to annotate it
X
[MUSIC PLAYING]
BRUNO OLIVEIRA: Hello, and welcome to the third episode
of our show about games.
My is Bruno Oliveira, and I work on the Android Developer
Relations team.
TODD KERPELMAN: I am Todd Kerpelman, and I am on the
Play Games Developer Relations team.
And this is episode three of "Game On!", our sort-of
every-couple-of-weekly show about all
things games related.
BRUNO OLIVEIRA: And you're probably wondering where
episodes one and two went.
And this is what we're going to talk about.
TODD KERPELMAN: This brings us right into
our news and updates.
And we'll start with--
BRUNO OLIVEIRA: --we actually changed our name.
TODD KERPELMAN: We have a name.
BRUNO OLIVEIRA: We used to be "The Google Play Game Show,"
and now we've changed to "Game On!" Actually, that font looks
a little too modern for my tastes.
Why don't we try something more retro, like 8-bits?
Ah, that's much better.
TODD KERPELMAN: That's a little better.
So you'll notice we added the lens flares in
just for you gamers.
BRUNO OLIVEIRA: Absolutely.
TODD KERPELMAN: We know you love lens flares.
BRUNO OLIVEIRA: And we have some news on the iOS front.
Is that right?
TODD KERPELMAN: That's right.
On the iOS front, the big news is, we just released an update
to the iOS SDK.
Version 1.1 is officially available.
The biggest improvement that you will probably notice is
that we have a new look for the Achievement and the
Leaderboard widgets.
It's a little more of a modern look, going with the aesthetic
of iOS moving forward.
So you'll probably notice that right away.
We also have a number of performance
improvements under the hood.
We've greatly improved the caching
for leaderboard scores.
If, for instance, your user switches back and forth
between daily, weekly, and all-time leaderboard scores,
that will be much faster.
We do a better job of batching and
submitting leaderboard scores.
If the user plays a bunch offline, then comes back
online, all of their leaderboard scores, all their
score submissions, will be submitted in one nice little
batch instead of, say, multiple score submissions.
So that'll be nice.
That'll be a lot more efficient.
We have exposed that call as well.
If you want to, for instance, submit a couple of scores to a
couple of leaderboards all at once, we now have a call
available for you to basically batch all those up and make
those in one network call.
Which is really nice.
It saves on battery and performance
and all of that stuff.
We've also made a number of bug fixes and enhancements
and, in general, performance improvements under the hood.
And so we encourage you to check it out.
I do want to let you know about a couple of gotchas.
First, there are two new frameworks that are required
by this new library, specifically,
CoreText.framework and QuartzCore.framework.
So if you haven't included those in your
project, you'll need to.
Also, with this new library, you're going to need a
deployment target of iOS 6.0 or greater.
Chances are you're probably already doing
that with your game.
But if not, you are going to need to change your deployment
target if you're using this new library.
And so this library is available from our site at
developers.googl e.com/games/services.
And then look for the Downloads link on the left.
BRUNO OLIVEIRA: And now, for those of you who like tracking
bugs, and especially if you like a public way to track
bugs, we have--
ta-da!--
a public bug tracker.
So if you've got a bug or a feature to request, then you
can access that URL right there, code.google.com/
p/play-games-platform.
TODD KERPELMAN: This is also available from our Games page.
If you look on the left, of there's now a link to, I
believe, Public Bug Tracker.
So if you notice any issues with a game, or you have
requests, or anything else, feel free
to submit them there.
I can't guarantee that we will reply to every bug, but I can
guarantee we'll at least look at them.
BRUNO OLIVEIRA: Absolutely.
And make sure to post only the bugs that have to do with the
platform there.
If you find a bug in the samples, then the
right place is GitHub.
And you go to GitHub, and GitHub has
its own issues system.
TODD KERPELMAN: And if you find a bug with a game, you're
still probably better off contacting the game developer.
We can't debug every game.
BRUNO OLIVEIRA: We didn't make every game.
TODD KERPELMAN: No.
So with that out of the way, let's move into this week's
topic, which is Cloud Save.
And so Cloud Save is a great feature.
I think this service is a little
under-utilized right now.
BRUNO OLIVEIRA: Absolutely.
It's missing on so many games.
I've lost count how many times I've played a game and wished
it had Cloud Save.
Especially if you change devices, and then you have to
lose all of your progress.
TODD KERPELMAN: I suppose Google employees might have
more devices than your typical consumer.
But even now, you're starting to see consumers with a lot of
devices in the household.
Right?
Maybe they've got more than one phone.
Maybe they've got a phone and a tablet.
And they switch back and forth between them.
And it would be great for your users if they could keep their
progress between one device and the next.
If they suddenly go from playing your game on their
phone to opening up your game on the tablet, and they
realize that they have to start over again all the way
from level one, they're probably just not going to
play your game on that device.
And maybe suddenly they decide they've lost interest in it.
They're not playing your game anymore.
They're not seeing ads.
They're not buying in-game items.
They're not telling their friends about it.
And it's bad for your users, and it's bad for you, too.
So we really encourage you to look into Cloud Save.
It's really just designed to do one thing, and one thing
only, and that's sync your users' progress from one
device to the next.
And so, with that big preamble out of the way,
let's go into a demo.
BRUNO OLIVEIRA: Actually, before we go into the demo,
it's important to notice that Cloud Save is actually
cross-platform.
So you can even have, again, if your game runs on Android
and iOS, you can save your state on Android, and then
pick up the same state where you left off on iOS, or
vice-versa.
So that's good for households that have, like, one iPad, and
then one Android, and one iPhone, and
then another Android.
TODD KERPELMAN: That is very true.
I mean, that's starting to become a common situation.
Households will have Android phones and iPads, or they'll
have a Nexus 7 and an iPhone.
And being able to play your game and continue progress
between those devices would really be fantastic.
BRUNO OLIVEIRA: And if your game also works on the web,
you can also share that state on the web.
So that's pretty handy.
TODD KERPELMAN: That is very true.
So with that in mind, we're going to be demoing Samurai
vs. Zombies Defense 2-- this is by Google Mobile--
partly because it's a pretty good example of Cloud Save.
And also because--
BRUNO OLIVEIRA: And also because it has
samurais and zombies.
TODD KERPELMAN: And zombies.
BRUNO OLIVEIRA: Nothing at all wrong with that.
TODD KERPELMAN: Yeah.
It's a pretty fun game.
So with that, this is the game right now running on--
BRUNO OLIVEIRA: So this is a Galaxy Nexus.
TODD KERPELMAN: My Galaxy Nexus phone.
And I would love to show you more of the game, but we're
limited in time.
So I'm just going to do something real quick here.
I'm going to start the game up.
And the game starts me in a storefront.
And so I think--
oop.
Do I want to download this game?
Eh, not right now.
But thanks for asking.
All right.
So you'll notice I have about 920 of these
little silver coins.
I'm going to use them to upgrade this hero here,
Kunoichi, from level one to level two.
So, yes, let's upgrade her health.
BRUNO OLIVEIRA: All right.
TODD KERPELMAN: All right.
She's been upgraded.
Now I'm going to go back to the main menu.
And the game does save to the Cloud automatically.
However, because we're in a demo situation, I'm going to
manually force a save.
So it's going to say, OK, I'm going to save to the Cloud
next chance I have.
And hopefully, it's doing that right now.
BRUNO OLIVEIRA: All right.
Now let's switch to our tablet and see if that worked.
TODD KERPELMAN: All right so I'm on the Nexus 10 now.
And I'm just going to force a Cloud Load here by going into
the Cloud Load menu.
BRUNO OLIVEIRA: Notice that normally this would happen
automatically.
We're just forcing it so that we can actually do this in a
demo time frame instead of sitting around
waiting for it to upload.
But normally the user would not have to do this.
So now we're loading the game again.
So remember that Todd upgraded the character
on the Galaxy Nexus.
So what we should see when the game loads is that the
character is going to be upgraded.
So we should see a higher-level character than we
had before.
TODD KERPELMAN: Should see that.
Fingers crossed.
Let's see here.
I'm going to start.
And look at that!
BRUNO OLIVEIRA: And there we go.
So it's the same level, level three.
You were level three before, right?
TODD KERPELMAN: Well, yeah.
Or, I guess, level two.
That option is to upgrade to level three.
BRUNO OLIVEIRA: Oh, yeah.
That's true.
TODD KERPELMAN: Point being, my progress is carried over
from one device to the next.
And now I can keep playing on the Nexus 10, which actually
has a much better framerate.
So this is a better platform to play on anyway.
So I'm just going to take this with me after the show.
BRUNO OLIVEIRA: Perfect.
TODD KERPELMAN: So there we go.
All right.
BRUNO OLIVEIRA: So, conflict management.
So Cloud Save is pretty convenient.
It can save and it can load.
But then imagine what happens if two devices try to save
conflicting states at the same time to the Cloud?
So I'm playing here on my tablet, and then I upgrade my
character to level two.
And then on my phone, I upgrade the same character to
level four without syncing up the changes.
What's going to happen is what's called
a Cloud Save conflict.
So you need to think about those Cloud Save conflicts and
then handle them in a way that makes sense for your app.
So if you want to take a look, that link over there is a link
to a white paper that we wrote that talks about many
strategies to handle Cloud Save conflicts, and how to
make that in a way that makes sense, and that--
and this is especially important-- in a way that
doesn't lose any progress for the user.
TODD KERPELMAN: Right.
So it's a pretty in-depth bit of reading.
My takeaway, if you just want some general advice, is when
you're trying to resolve to Cloud Saves, resolve these two
states in isolation.
Don't assume, based on the local user's game state or
anything, you know more than what you get from
the Cloud Save data.
Just because it gets a little tricky, but due to, sometimes,
the way that we give you these two states to resolve, they
might not be, actually, in the time frame you expect.
So, long story short, try and resolve these two states as if
this is the only date you have.
And just try and forget about the rest of the world when
you're doing that.
And I suppose there's a couple ways you can
look at this problem.
One way is, if you want to be clever, do it Bruno's way,
which would be--
BRUNO OLIVEIRA: You can look at the two states and see if
there's a clever way in which you can merge them together,
instead of just picking one or the other.
Sometimes it might just make sense to
pick one or the other.
But sometimes, if you notice that they have discrepancies,
it might make sense to merge them intelligently together.
So this is what, for instance, our sample, Collect All The
Stars, does.
Which is, for instance, if you unlock a few levels on one
device, and then unlock a different set of levels on a
different device, then what it does, is it actually combines
those two saves into one.
It doesn't choose one.
It doesn't choose the other.
But it actually combines them into a single save that has
all of those levels unlocked.
TODD KERPELMAN: And if you think about a lot of games--
Cut The Rope, Angry Birds, Where's My Water, Where's My
Mickey, which is awesome--
if you think about the way those games work, in general,
you have stars on every level, and you have high scores on
each level.
And that can be pretty safely unioned between two
conflicting sets of data.
If you have two stars on level 1.4 on this device, and three
stars on level 1.4 on this other device, that's something
you can very easily merge just by saying, let's take the
greater number of stars.
BRUNO OLIVEIRA: Stars may be an easy case, but be careful
about stuff like virtual currency, because it can get
into hard-to-predict problems.
So more details about that in the white paper.
TODD KERPELMAN: And then, of course, if you don't want to
be clever, just ask the user.
Say, hey, you know what, we found these two
sets of Cloud data.
This one looks like it was saved on July 30 on this
device, and this one looks like it was saved on August 1
at this time on this device.
You're at level four with a thief on this one, and you're
at level five with a paladin on this device.
Which one do you really want?
Ask the user.
Bring up the dialogue.
Chances are the user will know which one they want.
And go with what they pick.
So if you want more information, check the Docs.
You probably knew we were going to say that,
but there's the link.
BRUNO OLIVEIRA: Becuase we say that on every show.
TODD KERPELMAN: We kind of do.
But go to the Docs.
BRUNO OLIVEIRA: We really love our Docs.
TODD KERPELMAN: We spend a lot of time on them.
You should read them.
We have a link to Cloud Save there on general concepts.
You can read up more about it.
Read Bruno's white paper.
BRUNO OLIVEIRA: And then, of course, if you want some real
excitement, you can try our sample app, which is Collect
All The Stars.
TODD KERPELMAN: And we have versions for Collect All The
Stars on Android, iOS, and web.
So you can see what it looks like saving one state on one
device and another state on another completely different
device, and watching your progress carry over.
It's pretty magical.
BRUNO OLIVEIRA: And it's a very challenging game.
TODD KERPELMAN: It is.
So yeah.
That too.
So I think that pretty much wraps it up for episode three
of "Game On!" We'll be back in a couple weeks
with episode four.
We'll probably keep the same title.
So just start searching for it.
BRUNO OLIVEIRA: All right.
So thanks everybody, and see you next time.
TODD KERPELMAN: Thanks, video audience.