diff --git a/docs/html/distribute/essentials/quality/tv.jd b/docs/html/distribute/essentials/quality/tv.jd index 8e1715763b180..b13307e8c04fe 100644 --- a/docs/html/distribute/essentials/quality/tv.jd +++ b/docs/html/distribute/essentials/quality/tv.jd @@ -234,7 +234,7 @@ page.image=/distribute/images/gp-tv-quality.png

- App does not depend on a remote controller having a menu button to access user interface + App does not depend on a remote controller having a Menu button to access user interface controls. (Learn how)

@@ -291,8 +291,8 @@ data-sortorder="-timestamp" data-cardsizes="9x3" data-maxresults="6">

- App manifest sets an intent type of {@code ACTION_MAIN} with category - {@code CATEGORY_LEANBACK_LAUNCHER}. + App manifest sets an intent type of {@link android.content.Intent#ACTION_MAIN} with category + {@link android.content.Intent#CATEGORY_LEANBACK_LAUNCHER}. (Learn how)

@@ -321,8 +321,9 @@ data-sortorder="-timestamp" data-cardsizes="9x3" data-maxresults="6">

- If the app requires a game controller, the app manifest sets the {@code uses-feature} setting - {@code android.hardware.gamepad} to {@code required="true"}. + If the app uses a game controller as it's primary input method, it declares the appropriate + requirement with the {@code <uses-feature>} manifest tag. (Learn how)

@@ -334,9 +335,9 @@ data-sortorder="-timestamp" data-cardsizes="9x3" data-maxresults="6">

- If the app provides user instructions for use of game controllers, the instructions - do not include a controller with any branding. - (Learn how) + If the app provides visual instructions for using game controllers, the instructions should + be free of branding and show a compatible button layout. + (Learn how)

@@ -351,7 +352,7 @@ data-sortorder="-timestamp" data-cardsizes="9x3" data-maxresults="6">

- App enables interaction with any advertising using D-pad controls. + App allows interaction with advertising using D-pad controls. (Learn how)

@@ -363,7 +364,7 @@ data-sortorder="-timestamp" data-cardsizes="9x3" data-maxresults="6">

- For advertising that uses full-screen, non-video ads, the app allows the user to + For advertising that uses fullscreen, non-video ads, the app allows the user to immediately dismiss the ad with D-pad controls.

@@ -375,7 +376,7 @@ data-sortorder="-timestamp" data-cardsizes="9x3" data-maxresults="6">

- For advertising that uses clickable, non-full screen, non-video ads, the app does not allow + For advertising that uses clickable, non-fullscreen, non-video ads, the app does not allow ads to link to a web URL.

@@ -387,7 +388,7 @@ data-sortorder="-timestamp" data-cardsizes="9x3" data-maxresults="6">

- For advertising that uses clickable, non-full screen, non-video ads, the app does not allow + For advertising that uses clickable, non-fullscreen, non-video ads, the app does not allow ads to link to another app that is not available on TV devices.

diff --git a/docs/html/images/games/game-controller-buttons.png b/docs/html/images/games/game-controller-buttons.png new file mode 100644 index 0000000000000..b3e458ab08b53 Binary files /dev/null and b/docs/html/images/games/game-controller-buttons.png differ diff --git a/docs/html/images/games/game-controller-buttons_2x.png b/docs/html/images/games/game-controller-buttons_2x.png new file mode 100644 index 0000000000000..7a0ad0b506d80 Binary files /dev/null and b/docs/html/images/games/game-controller-buttons_2x.png differ diff --git a/docs/html/training/tv/games/index.jd b/docs/html/training/tv/games/index.jd index 29b055beec318..2f510a948cf6c 100644 --- a/docs/html/training/tv/games/index.jd +++ b/docs/html/training/tv/games/index.jd @@ -31,7 +31,7 @@ page.article=true

-

Shared display

+

Consider the shared display

A living-room TV poses design challenges for multiplayer games, in that all players can see @@ -57,7 +57,7 @@ page.article=true -

Landscape display

+

Support landscape display

A TV is always sideways: You can’t turn it, and there is no portrait orientation. Always design @@ -69,19 +69,19 @@ page.article=true

TVs don't have touch interfaces, so it's even more important to get your controls right and make - sure that players find them intuitive and fun to use. The separation of controller from device - also introduces some other issues to pay attention to, like keeping track of multiple players' + sure players find them intuitive and fun to use. Handling controllers + also introduces some other issues to pay attention to, like keeping track of multiple controllers, and handling disconnects gracefully.

-

D-pad

+

Support D-pad controls

Plan your control scheme around a directional pad (D-pad) control, since this control set is the default for Android TV devices. The player needs to be able to use a D-Pad in all aspects of the - game–not just controlling core gameplay, but also navigating menus and ads. For this reason, you - should also ensure that your Android TV game does not refer to a touch interface: For example, an - Android TV game should not tell a player to Tap here to skip. + game—not just controlling core gameplay, but also navigating menus and ads. For this reason, you + should also ensure that your Android TV game does not refer to a touch interface. For example, an + Android TV game should not tell a player to "Tap here to continue."

@@ -91,35 +91,35 @@ page.article=true

-

Back-button behavior

+

Provide appropriate Back-button behavior

The Back button should never act as a toggle. For example, do not use it to both open and close a @@ -139,18 +139,18 @@ page.article=true

-

Handling multiple controllers

+

Handle multiple controllers

When multiple players are playing a game, each with his or her own controller, it is important to - map each player-controller pair. For information on how to implement controller-number + map each player-controller pair. For information about how to implement controller-number identification, see Input Devices.

-

Handling disconnects

+

Handle controller disconnects

When a controller is disconnected in the middle of gameplay, the game should pause, and a dialog @@ -159,7 +159,7 @@ page.article=true

The dialog should also offer troubleshooting tips (for example, a pop-up dialog telling the - player to "Check your Bluetooth connection"). For more information on implementing input-device + player to "Check your Bluetooth connection"). For more information about implementing input-device support, see Handling Controller Actions. Specific information about Bluetooth connections is at +

