Wymagania GameSnacks

W tym dokumencie używane są następujące terminy (w RFC 2119):

  • muszą, ale nie wolno – to surowe wymagania, które muszą spełniać wszystkie gry.
  • powinni, a nie robić – te rekomendacje nie są wymagane, ale mogą się przydać przy podejmowaniu decyzji o rankingu lub filtrowaniu gier wyświetlanych użytkownikom. Jeśli na przykład ekran użytkownika jest w orientacji poziomej, usługa GameSnacks może polecać tylko gry, które obsługują ten współczynnik proporcji.
  • może – to sugestie, które nie są wymagane i nie będą używane do filtrowania gier z wyjątkiem sytuacji, gdy użytkownik wyraźnie o niego poprosi. Przyszłe funkcje mogą na przykład umożliwić użytkownikowi wyświetlenie listy gier, które obsługują dane wejściowe gamepada.

Gra i jej zasoby muszą spełniać te wymagania:

Struktura gry

Gra jest przesyłana w postaci pakietu plików, który zawiera kod i zasoby wykonawcze gry, zasoby marketingowe do wyświetlania jej w katalogu GameSnacks oraz plik game.json, który zawiera metadane opisujące grę i wymienia wszystkie zasoby w pakiecie.

game.json

Plik konfiguracyjny zawierający metadane gry.

  • Gra musi zawierać plik game.json zawierający wszystkie wymagane pola.
  • Ten plik musi znajdować się w katalogu głównym gry.

Punkt wejścia HTML

Dokument HTML, który wczytuje grę.

  • Punkt wejścia musi być prawidłowym plikiem HTML.
  • Ten plik musi zawierać maksymalnie 1 element head i 1 element body.

    • Oba elementy (jeśli występują) muszą mieć zarówno tag początkowy, jak i końcowy.
    • Treści spoza tych elementów oraz ich atrybuty będą ignorowane.

      Zamiast ustawiać atrybuty bezpośrednio w elemencie body, możesz użyć:

Files

Wszystkie pliki w pakiecie, w tym gra i powiązane z nią zasoby marketingowe, muszą spełniać te wymagania:

  • Rozmiar każdego pliku musi być mniejszy niż 10 MiB.
  • Do plików należy się odwoływać wyłącznie za pomocą ścieżek względnych.
  • Jako separatora katalogu w ścieżkach może być tylko /.
  • Nazwy plików mogą zawierać wyłącznie niezastrzeżone znaki (RFC 3986).
  • Nazwy plików i wszystkie ścieżki muszą być pisane małymi literami.

Rozmiar gry

Rozmiar gry to całkowity rozmiar całego kodu i zasobów pobieranych na urządzenie użytkownika.

  • Rozmiar gry nie może przekraczać 100 MiB.
    • Obejmuje to wszystkie pliki wymienione w sekcji files w sekcji game.json i nie obejmują zasobów marketingowych.

Wymagania techniczne

Gra musi spełniać te wymagania techniczne.

Pakiet SDK GameSnacks

  • Gra musi być zintegrowana z pakietem GameSnacks Developer SDK, a także ze wszystkimi wymaganymi interfejsami.
  • Gra nie może bezpośrednio wczytywać żadnych interfejsów API reklam (np. wstrzykiwać tagu ads takiego jak adsbygoogle.js).

Zgodność z przeglądarką

  • Do renderowania Twoja gra musi używać interfejsu Can API lub WebGL.
  • Gra musi działać prawidłowo w 2 najnowszych głównych wersjach tych przeglądarek:
    • Chrome na urządzeniach z Androidem, iOS, Windows i macOS
    • Safari na urządzeniach z iOS i macOS.
    • Firefox na urządzeniach z Androidem i Windows
    • Edge w systemie Windows
  • Twoja gra musi działać prawidłowo w widokach witryny w najnowszych wersjach Androida oraz iOS z 2 głównych wersji:
    • WebView na Androidzie
    • WKWebView w systemie iOS
  • Gra powinna być testowana z użyciem jak największej liczby innych samodzielnych i osadzonych mechanizmów renderowania stron internetowych.

Minimalne możliwości urządzenia

Gra musi dobrze działać na słabszych urządzeniach. Poniżej znajdziesz informacje o minimalnych możliwościach urządzenia wymaganych w przypadku gier na platformie GameSnacks.

  • Twoja gra musi działać z szybkością co najmniej 30 kl./s na każdym urządzeniu, które ma te lub lepsze parametry:

    • Procesor: Qualcomm 215, Samsung Exynos 7570, Mediatek MT6737 lub podobny
    • RAM: 2 GiB
    • GPU: Arm Mali-T720 MP1, Qualcomm Adreno 308 lub podobny

    Przykładowe telefony pasujące do tej specyfikacji to JioPhone Next, Nokia 1.4, LG K22, Samsung J2 Core i Moto E4

Początkowy rozmiar pobierania

Początkowy rozmiar pobierania to ilość danych, które zostaną pobrane do klienta w celu uruchomienia gry.

  • Rozmiar pobierania musi być mniejszy niż 15 MiB.
  • Wstępne pobieranie powinno być mniejsze niż 5 MiB.

Wymagania funkcjonalne

Gra musi spełniać te wymagania dotyczące działania.

Czas wczytywania

Czas wczytywania to czas potrzebny na uruchomienie kodu i uruchomienie gry.

  • Gra musi wyświetlać ekran wczytywania lub działać w czasie krótszym niż 1 sekunda przy połączeniu o szybkości co najmniej 10 Mb/s.
  • Gra musi być dostępna w czasie krótszym niż 15 sekund przy dowolnym połączeniu o szybkości co najmniej 10 Mb/s.

Występowały poważne błędy w działaniu

  • Gra nie może powodować powtarzalnych awarii.
  • Gra nie może powodować powtarzających się awarii w aplikacjach ani witrynach, w których jest umieszczona.

Format obrazu

GameSnacks utworzy ramkę, w której będzie się renderować Twoja gra. Rozmiar i współczynnik proporcji tej klatki zależą od powierzchni dystrybucji, urządzenia i obecności reklam umieszczonych w grze. Ta ramka może zmienić rozmiar, jeśli np. użytkownik zmieni rozmiar okna przeglądarki.

  • Gra powinna wykorzystywać cały dostępny obszar w ramce na potrzeby treści interaktywnych – bez dodatkowego dopełnienia czy wypełnienia.
  • Gra musi obsługiwać obraz w orientacji pionowej 9:16.
  • Gra powinna obsługiwać format obrazu w orientacji poziomej 16:9.
  • Gra powinna obsługiwać kwadratowy format obrazu 1:1.
  • W idealnej sytuacji gra powinna być responsywna i obsługiwać szeroki zakres formatów obrazu pionowego, poziomego i kwadratowego.
  • Po zmianie rozmiaru klatki gra musi natychmiast zmienić rozmiar, aby spełniał te wymagania.
    • Gra powinna płynnie przejść do nowego rozmiaru.
  • Gra nie może blokować orientacji przeglądarki.

Interakcja z grą

  • Gra musi być w pełni dostępna dotykowo.
  • Gra musi być w pełni możliwa do rozgrywek przy użyciu myszy.
  • Gra powinna być w pełni możliwa do uruchomienia z użyciem klawiatury.
  • W grę może można w całości grać, korzystając z urządzenia wejściowego gamepada.
  • Wszystkie elementy interfejsu wyświetlane w grze muszą być zaimplementowane i działać prawidłowo.
  • Gra nie może zawierać wyłączonych elementów sterujących – jeśli dana funkcja nie jest dostępna, musisz całkowicie usunąć ją z interfejsu.
    • Dotyczy to promptów o nagrodę. Prośbę o nagrodę renderuj tylko wtedy, gdy wywoływane jest wywołanie zwrotne beforeReward dotyczące danej przerwy na reklamę.
  • Gra nie może wyświetlać próśb o udostępnienie w grze.
  • Gra nie może zawierać UI ani linków do gry, które kierują użytkownika do zewnętrznych gier, witryn lub innych treści.
  • Gra musi wyraźnie informować użytkownika, gdy ukończy ostatni poziom lub ukończy grę.
  • Gra nie może używać słów takich jak „kup” czy „kup”, które można pomylić z funkcjami zakupu w aplikacji, które nie są obsługiwane w grach na platformie GameSnacks.
  • Jeśli gra zawiera reakcje haptyczne, użytkownik musi mieć możliwość jej wyłączenia.

Uruchamianie gry

Podczas uruchamiania gra musi prawidłowo koordynować swoje działanie ze środowiskiem wykonawczym GameSnacks. Interfejs GameSnacks Game udostępnia funkcje sygnalizujące stan wczytywania gry, w tym: firstFrameReady, gdy chcesz po raz pierwszy wyświetlić ekran, oraz ready, gdy użytkownik może zacząć wchodzić w interakcję z grą.

  • Gra musi wywołać firstFrameReady, gdy pierwsza klatka gry jest gotowa do renderowania.
  • Gra musi wywołać ready, gdy jest gotowa do interakcji z użytkownikiem.
  • Gra nie może wywoływać ready, gdy wciąż wyświetlają się elementy nieinteraktywne, takie jak ekrany powitalne czy ekrany wczytywania.

