Note
This repository aims at extending the ouya-game-data repository with Playjam's GameStick game files in JSON format. The necessary files are located in a new folder "gamestick" along with a modified "folders" file that triggers the compilation of the new folder.
- Meta data of games for the OUYA console.
- Use them to populate your own "Discover" server.
- This is a fork of the original ouya-game-data repository.
Game .apk files are hosted on The OUYA library in the Internet Archive.
-
Locate the JSON game data file in the corresponding folder
-
Open it in a text editor
-
Go to
"releases"and duplicate the current release, then adjust it:- Update
nameto the new version - To get
versionCodeyou need to have the Android SDK toolaaptoraapt2:$ aapt dump badging game.apk package: name='example.game' versionCode='23' versionName='1.23' - Create a random
uuidwith a web service or theuuidcommand line tool - Set
dateto the time the version has been released latestmust betruefor the new version, andfalsefor all others.urlmust be a HTTP URL, not HTTPS!sizeis the apk file size in bytesmd5sumcan be created with themd5sumcommand line tool.
- Update
-
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.
Extract image 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)
http://cweiske.de/tagebuch/ouya-purchases.htm ouya-saviors#14
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=1in theouya_config.propertiesfile 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-jsoncli tool - Use python's
pip3to install the jsonschema__ cli tool
https://github.com/justinrainbow/json-schema https://github.com/Julian/jsonschema
Self-hosted OUYA servers: