KHALED ABDEL RAHMAN:
I'm Khaled, and I'm
a product manager on the
Living Room team at Google.
And my focus is cast
games and bringing games
to the living room.
Yeah, I have one fan already.
So Google Cast is
designed for you
to interact with your
home entertainment devices
with your mobile phone-- so
your TVs, your speakers, now
with Chromecast Audio.
It's a very fluid experience
that most people already
know how to do.
You already know and love how
you're searching for content
on your mobile phone.
And it's a really,
really simple process.
You find the content,
you tap the button,
the content is on the TV.
And Chromecast has been
doing exceptionally well.
It's a top selling
streaming device.
As we announced last September,
it's done over $20 million
in sales.
And we've launched
the new Chromecast
and its colorful variations
you see up there.
It's really fun.
And we've also launched
Chromecast Audio,
where you can now stream
your favorite audio apps
to the different devices that
you have around your home.
So let's jump right into it.
Why make a Google Cast game?
So a Google Cast game is
going to enable a multiscreen
experience.
So now you're playing on your
TV as well as on your phone.
People love games so much that
it's the top category on all
of the app stores available.
But gaming on the TV is
actually not that simple.
You have to spend a few
dollars on a console,
get a bunch of controllers
for all your friends
that are coming in.
Wouldn't it be much simpler if
the mobile games that you have
can immediately be
played on your TV?
With Chromecast, you
absolutely can do that.
And the entry level is basically
$35 for a Chromecast device.
What does that mean
for you as a developer?
Well, across Google
Cast, when games and apps
are connected to the TV, we're
seeing stronger engagement,
increased monetization.
And given that the living
room is inherently social--
people are there and commenting
on how bad you are playing--
we're seeing an increase in
downloads for multiplayer
titles, which is great.
Given that it's
also on your phone,
you can utilize all the power
of your phone-- everything
from infrastructure
is already there.
If you've already
built your app,
it becomes much simpler to
just build Cast functionality
and have it run on the TV.
So let's talk a bit about the
user experience and some things
to consider with a Cast game.
Did it switch to
the right slide?
There you go.
So the first thing to
consider is private
versus public information.
Now you have a new
set of experiences
that are open for you.
Players that are in
your living room each
have their own screen, and
then there is a big shared TV
screen that they can play with.
If you consider a poker game,
the dealer could be on the TV,
and everyone's personal
cards are on their phone.
And that's so much fun.
At the same time, given that
this is a split information,
please make sure that
the player doesn't really
need to figure out
where they're looking.
This is what we
call look fatigue.
Players should not be switching
constantly from TV to phone
and trying to figure
out where they look.
It should be very
smooth to them,
following with the whole
Cast experience being
very smooth-- a few taps to
get your content on the TV.
And same thing for
multiplayer-- the first player
is going to have a really smooth
experience getting the game up
there with one tap of a button.
The person joining should
have the same experience.
It's just simply one
tap, get into the game,
and start playing.
And those are the best
kind of experiences
you can have with your
friends on the couch.
Sorry.
There's a bit of latency
happening between me switching
and-- so given the
phone as a controller,
you obviously have a lot
to work with in terms
of interaction models.
There's a whole spectrum for
more abstract, just simply
gyroscope and accelerometer,
to then the more traditional
that you use with your phone
now, which is specified taps
and targeted touch inputs.
So I wanted to highlight some
of these interaction models
and give you a recommendation
on what's best to use.
And obviously, this is
just a recommendation.
So I highly recommend first
that you guys experiment and see
what works best for your game.
First up, we have gestures
and non-targeted taps.
This works great with something
like an endless runner.
You're not even looking
down at your phone.
You're just swiping
left and right and up.
And then it has minimum
to almost nonexistent look
fatigue, because
players don't even
need to look down
on their phone.
Next up is gyroscope and
accelerometer-- very,
very intuitive, really
nice in party games
where everyone is flailing
their phone around in the living
room.
And everyone knows
that steer your phone
is equal to steering
a car in a game.
Everyone knows that.
Third up is targeted
touch input,
which we talked about a bit.
You're targeting specific
items on the phone screen.
And this could be good for a lot
of experiences, such as a board
game, a card game.
But obviously, you
don't want people
to look down on their
phone when a lot of action
is happening on the TV.
Last but not least
is the microphone--
very underutilized.
Anyone agrees?
Very underutilized
in games today.
I really would like to see
party games where everyone
is shouting at their phone
and trying to guess stuff
coming up on the TV.
And lastly, you
should definitely
mix and match with all of
these, try and figure out what's
best for your specific game.
Driver Speedboat Paradise
is out right now,
and it has a really great
interaction model where you're
tilting the phone to
steer a speed boat,
but then you do swipes on the
screen for different tricks
with your speed boat.
It's a lot of fun.
You guys should try it out.
Now, let's do a quick technical
overview of everything
involved with the Cast games.
So there are two ways
to use Cast games
and to build your games
for Cast or Cast enable it.
The simplest one
is to use an HTML5
and use Game Manager
for multiplayer-- so web
applications that are run on
the receiver or the Google Cast
device.
More advanced-- and
probably more interesting--
way is remote
display, where you can
use the full power
of your device
to render frames on the GPU
and broadcast them to the TV.
This ends up being a very high
quality gaming experience,
because you're using a very
powerful device that is already
in your pocket.
A lot of resources
are available for you.
Google Games Hub is
developers.google.com/games.
You can find all of these
resources that will help you
in building games in general.
But I won't be covering
these, because we're
going to focus on Cast
games specifically.
And the resources for those
are in the developer page
specifically for Cast.
You have the Cast SDK,
the Cast Game Manager API.
And then for remote display,
you have the remote display API
and the plugin that
we built for Unity.
I'll cover those more in a bit.
So the Cast SDK itself
is the foundation
for all of our offerings.
All apps involve something
like a device discovery
phase, a selection phase, and
all is handled by the Cast SDK.
Cast SDK can also optionall
load an HTML5 page,
and HTML5 game for the
Google Cast device.
The Game Manager leverages the
Cast SDK to use the Google Cast
device as a hub.
Basically, it's going to
help you do communication,
synchronization across multiple
devices that are connected
to a single Google Cast device.
Remote display, which I
had just mentioned as well,
renders frames on the
GPU, broadcasts them
to the TV for a high
quality game experience.
Generally, you're going
to be rendering a local UI
from controls on
your sender device,
and then stream a gameplay
scene up to the TV.
You usually add this to the
game engine rendering pipeline.
And this is definitely
loading an HTML5 page,
so keep that in mind.
We've also built a
plug-in for Unity.
This includes a
simulator, so it's
going to help you iterate fast
and build games really fast.
You don't actually have
to build onto a device
to test your game out.
And it also includes
a sample UI.
And we've also built
a full, open source
sample that's available
on the Unity Asset store
to help you get started.
So you're basically going to
focus your time on game design,
polishing that
two-screen experience.
So how do these apps work?
There's three parts to consider.
The first piece is the
sender, AKA your phone.
It's the secondary screen to
the big screen experience.
The receiver, or the
Google Cast device,
that is the big screen
experience, and the app
ID, which points to the
application to show content
on the receiver.
Now, as a developer, you
have to register your app ID
at the developer console site.
And it has information on how to
run your app on the Google Cast
device itself, whether
it has to fetch a URL
or run a remote display of it.
So the Cast SDK, as I said,
takes care of device discovery
to find all the Cast
devices on your network.
Your app will get callbacks
if that device list changes.
Once a device is discovered,
we can show the Cast icon.
We tap the Cast icon.
You're going to see a
list of all the devices
that are available.
And now this is
tied to the app ID.
The app ID will allow us
to filter out any devices
that we don't care about.
So if we're building
a video app,
we're not going to show
Chromecast audio in there.
And this can also be
used for whitelisting
when your game is private and
it's still in development mode.
Once a device is selected,
the receiver device
basically fetches the URL-- if
we're doing a web application,
fetches the URL that is
attached to the app ID,
starts the session
on the receiver,
and then tells the
sender that the session
is ready and ready
to communicate
and send and receive commands.
So let's say a web
application is now
running on the receiver,
an HTML5 web application.
The Cast SDK
provides the session.
They can exchange messages,
and these messages
can be customized-- something
like movement in a game.
And then the Cast SDK is going
to sync the information, track
of player states and everything,
and sync it back to the sender.
Now, if you're looking
at multiplayer,
that's where the
game manager comes in
for [INAUDIBLE] applications.
Basically, the setup
for the first sender
is exactly the same as
we've just described.
It's the exact same
process, except the session
is specifically a game manager
game session that is running.
For the second sender, it's
also a very similar experience.
However, instead of
hijacking the receiver
and running a new application
or fetching a new URL,
you're simply joining a
preexisting game manager
session.
And now, basically,
Game Manager API
syncs player states,
updates both senders,
and does everything
that you need
to do in a multiplayer game.
Now let's take a look
at remote display.
So remote display uses the
power of the GPU for gameplay.
Effectively, it's really
sending video to the receiver
and rendering all the
frames on the phone.
This does not load a web
application on the receiver.
The sender is only streaming
images and audio frames
to the receiver.
The game engine is responsible
for both screens-- the Sender
screen and the TV screen.
Usually, as I said, it's
a UI on the small screen,
and then the gameplay is
seen on the TV screen.
And the remote display API
is encoding and transmitting
frames provided by your game.
Effectively, the
bigger screen is
acting like a secondary
screen to your phone.
You can also think about
it as if you're connected
through HDMI over Wi-Fi.
And we're taking advantage
of the Google Cast device
decoding capabilities, the
hardware decoding capabilities,
to have a smoother and high
quality experience for gaming.
And it works really well.
Some great examples
of this is the sample.
The Google Cast
Remote Display Sample
is available on the
Unity Asset store.
It looks really good, plays
really well on the TV,
and it has a nice
dual analog control
scheme on your phone
so you can experience
this different
control scheme as well
as how games react and
look on a bigger screen TV.
Out right now from
Hasbro is Risk.
It's the best version
of Risk available by far
on a mobile phone.
I highly suggest
you guys try it.
I've already played
with friends.
And it became so
competitive, we had to stop.
Another game is
Angry Birds Friends.
It's so much fun.
They have a really nice control
scheme where you're basically
dragging on your phone,
and you don't even
have to look down
the whole time.
Just Dance Now-- it's dancing.
Who doesn't like dancing?
You're using your
phone to move around,
and it's been doing
tremendously well.
So we're very excited to see
what you guys come up with,
and we hope that similar
to how some of you
created the best experiences
on mobile devices,
you create the next set
of intimate experiences
in the living room.
Here are all the resources
back up again for reference.
And for any questions, please
find me after the talk,
and I'll be happy to answer any.
Thank you.
[APPLAUSE]