Wyciszenie elementów sterujących i obsługa dźwięku

Gra musi przestrzegać elementów sterujących dźwiękiem platformy GameSnacks.

  • Twoja gra nie powinna wyświetlać ogólnego przycisku wyciszania, a powinna korzystać w tym celu z elementu sterującego wyciszeniem na platformie GameSnacks.
  • Gra musi zintegrować się z interfejsem audio i musi przestrzegać metody audio.isEnabled.
  • Gra może mieć osobne, szczegółowe opcje sterowania dźwiękiem, np. związane z muzyką w tle czy efektami dźwiękowymi, ale musi spełniać te wymagania.

Wstrzymaj i wznów

Gra musi mieć możliwość wstrzymywania i wznawiania.

  • Gra musi integrować się z metodami interfejsu gry onPause i onResume do wstrzymywania i wznawiania rozgrywki.
  • Gra nie może używać interfejsu API widoczności strony internetowej ani podobnych interfejsów API.
  • Jeśli gra jest wstrzymana, musi wyraźnie poinformować użytkownika o tym.
  • Gra powinna zapisywać postępy użytkownika, gdy jest wstrzymana.

Obsługa danych

Do obsługi danych używaj tylko interfejsów API CloudSnacks.

  • Do zapisywania danych gry może używać tylko interfejsu Miejsce na dane.
  • Gra nie może używać żadnej innej formy przechowywania danych, w tym plików cookie oraz localStorage, sessionStorage i IndexedDB.
  • Gra nie może gromadzić żadnych danych użytkownika.
  • Gra nie może wykonywać żadnych zewnętrznych wywołań ani żądań danych do lub z żadnego serwera przy użyciu jakiegokolwiek protokołu.
  • Gra nie może wyświetlać żadnych dodatkowych umów z użytkownikiem, polityki prywatności ani innych komunikatów dotyczących zbierania danych czy informacji prawnych.

Zapisuję postęp

Możesz zapisywać postępy użytkownika, by umożliwić ich przywrócenie, gdy wróci do gry.

  • Twoja gra musi korzystać z interfejsu Storage, aby zapisywać informacje o postępach użytkowników, np. o ukończeniu poziomu.
  • Łączny rozmiar zapisanej gry musi być mniejszy niż 3 MiB i powinien być mniejszy niż 500 KiB.
  • W momencie rozpoczęcia gry musi zostać przywrócone wszystkie zapisane postępy.
  • Gra musi mieć możliwość przywrócenia zapisanych postępów z poprzednich wersji.

Najlepsze wyniki

Przechowuj najwyższy wynik użytkownika lub śledź jego postępy za pomocą innych danych.

  • Jeśli gra ma wyniki, musi je śledzić w interfejsie Wyniku.
  • Jeśli gra nie ma wyników, sprawdź inne dane o postępach, np. liczbę ukończonych poziomów.

Treść gry

W przypadku treści gry obowiązują te wymagania:

Interfejs gry

  • Gra musi być wyraźnie widoczna w różnych rozdzielczościach ekranu. Na przykład elementy interfejsu nie mogą być rozmyte, rozpikselowane ani rozciągnięte.
  • Twoja gra nie powinna używać zasobów zrastrowanych o niskiej rozdzielczości, które po przeskalowaniu do większych ekranów są nieostre.
  • Gra nie może używać ikon, które można pomylić z ikonami na pasku działań GameSnacks.
  • Gra nie może zawierać przycisków zamykania ani zamykania. Zajmuje się tym aplikacja lub strona, na której jest umieszczona Twoja gra.

Lokalizacja i ułatwienia dostępu

  • Gra musi obsługiwać język angielski.
  • Twoja gra powinna dokładać wszelkich starań, aby była łatwo dostępna. Zalecamy przestrzeganie wytycznych Web Content Accessibility Guidelines (WCAG) poziomu AA.
  • Tekst w grze musi być czytelny na różnych urządzeniach i o różnych rozmiarach ekranów. Patrz WCAG 2.2 §1.4.3.

Treści skierowane do dzieci

