Meta data of games for the OUYA console. Use them to populate your own "Discover" server.
Game .apk
files are hosted on The OUYA library in the Internet Archive.
Locate the JSON game data file in the
classic
folderOpen it in a text editor
Go to
"releases"
and duplicate the current release, then adjust it:Update
name
to the new versionTo get
versionCode
you need to have the Android SDK toolaapt
oraapt2
:$ aapt dump badging game.apk package: name='example.game' versionCode='23' versionName='1.23'
Create a random
uuid
with a web service or theuuid
command line toolSet
date
to the time the version has been releasedlatest
must betrue
for the new version, andfalse
for all others.url
must be a HTTP URL, not HTTPS!size
is the apk file size in bytesmd5sum
can be created with themd5sum
command line tool.
Check if everything is correct -> See "validating the game files"
You can also create a patch/pull request; Github will run the checks automatically.
You can use the script bin/create-from-apk.php
to generate the JSON.
Only adjust the FIXME fields afterwards!
Copy example-game.json
to the new/
folder and adjust it.
You can get packageName
from aapt
as described above.
Note that all URLs have to be plain http
, HTTPS is not supported!
Use a random uuid
as developer UUID.
Use 0
for the first 8 characters so we can distinguish original UUIDs
from self-generated ones.
On the command line:
$ unzip -j game.apk res/drawable-xhdpi-v4/ouya_icon.png
This image has a size of 732x412 pixels.
Media images need to have a full size of 1280x720, while thumbnails have a size of 852x479.
When you start a game, it should be unlocked (full version) automatically.
If a game is stuck in demo mode despite that you installed the ouya-plain-purchases module, this can have the following reasons:
- The game data file has no purchasable products (most often)
- The developer UUID is wrong. Fix it! (sometimes)
- The game does not fetch receipts from the server when starting up (seldom)
- We have no game data file for it (seldom)
We do not have all developer UUIDs which are required for in-game purchases
to work.
Dummy UUIDs begin with 00000000
.
UUIDs that are not important because the game has no IAPs begin with 11111111
.
When there are no products in the game data file, we have to get them from the game itself.
- Add a new line
DEBUG=1
in theouya_config.properties
file and reboot. - Connect the OUYA to your PC and run
adb logcat
. - Start the game and look at the logcat output
There will be lines like this:
D/HTTP ( 604): Request 33: GET /api/v1/developers/b8b9eb6d-.../products/?auth_token=...&only=overkill2_om_1%2Coverkill2_om_2
Everything after &only=
are product IDs.
%2C
is an URL-encoded comma, so in the example we have two product IDs.
Now have a look at the example-game.json
file and add new products to
your game's data file (in the classic/
folder).
If you do not know what price the product had, use 0.01
.
We provide a JSON schema file: ouya-game.schema.json
.
- Install php-json-schema to get the
validate-json
cli tool - Use python's
pip3
to install the jsonschema cli tool
Self-hosted OUYA servers: