# Publiser et enkelt HTML-spill fra KI-appen din

Publiser én selvstendig HTML-fil på opptil 10 MiB med upload_game: hva som passer, minikatalogen, synlighet, oppdateringer og når du bør bytte til en pakke.

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

Den enkle veien publiserer ett vanlig HTML-spill, for eksempel et arkadespill på canvas eller et DOM-puslespill, med ett enkelt `upload_game`-kall. Den trenger ingen PlayDrop-SDK, ingen build-mappe og ingen ekstra filer, og den returnerer en lenke som hvem som helst kan åpne på telefon eller datamaskin.

## Når den enkle veien passer

- Hele spillet er én HTML-fil på høyst 10 MiB (10 485 760 UTF-8-byte), med skript, stiler, bilder og lyder lagt inn i filen.
- Det er et vanlig nettleserspill: det kaller ikke PlayDrop-SDK-en, så ingen skylagring, topplister, prestasjoner, deling, grupper, kjøp eller annonser.
- Det trenger ingen separate filer: ingen oppføringsbilder eller -videoer og ingen spillserver.

Hvis noe av dette ikke stemmer, bruker du en [pakke](https://www.playdrop.ai/nb/create/learn/packaging) i stedet. Behold funksjonene brukeren din ba om; fjern dem aldri, og slå aldri sammen et spill med flere filer for å få det til å passe denne veien. Opplastingen avviser SDK-kall, serverkode og katalogfelt som bare finnes i pakker, med `advanced_upload_required`.

## Send spillet

Kall `upload_game` med en ny `requestId`, hele HTML-koden og en minikatalog for ett spill:

```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` er spillets permanente slug: 1–100 små bokstaver, sifre eller bindestreker.
- `tags` må inneholde en sjanger, som `game-genre/casual`; se [sjangre og tagger](https://www.playdrop.ai/nb/create/learn/tags).
- `types` deklarerer hvordan spillet spilles; et spill i én fil er vanligvis `["solo"]`. Gruppestørrelser og spill over nett hører til pakker.
- `controller.support` oppgir reell kontrollerstøtte, inkludert `off`.
- `authMode` bestemmer innlogging: `NONE` eller `OPTIONAL` lar alle spille; hvis feltet utelates, er standarden `REQUIRED`. Ta det med i hver oppdatering.
- `primarySurface` angir retningen spillet er laget for; enkle opplastinger oppføres for datamaskin, liggende og stående format.

De andre godtatte feltene er `subtitle`, `emoji`, `color`, `license`, `creation`, `releaseNotes`, `inspirationPrompt`, `makingOf`, `sourceRepository`, `sourceLocale`, `offlineSupported` og `instant`. PlayDrop tildeler versjonsnummeret.

## Velg hvem som kan spille

- Utelat `visibility` for å følge skaperens kontoinnstilling for et nytt spill (Offentlig med mindre skaperen har valgt Ikke oppført eller Privat); en oppdatering beholder spillets nåværende publikum.
- `"private"` lagrer en versjon bare skaperen kan åpne, for testing. Publiser akkurat den versjonen senere med `publish_game_version`; ikke last den opp på nytt.
- `"unlisted"` publiserer den for alle med lenken, uten å oppføre den; `"public"` publiserer den slik at den kan oppdages.

Følg det brukeren din ba om, og gjør aldri et spill mer synlig enn brukeren hadde tenkt. Se [hvem som kan spille](https://www.playdrop.ai/nb/create/learn/distribution).

## Les kvitteringen

Kvitteringen inneholder `gameId`, `slug`, `version`, `status`, `visibility` og `url`, lenken til akkurat denne versjonen for eieren. Offentlige og ikke oppførte spill får også `shareUrl`, spillets varige side; gi den til brukeren din. For en privat versjon gir du tilbake `url`. `instant` og `instantReason` rapporterer om spillet kvalifiserer som [Instant](https://www.playdrop.ai/nb/create/learn/instant-games).

## Oppdater spillet

Kall `list_games`, send med spillets `gameId` og behold `name`. Send hele HTML-koden og hele minikatalogen på nytt: hver opplasting er et fullstendig øyeblikksbilde, og felt som utelates, mangler i den nye versjonen. Lenken forblir den samme. Et spill som først ble lastet opp som pakke, må fortsette å bruke pakkeveien, slik at filene og funksjonene ikke går tapt.

## Bytt til en pakke senere

Når du legger til skylagring, en toppliste, oppføringsbilder eller en server, blir spillet en pakke. Det er en vanlig oppdatering av det samme spillet: behold `name`, last det opp med `prepare_catalogue_upload` og sett `expectedCurrentVersion` til den nåværende versjonen fra `list_games`. Les [pakking](https://www.playdrop.ai/nb/create/learn/packaging).

## Relaterte veiledninger

- [Publiser fra KI-appen din](https://www.playdrop.ai/nb/create/learn/mcp-publishing): Slik publiserer KI-agenter på PlayDrop via MCP: den enkle veien og pakkeveien, privat testing, publish_game_version, oppdateringer, grenser og gjenoppretting.
- [Pakking og .play](https://www.playdrop.ai/nb/create/learn/packaging): Organiser en ferdigbygd spillmappe, ZIP eller .play med catalogue.json i roten, deklarer oppføringsmedier og servere, og last opp med prepare_catalogue_upload.
- [Synlighet og rekkevidde](https://www.playdrop.ai/nb/create/learn/distribution): Velg hvem som kan åpne et PlayDrop-spill, se hvordan kontostandarden og versjonspublisering virker, og hvordan Boost, Spillbytte, Instant og søk gir nye spillere.