Prawa i zezwolenia

  • Gra musi mieć w pełni przyznane prawa własności intelektualnej osób trzecich.
  • Gra nie może naruszać żadnych praw osób trzecich dotyczących znaków towarowych ani szaty graficznej.
  • Gra musi mieć wszystkie wymagane prawa do muzyki.
  • Gra musi mieć wszystkie niezbędne prawa osobiste, w tym imię i nazwisko oraz wizerunek.

Gdzie będą się wyświetlać moje gry?

Gry z GameSnacks publikujemy na różnych platformach – zarówno w usługach Google, jak i w witrynach i aplikacjach partnerów GameSnacks – zarówno na urządzeniach mobilnych, jak i na komputerach. Dotyczy to m.in. aplikacji Gry Google Play, urządzeń z Androidem i witryny gamingową.com. To skąd pochodzi obecnie duża część naszego ruchu. Lokalizacje, w których publikujemy gry, stale się zmieniają, dlatego stale chcemy poszerzać grono odbiorców gier GameSnacks. Z czasem możemy więc dodać nowe platformy Google lub partnerów dystrybucyjnych. Co jakiś czas możemy również przeprowadzać eksperymenty w ramach pracy z nowymi platformami dystrybucji.

Zarabianie

GameSnacks będzie zarabiać na Twojej grze i będzie przekazywać Ci część tych przychodów zgodnie z umową licencyjną dla deweloperów GameSnacks.

GameSnacks może automatycznie umieszczać reklamy w naturalnych momentach w grze, takich jak wydarzenia przed filmem, wydarzenia na nowym lub końcowym poziomie. Możesz też wstawić w grze dodatkowe przerwy na reklamę (zarówno pełnoekranowe, jak i z nagrodą), korzystając z interfejsu reklam pakietu GameSnacks dla deweloperów.

Gry, które mają zbyt mało możliwości zarabiania lub niewiele zarabiają, mogą być wyświetlane rzadziej lub nie są zatwierdzone do dystrybucji. Dobrą zasadą jest sprawdzenie, czy pojawi się możliwość wyświetlenia reklamy co najmniej raz na minutę. Obejmuje to umieszczone przez Ciebie reklamy pełnoekranowe i reklamy z nagrodą oraz przerwy na reklamę, które GameSnacks konfiguruje automatycznie.

Nie oznacza to jednak, że zawsze wyświetlamy reklamę. GameSnacks dokładnie równoważy obciążenie reklam, zaangażowanie i wygodę użytkowników. Dlatego możesz tworzyć przerwy na reklamy tam, gdzie pasują do Twojej gry (tj.częściej niż raz na minutę). Dzięki temu GameSnacks dostosuje ostateczną częstotliwość wyświetlania reklam.

Wymagania dotyczące zarabiania:

  • Twoja gra powinna umożliwiać nieprzerwaną i nieprzerwaną rozgrywkę z główną rozgrywką, a także umożliwiać wyświetlanie reklam pełnoekranowych i reklam z nagrodą. Trzeba je skonfigurować w interfejsie reklamy.

  • Nie wolno stosować żadnych innych form promocji ani zarabiania. Dotyczy to reklam w grach, płatności, sponsorowania i lokowania produktu, promptów w mediach społecznościowych oraz linków kierujących użytkowników do zewnętrznych gier, witryn lub innych treści.

  • Musisz dopilnować, aby Twoje gry dawały wystarczająco dużo możliwości wyświetlania reklam, żeby zarówno Ty, jak i partnerzy dystrybucyjni GameSnacks możecie generować stabilne przychody. Może to być naturalnie spowodowane normalnymi wydarzeniami w grze (np. przejściem na kolejny poziom) lub korzystanie z interfejsów reklam w innych odpowiednich momentach w trakcie gry.

  • Jeśli używasz interfejsu reklam do umieszczania reklam w grze, musisz przestrzegać wszystkich odpowiednich zasad dotyczących zachowania reklam pełnoekranowych i reklam z nagrodą. Zapoznaj się też z zestawem sprawdzonych metod, w którym znajdziesz dalsze wskazówki dotyczące konfigurowania reklam w grach.

  • Jeśli umieszczasz reklamy pełnoekranowe w grze, musisz upewnić się, że pojawiają się one w naturalnych przerwach w rozgrywce. Reklamy muszą pasować do stylu gry. Nie możesz wyświetlać reklam pełnoekranowych w trakcie ciągłej gry.

  • Jeśli Twoja mechanika gry to umożliwia, powinno to być reklamy z nagrodą. Możliwości te muszą być opcjonalne, musisz je jasno opisać i nie możesz zachęcać użytkowników do klikania reklam. Wszystkie wymagania znajdziesz w zasadach dotyczących zachowania.