Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
191 lines (111 sloc) 8.72 KB

Put Your Game on Razer Cortex

OUYA Publishing is in the process of testing games in the OUYA Store for compatibility on Cortex, Razer's appstore for Forge TV.

Some games are perfectly functional, whereas other games may have issues with input, and other games may have cosmetic issues with button images.

This document will help you put your game on Razer Cortex (the storefront for the Forge TV) by making your game OUYA Everywhere compliant.

Table of Contents

Audience

Specifications

Notes

OUYA-Everywhere

Engines That Support Forge TV

Step 1. Upgrade the OUYA-Everywhere Plugin

Step 2. Fix Button Images

Step 3. Menu Button Handling

Step 4. Signing

Disable Screensaver

Icons

Controller Image

Versioning

ADB Debugging

Pairing Serval

Audience

OUYA Developers wanting to publish to the Forge TV console.

Specifications

The Forge TV runs the Android 5.0 OS (API 22).

The Razer Serval controller is supported by OUYA-Everywhere on Forge TV.

The OUYA Controller is supported by OUYA-Everywhere on Forge TV.

Notes

  • Cortex supports OUYA-Everywhere on Forge TV which includes support for many controllers.

  • The review team tests OUYA-Everywhere enabled builds on Forge TV after receiving game builds that were submitted through the developer portal.

  • Be sure to update 3rd party libraries related to input to ensure Forge TV compatibility. (i.e. InControl*)

OUYA-Everywhere

OUYA-Everywhere allows game builds to use the same API for gamepad-input and in-app-purchases in order to work on Forge TV and OUYA consoles.

Engines That Support Forge TV

The latest OUYA-Everywhere adds support for many controllers on the Forge TV device. The following engines have Forge TV support and more will be added to this list:

Step 1. Upgrade the OUYA-Everywhere Plugin

Applications and games should use the latest OUYA-Everywhere Plugin for their particular game engine to publish in the developer portal.

Locate the appropriate engine documentation from the above list in order to the newest plugin.

Step 2. Fix Button Images

Button images vary on each device. Games can use OUYA-Everywhere to get the correct button images at run-time. The submission review process checks to see that the correct button images are used.

Developers can also design custom button images, as long as images reflect Forge TV A,B,X,Y formatting (see below).

image_1

Games need to be updated to use Cortex button images that had previously used OUYA or non-Cortex button images.

image_2

Button legends should show the Forge TV button images. It's best to use the Cortex API to get the button images at runtime. Alternatively, the button images can be baked or hardcoded into the game.

image_3

Step 3. Menu Button Handling

Some games use the OUYA BUTTON_MENU to start or pause games. On Forge TV the OUYA button maps to the HOME button which opens the Guide instead. For standard Android TV controllers the START and SELECT buttons have been remapped to the BUTTON_MENU so games can continue to use the menu button without changing the code. Controllers that don't have a SELECT or START button won't be able to trigger a BUTTON_MENU press in the game (like the OUYA controller). Games can detect the onPause event to pause the game which is triggered with the Guide is opened. Games should make sure they can be started without using the BUTTON_MENU to maximize controller support.

Step 4. Signing

Before submitting your game to the developer portal, be sure to sign your APK with the keystore.

Be sure to indicate that the game is compatible on Forge before submitting.

Compatibility

Disable Screensaver

  • The screensaver should be disabled while your game is running.

Engine specific details:

Icons

Be sure to prepare default, store, and leanback icons for your game. Check out the content review guidelines for details.

On Forge TV, the leanback intent-filter is automatically added to show on the Android TV launcher.

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="tv.ouya.intent.category.GAME" />
      <category android:name="android.intent.category.LAUNCHER" />
      <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>

By default, the application will appear in the Apps category. To appear in the Games category, edit the AndroidManifest.xml and assign the isGame attribute on the Application element.

android:isGame="true"

API target level 21 or better is needed to assign the inGame attribute on the application element.

Controller Image

The RazerVirtualController example includes controller images for the Razer Serval Controller. The RazerVirtualController image resources can be found within the ouya-sdk-examples.

Serval Image

Versioning

Versioning is critical for every application so that reviewers and users are playing on the right build of your app or game. Every time a build is submitted for review, the version identifier in the manifest should be changed to a number that is higher than the previous version. See the Android documentation for more details about Versioning Your Applications. It will be necessary to increment the android:versionCode and android:versionName attributes within the manifest element for each build.

For example, the first time a build is submitted, the versionCode and versionName might look like this.

<manifest
    ...
    android:versionCode="1" android:versionName="1.1">

The next time the build is submitted, the versionCode and versionName should be set higher than the previous version in order to submit an update.

<manifest
    ...
    android:versionCode="2" android:versionName="1.2">

ADB Debugging

The Razer Developer Portal will take you through the setup of Forge TV for ADB debugging. Debugging and side-loading apps to the Forge TV requires a male-to-male USB cable.

Pairing Serval

  • With Settings->Add accessory open, hold HOME, BACK, and POWER buttons pressed down to put the Serval in pairing mode.

Forums

Forge TV on Razer Forums