Show controller instructions

+ +

If your game provides visual game control instructions, the +controller image should be free of branding and include only buttons compatible with Android.

+ +

For sample images of an Android-compatible controller, download the +Android TV Gamepad Template (ZIP). +It includes a white controller on black background and a black controller on white background +(shown in figure 1), as a PNG file and an Adobe® Illustrator® file.

+ + +

Figure 1. Example controller instructions using the +Android TV Gamepad Template (ZIP). + + + +

Manifest

+

There are a some special things games should include in the Android manifest.

+ +

Show your game in the launcher

- The Android TV launcher home screen displays games in a separate row from regular apps. The TV - framework uses the android:isGame manifest attribute to differentiate games from - non-game apps. Set this value to true in your game's app manifest, as shown in the - following code example: + The Android TV launcher home screen displays games in a separate row from regular apps. + To make your game appear in the list of games, add the + <meta-data> tag in your app manifest with android:name + set to "isGame" and android:value + set to "true". For example:

 <application>
   ...
-  < meta-data android:name="isGame" android:value="true" >
+  <meta-data android:name="isGame" android:value="true" >
   ...
 </application>
 
-

Game Controllers

+

Declare support for game controllers

Games controllers may not be available or active for users of a TV device. In order to properly @@ -215,7 +243,9 @@ page.article=true

Google Play Game Services

- If your game integrates Google Play Game Services, you should keep in mind a number of + If your game integrates Google Play Game services, + you should keep in mind a number of considerations pertaining to achievements, sign-in, saving games, and multiplayer play.

@@ -224,7 +254,7 @@ page.article=true

Your game should include at least five (earnable) achievements. Only a user controlling gameplay - from a supported input device should be able to earn achievements. For more information on + from a supported input device should be able to earn achievements. For more information about achievements and how to implement them, see Achievements in Android.

@@ -262,7 +292,7 @@ page.article=true

A game offering a multiplayer experience must allow at least two players to enter a room. For - further information on multiplayer games in Android, see the Real-time Multiplayer and Turn-based Multiplayer documentation on the Android developer site.