# Yapay zeka uygulamandan basit bir HTML oyunu yayınla

upload_game ile 10 MiB’a kadar tek bir HTML dosyası yayınla: neler uygun, mini katalog, görünürlük, güncellemeler ve ne zaman pakete geçmeli.

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

Basit yol, canvas tabanlı bir arcade oyunu ya da DOM bulmacası gibi standart bir HTML oyununu tek bir `upload_game` çağrısıyla yayınlar. PlayDrop SDK’sı, derleme klasörü ya da ek dosya gerektirmez ve herkesin telefonda veya bilgisayarda açabileceği bir bağlantı döndürür.

## Basit yol ne zaman uygun

- Oyunun tamamı, betikleri, stilleri, görselleri ve sesleri satır içinde olan, en fazla 10 MiB (10.485.760 UTF-8 bayt) boyutunda tek bir HTML dosyasıdır.
- Sıradan bir tarayıcı oyunudur: PlayDrop SDK’sını çağırmaz; yani bulut kayıtları, liderlik tabloları, başarımlar, paylaşım, partiler, satın alımlar ya da reklamlar yoktur.
- Ayrı dosya gerektirmez: oyun sayfası görselleri ya da videoları ve oyun sunucusu yoktur.

Bunlardan herhangi biri doğru değilse bunun yerine bir [paket](https://www.playdrop.ai/tr/create/learn/packaging) kullan. Kullanıcının istediği özellikleri koru; bu yola sığdırmak için onları asla kaldırma ya da çok dosyalı bir oyunu tek dosyaya indirgeme. Yükleme SDK çağrılarını, sunucu kodunu ve yalnızca pakete özgü katalog alanlarını `advanced_upload_required` ile reddeder.

## Oyunu gönder

`upload_game` aracını yeni bir `requestId`, eksiksiz HTML ve tek bir oyun için mini bir katalogla çağır:

```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`, oyunun kalıcı slug’ıdır: 1–100 küçük harf, rakam ya da tire.
- `tags`, `game-genre/casual` gibi bir tür içermelidir; bkz. [türler ve etiketler](https://www.playdrop.ai/tr/create/learn/tags).
- `types`, oyunun nasıl oynandığını bildirir; tek dosyalık bir oyun normalde `["solo"]` olur. Parti boyutları ve çevrimiçi oyun paketlere aittir.
- `controller.support`, `off` dahil gerçek kumanda desteğini belirtir.
- `authMode` girişi belirler: `NONE` veya `OPTIONAL` herkesin oynamasına izin verir; atlanırsa varsayılan değer `REQUIRED` olur. Her güncellemede ekle.
- `primarySurface`, oyunun tasarlandığı yönü belirtir; basit yüklemeler masaüstü, yatay ve dikey için listelenir.

Kabul edilen diğer alanlar `subtitle`, `emoji`, `color`, `license`, `creation`, `releaseNotes`, `inspirationPrompt`, `makingOf`, `sourceRepository`, `sourceLocale`, `offlineSupported` ve `instant` alanlarıdır. Sürüm numarasını PlayDrop atar.

## Kimlerin oynayabileceğini seç

- Yeni bir oyunda yapımcının hesap ayarını izlemek için `visibility` değerini dışarıda bırak (Listelenmemiş ya da Özel seçmedikçe Herkese açık); bir güncelleme oyunun mevcut kitlesini korur.
- `"private"`, test için yalnızca yapımcının açabileceği bir sürüm kaydeder. Bu sürümü daha sonra `publish_game_version` ile olduğu gibi yayınla; tekrar yükleme.
- `"unlisted"`, oyunu listelemeden bağlantısı olan herkese yayınlar; `"public"` onu keşfedilmesi için yayınlar.

Kullanıcının istediğini izle ve bir oyunu asla onun istediğinden daha görünür yapma. Bkz. [kimler oynayabilir](https://www.playdrop.ai/tr/create/learn/distribution).

## Makbuzu oku

Makbuz `gameId`, `slug`, `version`, `status`, `visibility` ve sahibine yönelik belirli sürümün bağlantısı olan `url` değerlerini içerir. Herkese açık ve listelenmemiş oyunlar ayrıca oyunun kalıcı sayfası olan `shareUrl` değerini de alır; kullanıcına bunu ver. Özel bir sürüm için `url` değerini ver. `instant` ve `instantReason`, [Instant](https://www.playdrop.ai/tr/create/learn/instant-games) uygunluğunu bildirir.

## Oyunu güncelle

`list_games` çağır, oyunun `gameId` değerini geçir ve `name` değerini koru. Eksiksiz HTML’yi ve eksiksiz mini kataloğu tekrar gönder: her yükleme tam bir anlık görüntüdür ve atlanan alanlar yeni sürümde yer almaz. Bağlantı aynı kalır. İlk olarak paket halinde yüklenen bir oyun, dosyaları ve özellikleri kaybolmasın diye paket yolunu kullanmaya devam etmelidir.

## Sonradan pakete geç

Bulut kayıtları, bir liderlik tablosu, oyun sayfası görselleri ya da bir sunucu eklemek oyunu bir pakete dönüştürür. Bu, aynı oyunun sıradan bir güncellemesidir: `name` değerini koru, oyunu `prepare_catalogue_upload` ile yükle ve `expectedCurrentVersion` değerini `list_games` içindeki güncel sürüme ayarla. [Paketleme](https://www.playdrop.ai/tr/create/learn/packaging) kılavuzunu oku.

## İlgili kılavuzlar

- [Yapay zeka uygulamandan yayınla](https://www.playdrop.ai/tr/create/learn/mcp-publishing): Yapay zeka ajanları PlayDrop’a MCP ile nasıl yayınlar: basit yol ve paket yolu, özel test, publish_game_version, güncellemeler, sınırlar ve kurtarma.
- [Paketleme ve .play](https://www.playdrop.ai/tr/create/learn/packaging): Kökünde catalogue.json olan derlenmiş bir klasör, ZIP ya da .play hazırla, oyun sayfası medyasını ve sunucuları bildir, prepare_catalogue_upload ile yükle.
- [Görünürlük ve erişim](https://www.playdrop.ai/tr/create/learn/distribution): PlayDrop oyununu kimlerin açabileceğini seç; hesap varsayılanı ve sürüm yayınlama nasıl işler, Boost, oyun takası, Instant ve arama nasıl yeni oyuncu getirir.
