AirConsole Checklist
On AirConsole we aim to provide high quality games. Before you submit your game you can use this checklist to make sure you have gone through every edge case.
Some topics and their solutions are covered in our best practice guide.
My game includes the latest AirConsole API.
All resources in my game are loaded over https.
I have tested my game with unstable connection and higher latency. (Read Guide)
My game loads less than 50 MB (gzipped) of resources to start (enter Main Menu).
Additional resources that are loaded later do not exceed 50 MB (gzipped) per request.
I don't try to hide the top AirConsole bar (Using the DEPRECATED showDefaultUI() from the AirConsole API).
If I use the Highscore API, I've tested that my game correctly handles all the cases from the Checklist before launch list.
My game is self-explanatory or provides players with instructions on how to play.
My game works on different screen resolutions / aspect ratios (Responsive design (TV resolution 960x540)).
My game shows how many players are missing for the game to be started (Or: there is no minimal number of players in my game).
If more players are connected than are allowed in my game, spare players are informed of that on their controllers (Or: there is no maximal number of players in my game).
My game remains functional when devices connect during the game.
My game remains functional when devices disconnect during the game.
I did not hardcode device IDs and my game accounts for the fact that device ids may not be consecutive.
My game displays the players' nicknames (see 'getNickname' in the API) instead of 'Player 1' etc. (Or: no names / titles are displayed).
Menus (level selection, settings etc.) can only be controlled by the Master Controller.
I have read and followed the High Score Guide and the launch checklist within (Or: my game does not use high scores).
I am using the AirConsole Keyboard for any text input in my game (Or: My game does not use any text input).
I have added a custom loading screen (Only games made with Unity).
My game works on different phone screen sizes (Min. 320x480).
My game controller lets the player know which character / avatar they are controlling (using colors, labels etc).
My game controller shows buttons labelled with their function or a relevant icon rather than letters that need to be explained on screen.
The layout (buttons, images, text, options...) of my game controller adapts to different in-game situations (menu, in-game, game over etc.).
The individual buttons on my game controller are as big as possible on the phone screen.
My controller uses custom visuals that fit the art style of my game.
I am not using any html <img> tags on my controller, but set images as <div> backgrounds instead (so that no 'save image as' option appears).
The player's game progress is saved using the controller's UID.
Multiplayer progression is correctly saved in each player's UID on their controller.
Sound and music settings are not saved but reset to default values on reload.
Language settings are not saved but reset to the main screen language on reload.
I tested that the game loads the game in the same language as the main screen (browser or Android TV). If the game does not support the language of the screen, the game defaults to English. NOTE: Only the language of the screen is relevant to the game, not the language of the controllers.
I tested that the phone loads the controller in the language set on the phone (defaulting to English if the language is unsupported). NOTE: The game and the controller may have different languages.
I have tested that my custom language menu in the game selection is reset to the main screen language setting when the game is reloaded (meaning it's not saved into the player's state).
Your game works in all modern browsers.
I have tested my game in the latest Chrome and Chrome 66 browser, and it works. I can use Browserstack to ensure that everything works properly.
I have tested my game in the Firefox browser and it works.
I have tested my game in the Microsoft Edge browser and it works.
I have tested my game in the Safari browser and it works.
Your game works in the AirConsole App as well as in all modern mobile browsers.
I have tested my game on iOS in the Chrome browser, and it works.
I have tested my game on iOS in the Safari browser, and it works.
I have tested my game on iOS in the AirConsole App, and it works.
I have tested my game on Android in the Chrome browser, and it works.
I have tested my game on Android in the AirConsole App, and it works.
Your game is showing ad breaks and handles them correctly. Remember that you can call showAd as often as possible and AirConsole will limit the actual ad frequency.
After each level (or 15 minutes) I call showAd in my game.
My game is paused in the onAdShow event and all audio is muted.
My game is resumed in the onAdComplete event and all audio is unmuted.
I have tested that adding 3rd non-hero controller to the game shows a "Hero Subscription Promotion" ad.
These apply only, if multi-screen multiplayer is implemented in the game. (Read Guide)
Before submitting your game to review, please ensure that the game meets all the following requirements:
With 2 or more screens connected in a game session, there is always only 1 primary screen.
With 2 or more screens connected in a game session, there is always only 1 primary controller.
With 2 or more screens connected in a game session, only the primary screen can control the game.
With 2 or more screens connected in a game session, only the primary controller can control the game through the primary screen.
With 2 or more screens connected in a game session, when the primary screen leaves the game session, only one of the secondary screens becomes the primary screen.
With 2 or more screens connected in a game session, when the primary controller leave the game session, the new master controller on the primary screen becomes the primary controller.
I have verified that the game (screen and controller) immediately pause when they receive onPause / onAdShow (all game simulation, audio and video) and do not resume until onResume / onAdComplete is received.
I have tested all single-player game modes, and the game runs smoothly without any bugs.
I have tested all the multiplayer game modes, and the game works smoothly without any bugs.
I have tested that all transitions between scenes in the game are instantaneous. If the loading screen is shown during the transition, the loading screen is not stuck (the loading screen has a continuous loading animation).
If loading is longer than 30 seconds, I am showing to the user something visually dynamic on the screen.
I have tested that when controllers leave or new ones join the game, it works gracefully - notifies the players, and the game state is not stuck. (The recommendation is not to allow to join in the middle of the level/race/gameplay but to take all the players to for example the main menu after showing a message on the main screen).
I have tested that only the master controller can control the game menu.
I have tested that when the master controller leaves the game, one of the remaining players is designated as the new master, and that controller can control the game menu.
I have tested and confirmed that the game runs at 30 fps on modern Chromium-based web browsers. (Read Guide)
You have taken or are taking the necessary steps to launch and promote your game.
I have prepared a text for my game's landing page (ca. 200-500 words).
I have prepared a 30-second trailer for my game's landing page.
I am promoting my game on social media and will keep posting about it on relevant groups and hashtags.
See our Android TV guide for Unity games.
The game uses the latest AirConsole plugin version.
The APK/ABB is not in Debug mode.
The game uses minimum API level 19 and target API level 34.
I have tested and confirmed that the game runs at 25 fps on an Android TV device. (Read Guide)
I have tested that the game audio is muted and the game is paused on the connect screen.
I tested that when the last player presses the "leave session" on the controller, the game sound is muted, and the game shows the connect screen.
I have tested that when I rejoin from the connect screen, the game starts from the main menu, and I can control the game without any problem.
I created all Appstore visuals.
Once you have completed your launch checklist, please send all files as a ZIP file to [email protected].

