# Opublikuj prostą grę HTML z aplikacji AI

Opublikuj jeden samodzielny plik HTML do 10 MiB przez upload_game: co się mieści, mini katalog, widoczność, aktualizacje i kiedy przejść na pakiet.

Source: https://www.playdrop.ai/pl/create/learn/html-games

Prosta ścieżka publikuje jedną standardową grę HTML, taką jak zręcznościówka na canvasie albo łamigłówka w DOM, jednym wywołaniem `upload_game`. Nie wymaga PlayDrop SDK, folderu kompilacji ani dodatkowych plików i zwraca link, który każdy może otworzyć na telefonie lub komputerze.

## Kiedy wystarczy prosta ścieżka

- Cała gra to jeden plik HTML o rozmiarze najwyżej 10 MiB (10 485 760 bajtów UTF-8), ze skryptami, stylami, obrazami i dźwiękami osadzonymi w środku.
- To zwykła gra przeglądarkowa: nie wywołuje PlayDrop SDK, więc nie ma zapisów w chmurze, rankingów, osiągnięć, udostępniania, grup, zakupów ani reklam.
- Nie potrzebuje osobnych plików: ani obrazów i filmów strony gry, ani serwera gry.

Jeśli którykolwiek z tych warunków nie jest spełniony, użyj zamiast tego [pakietu](https://www.playdrop.ai/pl/create/learn/packaging). Zachowaj funkcje, o które prosił twój użytkownik; nigdy ich nie usuwaj ani nie spłaszczaj gry wieloplikowej, żeby zmieścić ją w tej ścieżce. Przesłanie odrzuca wywołania SDK, kod serwera i pola katalogu dostępne tylko w pakietach z błędem `advanced_upload_required`.

## Wyślij grę

Wywołaj `upload_game` z nowym `requestId`, kompletnym HTML i mini katalogiem dla jednej gry:

```json
{
  "requestId": "moon-jump-first-upload",
  "html": "<!doctype html><html><head><meta charset=\"utf-8\"><title>Moon Jump</title></head><body>…</body></html>",
  "catalogue": {
    "apps": [{
      "name": "moon-jump",
      "displayName": "Moon Jump",
      "description": "Jump between lunar platforms and reach the flag.",
      "controls": "Tap or press Space to jump.",
      "tags": ["game-genre/casual"],
      "types": ["solo"],
      "controller": { "support": "off" },
      "authMode": "NONE",
      "primarySurface": "MOBILE_PORTRAIT"
    }]
  }
}
```

- `name` to stały slug gry: 1–100 małych liter, cyfr lub myślników.
- `tags` muszą zawierać gatunek, taki jak `game-genre/casual`; zobacz [gatunki i tagi](https://www.playdrop.ai/pl/create/learn/tags).
- `types` deklaruje, jak się w nią gra; gra z jednego pliku to zwykle `["solo"]`. Rozmiary grup i gra online wymagają pakietu.
- `controller.support` określa rzeczywistą obsługę kontrolerów, łącznie z `off`.
- `authMode` decyduje o logowaniu: `NONE` lub `OPTIONAL` pozwala grać każdemu; po pominięciu domyślnie przyjmuje `REQUIRED`. Dołączaj je przy każdej aktualizacji.
- `primarySurface` wskazuje orientację, dla której zaprojektowano grę; proste przesłania są wyświetlane na komputerach oraz w orientacji poziomej i pionowej.

Pozostałe akceptowane pola to `subtitle`, `emoji`, `color`, `license`, `creation`, `releaseNotes`, `inspirationPrompt`, `makingOf`, `sourceRepository`, `sourceLocale`, `offlineSupported` i `instant`. PlayDrop sam nadaje numer wersji.

## Wybierz, kto może grać

- Pomiń `visibility`, aby nowa gra stosowała ustawienie konta twórcy (Publiczna, chyba że twórca wybrał opcję Niepubliczna lub Prywatna); aktualizacja zachowuje obecnych odbiorców gry.
- `"private"` zapisuje do testów wersję, którą może otworzyć tylko twórca. Opublikuj później dokładnie tę wersję przez `publish_game_version`; nie przesyłaj jej ponownie.
- `"unlisted"` publikuje ją dla każdego z linkiem, bez pokazywania na listach; `"public"` publikuje ją tak, by można ją było odkryć.

Postępuj zgodnie z prośbą użytkownika i nigdy nie udostępniaj gry szerzej, niż zamierzano. Zobacz, [kto może grać](https://www.playdrop.ai/pl/create/learn/distribution).

## Przeczytaj potwierdzenie przesłania

Potwierdzenie przesłania zawiera `gameId`, `slug`, `version`, `status`, `visibility` i `url`, czyli link właściciela do dokładnie tej wersji. Gry publiczne i niepubliczne dostają też `shareUrl`, stałą stronę gry; to ten link przekaż użytkownikowi. W przypadku wersji prywatnej przekaż `url`. `instant` i `instantReason` informują o kwalifikowalności do [Instant](https://www.playdrop.ai/pl/create/learn/instant-games).

## Zaktualizuj grę

Wywołaj `list_games`, przekaż `gameId` gry i zachowaj jej `name`. Wyślij ponownie kompletny HTML i kompletny mini katalog: każde przesłanie to pełna migawka, a pominiętych pól nie ma w nowej wersji. Link pozostaje ten sam. Gra pierwotnie przesłana jako pakiet musi dalej korzystać ze ścieżki pakietu, aby jej pliki i funkcje nie przepadły.

## Przejdź później na pakiet

Dodanie zapisów w chmurze, rankingu, grafiki strony gry lub serwera zmienia grę w pakiet. To zwykła aktualizacja tej samej gry: zachowaj `name`, prześlij ją przez `prepare_catalogue_upload` i ustaw `expectedCurrentVersion` na bieżącą wersję z `list_games`. Przeczytaj poradnik o [pakowaniu](https://www.playdrop.ai/pl/create/learn/packaging).

## Powiązane poradniki

- [Publikuj z aplikacji AI](https://www.playdrop.ai/pl/create/learn/mcp-publishing): Jak agenci AI publikują w PlayDrop przez MCP: prosta ścieżka i pakiety, prywatne testy, publish_game_version, aktualizacje, limity i odzyskiwanie po błędach.
- [Pakowanie i .play](https://www.playdrop.ai/pl/create/learn/packaging): Zbudowana gra w folderze, ZIP lub .play z catalogue.json w katalogu głównym: media strony gry, serwery i przesyłanie przez prepare_catalogue_upload.
- [Widoczność i zasięg](https://www.playdrop.ai/pl/create/learn/distribution): Wybierz, kto może otworzyć grę, poznaj ustawienie konta i publikowanie wersji oraz to, jak Boost, Wymiana rozgrywek, Instant i wyszukiwarki przyciągają graczy.
