TODD: Oh, hi there.
Glad you could join me.
You caught me moonlighting at my other gig
as an indie game developer.
I am putting a few touches on the next update of my game,
and my friend Gus is here to give me
some feedback for our beta testers.
So, Gus, what's the good news?
GUS: Hey, Todd, so this new Uber Leet!
achievement that we added, it's way too easy.
TODD: Really?
GUS: Yeah, I was able to get it in like five minutes.
TODD: Oh, well, let me fix that here.
A little coding, and done.
All right, can you try earning it again?
GUS: Well, I already have the achievement,
so I can't earn it again.
Can you, like, reset it for me?
TODD: What?
Reset an achievement?
What am I, some sort of wizard?
What's next on your list?
GUS: Well, you know this new high score leaderboard?
TODD: Yeah.
GUS: Your beta testers are saying
that there's a bug report saying that the scores are now
double what they should be.
TODD: Oh, well, I can fix that.
Let's remove the times two, and done.
All right, ask them to try again.
GUS: Well, they already have these super-high scores
on the leaderboard, so it's going to stay broken.
Can you remove their scores?
TODD: What?
Reset a leaderboard?
Again, not a wizard.
Is there anything else?
GUS: Yeah, a couple of cheaters found an exploit
to cheat their way to the top of the fastest time leaderboard.
Can we remove them?
TODD: What?
Remove players from a leaderboard?
OK, seriously, I am not a wizard.
Speaking of, what happened to our wizard?
Didn't we used to have one on staff?
GUS: Yeah, he left a palantir.
TODD: Wizard!
Well, for those of you who don't have a wizard on staff,
we have the next best thing available--
the management APIs for Google Play game services.
So the management APIs are a set of rest calls
that do things that an ordinary player can't do.
Now if you were to take a look at them,
I'd say 90% fall under the "help you reset stuff during testing"
category.
So if you want to earn an achievement for a tester
or clear it so that they can earn it again, you can do that.
If you want to remove all scores from the leaderboard
your testing, you can do that, too.
If you've upgraded, say, your turn-based data
format and need to kind of clear out all those old games,
well you can do that as well.
The one exception to all this is this last 10% here.
And maybe it's the most important 10%,
because it takes care of a very important task,
dealing with cheaters.
Yes, in spite of your best efforts,
cheaters will find their way to the tops of your leaderboards.
I mean, look at this guy with his smarmy face.
Don't you just hate him?
I know I do.
But with a couple of API calls, you
can make sure you never have to see his cheating face ever
again.
The management APIs have a hide call,
that basically will block any scores from this user from any
of your public leaderboards.
Note that this is a lot more effective
than just removing a single score.
If you were moved a score, this cheating player
could go ahead and add something back 15 minutes later.
God, it's like he's a cockroach or something,
just keeps coming back.
But with a hide call, you're essentially hiding everything
from this player and all the scores
they submit in the future, which is pretty nice.
Now in the wrong hands, these management APIs
can be dangerous, or at the very least
a player could erase a whole bunch
of scores they didn't mean to.
So you'll notice we have a few restrictions on these APIs.
First, only the people in your testers list
can call these APIs.
Now you might think that's a small number of people,
but remember that if you have alpha or beta testers,
and you've given them testing access to game services
here, this might be a lot more testers
then you originally thought.
Second, management APIs can only be used on tester accounts
or on game service resources that
are still in an unpublished state.
So if you want to erase an entire leaderboard,
go ahead and do that, as long as it is a draft leaderboard.
If you want to remove all achievements from a player,
you can do that, but only for a test player.
If you want to remove published achievements
for a normal player, well, sorry.
That you cannot do.
But remember, if you've got alpha or beta group selected
as testers here, you may have the power
to affect more people than you realize.
And again, the exception to all of this is those cheater APIs.
These will work on non-tester accounts,
because cheaters are basically their own category of person--
really person is too generous, more
like kind of a bipedal creature capable
of basic human-like thought or something.
Anyway, third, we don't have a lot of client library support.
Now on the one hand, it seems like there
might be times you want a convenient,
erase all my achievements option directly in your game.
But all we need is one or two beta testers to accidentally
find this button, and you've got some really angry players
on your hands.
So how do you do this stuff without a client library?
Well, generally speaking, you're going
to make raw rest calls directly, probably from a web
app that you've built yourself that only a few people
on your test team know about and have access to.
But wait, you say.
I'm a mobile game developer.
I'm all about, like, path-finding algorithms
and collision detection and vertex calling.
I don't have time to learn about server issues
like making rest calls.
Well, don't worry, my pretty little polygon pusher.
We have a ready-made web app that you can download and use.
And with a couple of configuration steps,
you can set it up to reset achievements.
You can reset quest progress.
You could delete a turn-based game,
or you could clear out a test leaderboard
and hide some cheaters.
Now there's a lot more that these management APIs can do,
and we'll be adding more capabilities in the future.
I encourage you to check out the full documentation,
which we will link to at the end of this video.
Oh, hey, that reminds me.
I should probably go back to the studio and check in on things.
All right, Gus.
I have reset your achievement so you can earn it again.
I have cleared out that buggy leaderboard,
and I have removed those cheaters
so we never have to see their cheating faces ever again.
How's feedback now?
GUS: Yeah, it's still pretty terrible.
People aren't digging the update.
TODD: Really?
Is it the new boss fight?
Is it too hard?
GUS: No.
TODD: Is it the epic loot?
Is it not epic enough?
GUS: Nope.
TODD: Is it-- it's not the new bonus level
where you have to punch a koala, is it?
GUS: Yeah.
TODD: Philistines.
They just don't understand art.
Do they even get that the koala was
a metaphor for oppressive censorship?
GUS: You should have picked a metaphor that is less fuzzy.
[THEME MUSIC PLAYING]