Gamesnacks
Today, Google’s in-house incubator, Area 120, will launch a new project, GameSnacks, which aims to get fast loading, casual online games into the hands of users in developing markets. Mobile is attracting billions of people online. They’re on low memory devices with expensive data plans, and usually, don’t have reliable network connections. Web gaming is not accessible to millions because the games aren’t designed around these types of constraints.
Half of mobile website visitors will bounce on a page if it takes more than 3 seconds to load, but even on low memory devices and 2G or 3G networks, typical web game load times will be much slower than that, even three, four, or 5 times or more that expected load time.
The goal with GameSnacks is to improve HTML page load time and web game performance by reducing the size of the HTML page initially loaded and compressing other assets, like scripts, images, and sounds, while only loading them at the time they are needed.
This, says GameSnacks, lets its games load in only a few seconds even on network connections as slow as 500 Kbps.
As a case in point, Tower, a GameSnacks title, is set up to launch onto a 1GB RAM device over 3G in under a couple of seconds. On that same device, between 12 seconds was how long it would take for a typical web game, the company asserts.
Moreover, its games are simple casual games that take only a few minutes to play. For example, they’re supposed to entertain those moments that you have in your life that occur when you’re waiting in line, waiting at bus stop or waiting for your doctor’s appointment to begin. The games are also designed to have easy rules so one can learn without instructions.
GameSnacks Requirements
This document uses the following terms (following RFC 2119):
- must and must not — these are hard requirements that all games are required to comply with;
- should and should not — these are recommendations that are not required but may be used when deciding how to rank or filter the games shown to users. For example, if the user’s screen is landscape GameSnacks may choose to only recommend games that support this aspect ratio.
- may — these are suggestions that aren’t required and won’t be used to filter games except where explicitly requested by the user. For example, future features could allow the user to view a list of games that support gamepad input.
The following requirements apply to your game and its assets:
Game Structure
Your game is uploaded as a bundle of files that includes the code and runtime resources of the game itself, the marketing assets for displaying it within the GameSnacks catalog, and a game.json file that stores metadata describing the game and enumerates all of the resources in the bundle.
game.json
The config file containing the metadata for the game.
- Your game must include a game.json file that contains all required fields.
- This file must be placed in the root directory of the game.
HTML entrypoint
- The HTML document that loads your game.
- Your entrypoint must be a valid HTML file.
- This file must include at most one head element and one body element.
- Both elements, if present, must have both a start and end tag.
- Content outside these elements and attributes on these elements will be ignored.
Instead of setting attributes on the body element directly, you can use:
- onload: Window’s load event
- style: CSS styling
Files
All of the individual files in the bundle including the game and its associated marketing assets must conform to the following:
- Every file must be less than 10 MiB.
- Files must only be referenced using relative paths.
- Paths must use only / as the directory separator.
- File names must only use unreserved characters (RFC 3986).
- File names and all paths must be in lower case.
Game size
The game size is the total size of all of the code and resources that are downloaded to the user’s device.
- The size of the game must not be more than 100 MiB.
- This includes all of the files listed in files in game.json and does not include marketing assets.
Technical Requirements
Your game must conform to the following technical requirements.
GameSnacks SDK
- Your game must be integrated with the GameSnacks Developer SDK including all of the required interfaces.
- Your game must not directly load any ads APIs (e.g. injecting an ads tag like adsbygoogle.js).
- GameSnacks will load all of the required ads services for you.
- See monetization requirements for more information about supporting ads within your game.
Browser Compatibility
- Your game must use either the Canvas API or WebGL to render.
- Your game must run correctly on the two most recent major versions of the following browsers:
- Chrome on Android, iOS, Windows and macOS
- Safari on iOS and macOS
- Firefox on Android and Windows
- Edge on Windows
- Your game must run correctly within web views on the latest versions of the last two major releases of Android and iOS:
- WebView on Android
- WKWebView on iOS
- Your game should be tested on as wide a range of other standalone and embedded web renderers as feasible.
Minimum device capabilities
Your game must run well on low end devices. For guidance, the following are indicative of the minimum device capabilities required for GameSnacks games.
Your game must run at 30 fps or greater on any device with the following specs or better:
- CPU: Qualcomm 215, Samsung Exynos 7570, Mediatek MT6737, or similar
- RAM: 2 GiB
- GPU: Arm Mali-T720 MP1, Qualcomm Adreno 308, or similar
Example phones that match this spec include JioPhone Next, Nokia 1.4, LG K22, Samsung J2 Core, and Motorola Moto E4.
Monetization
GameSnacks will monetize your game and will provide you with a share of that revenue per GameSnacks developer licensing agreement.
GameSnacks can automatically place ads at natural game events such as prerolls, next- and end-of-level events. You can also place additional ad breaks within your game (both interstitial and rewarded) using the GameSnacks Developer SDK Ad interface.
Games that have too few opportunities for monetization or monetize poorly may be surfaced less frequently, or not approved for distribution. A good rule of thumb is to make sure there is an opportunity for an ad at least once a minute. This includes both interstitials and rewarded ads that you place, and the ad breaks that GameSnacks sets up automatically for you.
However, this doesn’t mean that we’ll always show an ad. GameSnacks will carefully balance ad load, engagement, and user experience. You should therefore feel free to create ad breaks anywhere they fit well within your game (i.e. more than once per minute) and let GameSnacks adjust the final rate at which ads are shown.