В этом документе используются следующие термины (в соответствии с RFC 2119 ):
- надо и нельзя — это жёсткие требования, которым обязаны соответствовать все игры;
- следует и не следует — это рекомендации, которые не являются обязательными, но могут использоваться при принятии решения о том, как ранжировать или фильтровать игры, показываемые пользователям. Например, если экран пользователя ландшафтный, GameSnacks может рекомендовать только игры, поддерживающие это соотношение сторон .
- возможно — это предложения, которые не являются обязательными и не будут использоваться для фильтрации игр, за исключением случаев, когда это явно запрошено пользователем. Например, будущие функции могут позволить пользователю просматривать список игр, поддерживающих ввод с геймпада .
К вашей игре и ее ресурсам применяются следующие требования:
Структура игры
Ваша игра загружается в виде пакета файлов, который включает в себя код и ресурсы среды выполнения самой игры, маркетинговые ресурсы для ее отображения в каталоге GameSnacks, а также файл game.json
, в котором хранятся метаданные, описывающие игру, и перечисляются все ресурсы. в комплекте.
game.json
Конфигурационный файл, содержащий метаданные игры.
- Ваша игра должна включать файл
game.json
, содержащий все обязательные поля. - Этот файл необходимо разместить в корневом каталоге игры.
Точка входа HTML
HTML-документ, который загружает вашу игру.
- Ваша точка входа должна быть действительным HTML-файлом.
Этот файл должен включать не более одного элемента
head
и одного элементаbody
.- Оба элемента, если они присутствуют, должны иметь как начальный, так и конечный тег.
Содержимое вне этих элементов и атрибуты этих элементов будут игнорироваться.
Вместо установки атрибутов непосредственно в элементе
body
вы можете использовать:-
onload
: событие загрузкиWindow
. -
style
: стиль CSS
-
Файлы
Все отдельные файлы в комплекте, включая игру и связанные с ней маркетинговые ресурсы, должны соответствовать следующим требованиям:
- Размер каждого файла должен быть менее 10 МБ.
- Ссылки на файлы должны осуществляться только по относительным путям.
- Пути должны использовать только
/
в качестве разделителя каталогов. - В именах файлов должны использоваться только незарезервированные символы (RFC 3986) .
- Имена файлов и все пути должны быть в нижнем регистре.
Размер игры
Размер игры — это общий размер всего кода и ресурсов, загружаемых на устройство пользователя.
- Размер игры не должен превышать 100 МБ.
Технические требования
Ваша игра должна соответствовать следующим техническим требованиям.
GameSnacks SDK
- Ваша игра должна быть интегрирована с GameSnacks Developer SDK , включая все необходимые интерфейсы.
- Ваша игра не должна напрямую загружать какие-либо рекламные API (например, внедрять рекламный тег, напримерadsbygoogle.js).
- GameSnacks загрузит для вас все необходимые рекламные сервисы.
- Дополнительные сведения о поддержке рекламы в вашей игре см. в требованиях к монетизации .
Совместимость с браузером
- Для рендеринга ваша игра должна использовать либо Canvas API , либо WebGL .
- Ваша игра должна корректно работать в двух последних основных версиях следующих браузеров:
- Chrome на Android, iOS, Windows и macOS
- Safari на iOS и macOS
- Firefox на Android и Windows
- Край в Windows
- Ваша игра должна корректно работать в веб-представлениях в последних двух последних основных версиях Android и iOS:
- Веб-просмотр на Android
- WKWebView на iOS
- Ваша игра должна быть протестирована на как можно более широком спектре других автономных и встроенных веб-рендереров.
Минимальные возможности устройства
Ваша игра должна хорошо работать на слабых устройствах. В качестве руководства ниже указаны минимальные возможности устройства, необходимые для игр GameSnacks.
Ваша игра должна работать со скоростью 30 кадров в секунду или выше на любом устройстве со следующими характеристиками или выше:
- Процессор: Qualcomm 215, Samsung Exynos 7570, Mediatek MT6737 или аналогичный.
- ОЗУ: 2 ГиБ
- Графический процессор: Arm Mali-T720 MP1, Qualcomm Adreno 308 или аналогичный.
Примеры телефонов, соответствующих этой спецификации, включают JioPhone Next, Nokia 1.4, LG K22, Samsung J2 Core и Motorola Moto E4.
Начальный размер загрузки
Начальный размер загрузки — это объем данных, который будет загружен клиенту для запуска игры.
- Первоначальная загрузка должна быть менее 15 МБ.
- Размер первоначальной загрузки должен составлять менее 5 МБ.
Функциональные требования
Ваша игра должна соответствовать следующим функциональным требованиям.
Время загрузки
Время загрузки — это время, необходимое для первоначального запуска кода и запуска игры.
- Ваша игра должна отображать экран загрузки или быть интерактивной менее чем за 1 секунду при любом соединении со скоростью не менее 10 Мбит/с.
- Ваша игра должна быть доступна менее чем за 15 секунд при любом соединении со скоростью не менее 10 Мбит/с.
Сбои
- Ваша игра не должна вызывать постоянно воспроизводимые сбои.
- Ваша игра не должна вызывать постоянно воспроизводимые сбои в приложениях или на веб-сайтах, в которые она встроена.
Соотношение сторон
GameSnacks создаст фрейм для рендеринга вашей игры. Размер и соотношение сторон этого кадра будут варьироваться в зависимости от поверхности распространения, устройства и наличия рекламы, размещенной вокруг игры. Этот фрейм может изменить размер, если, например, пользователь меняет размер окна браузера.
- Ваша игра должна использовать всю доступную область в кадре для интерактивного контента — без дополнительных полей или заполнителей.
- Ваша игра должна поддерживать портретное соотношение сторон 9:16.
- Ваша игра должна поддерживать горизонтальное соотношение сторон 16:9.
- Ваша игра должна поддерживать квадратное соотношение сторон 1:1.
- В идеале ваша игра должна быть адаптивной и поддерживать широкий диапазон портретных, альбомных и квадратных соотношений сторон.
- При изменении размера кадра ваша игра должна немедленно изменить размер, чтобы соответствовать этим требованиям.
- Ваша игра должна плавно перейти к новому размеру.
- Ваша игра не должна блокировать ориентацию браузера.
Игровое взаимодействие
- Ваша игра должна быть полностью управляема с помощью сенсорного ввода.
- В вашу игру должно быть полностью доступно управление с помощью мыши.
- В вашу игру должно быть полностью доступно использование ввода с клавиатуры.
- В вашу игру можно будет полностью играть, используя ввод с геймпада .
- Все элементы пользовательского интерфейса, отображаемые в вашей игре, должны быть реализованы и функционировать правильно.
- В вашей игре не должно быть отключенных элементов управления: если функция недоступна, ее необходимо полностью удалить из пользовательского интерфейса.
- Сюда входят подсказки о вознаграждении; отображать запрос на вознаграждение только в том случае, если вызывается обратный вызов
beforeReward
для этой рекламной паузы.
- Сюда входят подсказки о вознаграждении; отображать запрос на вознаграждение только в том случае, если вызывается обратный вызов
- Ваша игра не должна отображать внутриигровые запросы на обмен информацией.
- Ваша игра не должна отображать пользовательский интерфейс или внутриигровые ссылки, ведущие пользователя на внешние игры, сайты или другой контент.
- Ваша игра должна четко сообщать пользователю, когда он прошел последний уровень или закончил игру.
- В вашей игре не должны использоваться такие слова, как «купить» или «покупка», которые можно спутать с функциями покупки в приложении, которые не поддерживаются играми GameSnacks.
- Если ваша игра включает тактильную обратную связь, у пользователя должна быть возможность ее отключить.
Запуск игры
Ваша игра должна правильно координироваться со средой выполнения GameSnacks при запуске. Интерфейс Game
GameSnacks предоставляет функции для сигнализации состояния загрузки вашей игры, включая: firstFrameReady
, когда вы готовы впервые нарисовать на экране, и ready
, когда пользователь может начать взаимодействовать с вашей игрой.
- Ваша игра должна вызвать
firstFrameReady
, когда первый кадр вашей игры готов к рендерингу. - Ваша игра должна объявить о
ready
, когда она будет готова к взаимодействию с пользователем. - Ваша игра не должна быть
ready
, пока отображаются неинтерактивные элементы, такие как заставки или экраны загрузки.
Управление отключением звука и обработка звука
Ваша игра должна соответствовать элементам управления звуком платформы GameSnacks.
- В вашей игре не должна отображаться общая кнопка отключения звука, вместо этого она должна полагаться на систему управления отключением звука на платформе GameSnacks.
- Ваша игра должна интегрироваться с интерфейсом Audio и учитывать метод
audio.isEnabled
. - В вашей игре могут быть отдельные элементы управления звуком, например, для фоновой музыки или звуковых эффектов, но она все равно должна соответствовать этим требованиям.
Пауза и возобновление
Ваша игра должна поддерживать возможность приостановки и возобновления.
- Ваша игра должна интегрироваться с методами
onPause
иonResume
интерфейса Game для приостановки и возобновления игры. - Ваша игра не должна использовать API видимости веб-страниц или аналогичные веб-API.
- Ваша игра должна четко сообщать пользователю, что она приостановлена.
- Ваша игра должна сохранять прогресс пользователя, когда она поставлена на паузу.
Обработка данных
Для обработки данных используйте только API-интерфейсы хранилища GameSnacks.
- Ваша игра должна использовать интерфейс хранилища только для сохранения игровых данных.
- Ваша игра не должна использовать какие-либо другие формы хранения , включая файлы cookie,
localStorage
,sessionStorage
иIndexedDB
. - Ваша игра не должна собирать какие-либо пользовательские данные.
- Ваша игра не должна выполнять какие-либо внешние вызовы или запросы данных на любой сервер или с него, используя какой-либо протокол.
- Ваша игра не должна отображать какие-либо дополнительные пользовательские соглашения, политики конфиденциальности или другие сообщения о сборе данных или нормативные сообщения.
Сохранение прогресса
Сохраняйте прогресс пользователя и сможете восстановить его, когда он вернется в игру.
- Ваша игра должна использовать интерфейс хранилища для сохранения прогресса, когда пользователи добились существенного прогресса, например, пройдя уровень.
- Общий размер сохраненной игры должен быть менее 3 МБ и менее 500 КиБ.
- Ваша игра должна восстановить весь сохраненный прогресс при запуске игры.
- Ваша игра должна иметь возможность восстанавливать сохраненный прогресс из предыдущих версий игры.
Высокие баллы
Сохраняйте наивысший балл пользователя или отслеживайте его прогресс, используя другой показатель.
- Если в вашей игре есть очки, игра должна отслеживать их с помощью интерфейса интерфейса «Счет» .
- Если в вашей игре нет очков, вам следует отслеживать альтернативный показатель прогресса, например количество пройденных уровней.
Содержание игры
К содержанию вашей игры применяются следующие требования:
Игровой интерфейс
- Ваша игра должна четко отображаться на экранах с разными разрешениями. Например, элементы пользовательского интерфейса не должны быть размытыми, пикселизированными или растянутыми.
- В вашей игре не следует использовать растровые ресурсы низкого разрешения, которые кажутся размытыми при масштабировании на большие экраны.
- В вашей игре не должны использоваться значки, которые можно спутать с значками на панели действий GameSnacks.
- В вашей игре не должно быть внутриигровых кнопок выхода или выхода. Это будет обрабатываться приложением или сайтом, на котором встроена ваша игра.
Локализация и доступность
- Ваша игра должна поддерживать английский язык.
- Ваша игра должна быть максимально доступной. Мы рекомендуем стремиться соответствовать рекомендациям по обеспечению доступности веб-контента (WCAG), уровень AA.
- Текст в вашей игре должен быть разборчивым на всех устройствах и размерах экрана. См. WCAG 2.2 §1.4.3 .
Детский контент
- Ваша игра не должна быть специально ориентирована на детей. Дополнительную информацию см. в разделе Определение того, предназначен ли ваш контент для детей .
Права и разрешения
- Ваша игра должна быть полностью очищена от прав интеллектуальной собственности третьих лиц.
- Ваша игра не должна нарушать права на товарные знаки или фирменный стиль третьих лиц.
- Ваша игра должна иметь все необходимые права на музыку.
- Ваша игра должна обладать всеми необходимыми правами личности, включая имя и изображение.
Где будут показаны мои игры?
Мы публикуем игры GameSnacks на различных платформах, как в продуктах Google, так и на партнерских сайтах и в приложениях GameSnacks, как на мобильных устройствах, так и на настольных компьютерах. Некоторые примеры того, где мы публикуем игры GameSnacks, включают приложение Google Play Games, на устройствах Android и веб-сайт gamesnacks.com. Именно отсюда сейчас поступает большая часть нашего трафика. Однако места, где мы публикуем игры, постоянно меняются, и мы всегда стремимся расширить аудиторию игр GameSnacks. Поэтому со временем мы можем добавить новые поверхности Google или партнеров по распространению. Время от времени мы также можем проводить эксперименты, работая с новыми поверхностями распределения.
Монетизация
GameSnacks монетизирует вашу игру и предоставит вам долю от этого дохода в соответствии с лицензионным соглашением с разработчиком GameSnacks.
GameSnacks может автоматически размещать рекламу во время естественных игровых событий, таких как прероллы, события следующего и конца уровня. Вы также можете разместить в игре дополнительные рекламные паузы (как межстраничные, так и с вознаграждением), используя рекламный интерфейс GameSnacks Developer SDK.
Игры, у которых слишком мало возможностей для монетизации или которые монетизируются плохо, могут появляться реже или не быть одобренными для распространения. Хорошее эмпирическое правило – проверять возможность показа рекламы хотя бы раз в минуту . Сюда входят как межстраничные объявления, так и реклама с вознаграждением, которую вы размещаете, а также рекламные паузы, которые GameSnacks устанавливает для вас автоматически.
Однако это не означает, что мы всегда будем показывать рекламу. GameSnacks тщательно сбалансирует рекламную нагрузку, вовлеченность и пользовательский опыт. Поэтому вы можете свободно создавать рекламные паузы в любом месте, где они подходят для вашей игры (т. е. чаще, чем один раз в минуту), и позволить GameSnacks регулировать конечную скорость показа рекламы.
Требования к монетизации:
Ваша игра должна обеспечивать непрерывный, непрерывный основной игровой процесс с адекватными возможностями для показа межстраничной рекламы и рекламы с вознаграждением, которую необходимо настроить с помощью интерфейса рекламы.
Вы не должны включать какие-либо другие формы продвижения или монетизации. Сюда входит внутриигровая реклама, платежи, спонсорство и размещение продуктов, подсказки в социальных сетях и ссылки, которые ведут пользователей на внешние игры, сайты или другой контент.
Вы должны убедиться, что ваши игры предоставляют достаточно возможностей для показа рекламы, чтобы и вы, и партнеры по распространению GameSnacks могли получать устойчивый доход. Либо органически из-за обычных игровых событий (например, следующего уровня), либо явно с помощью методов интерфейса рекламы в другие подходящие моменты вашей игры.
При использовании методов рекламного интерфейса для размещения рекламы в игре вы должны соблюдать все соответствующие правила поведения в отношении межстраничных объявлений и вознаграждений . Дополнительные советы по настройке внутриигровой рекламы также можно найти в этом наборе рекомендаций .
Если вы размещаете в игре межстраничную рекламу, вы должны убедиться, что она появляется в естественных перерывах в игровом процессе. Реклама должна вписываться в ход вашей игры. Вы не должны просто запускать межстраничные объявления в середине непрерывного игрового процесса.
Если ваша игровая механика поддерживает это, вам следует размещать рекламу с вознаграждением. Эти возможности вознаграждения должны быть необязательными, вы должны их четко описать и не должны поощрять пользователя нажимать на рекламу. Полный список требований см. в поведенческих политиках .