PlayDrop logoPlayDrop Studio
OluşturOyun takasıKazanÖğrenBağlayıcılarAsset’lerToplulukDestek
PlayDrop logoPlayDrop Studio
OluşturOyun takasıKazanÖğrenBağlayıcılarAsset’lerToplulukDestek
Giriş yap
Özel biçimler ve oyuncu yapımları
Belgeler

Buradan başla

Genel bakışİlk oyununPlayDrop oyunlarıSSS

Cloud ile oluştur

Cloud ile oluşturmaPlanlar ve üretimler

Yapay zeka uygulamanı bağla

Tüm bağlayıcılarClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Yayınla ve paylaş

Yapay zeka uygulamandan yayınlaBasit HTML oyunlarıPaketleme ve .playYayınla ve içe aktarOyun dosyalarıGörünürlük ve erişimOyun sayfası görselleri ve videoTürler ve etiketlerYerelleştirmeInstant oyunlar

Oyun deneyimi

Yükleme, duraklatma ve sesTam ekran ve güvenli alanlarBulut kayıtlarıYerel partiler ve kumandalar

Birlikte oyna

Paylaşım, arkadaşlar ve davetlerLiderlik tablolarıBaşarımlarÇevrimiçi partiler ve sesli sohbetGerçek zamanlı oyun sunucuları

Kazan

Para kazanmaKrediler ve ödüller

Asset’ler

Oyun asset’leriYapay zekayla asset üretimiÖzel biçimler ve oyuncu yapımları

Başvuru

İstemci SDK’sıSunucu SDK’sıcatalogue.jsonHatalar ve kurtarmaSorun giderme
BelgelerÖzel biçimler ve oyuncu yapımları
Asset’ler

PlayDrop’ta özel asset biçimleri ve oyuncu yapımları

Asset spesifikasyonuyla kendi biçimini tanımla, oyunun okuduğu ve yazdığı biçimleri bildir, oyuncular yapımlarını sdk.assets.custom ile kaydedip yayınlasın.

Asset spesifikasyonları, bir oyunun seviye, karakter ya da deste gibi kendi asset türünü bir dosya sözleşmesi olarak tanımlamasını sağlar. Böylece oyuncular o biçimde yapımlar oluşturabilir, kaydedebilir ve yayınlayabilir; bu biçimi destekleyen diğer oyunlar da onları açabilir.

Bir asset spesifikasyonu tanımla

Bir asset spesifikasyonu catalogue.json içindeki assetSpecs listesinde, apps alanının yanında tanımlanır:

json
{
  "assetSpecs": [{
    "name": "moon-level",
    "version": "1.0.0",
    "displayName": "Moon Jump level",
    "symbol": "specs/moon-level.svg",
    "contract": "specs/moon-level.contract.json"
  }]
}

Sözleşme her asset’in dosyalarını ve bunların nasıl kontrol edileceğini belirtir:

json
{
  "primaryRole": "level",
  "roles": [
    { "name": "level", "required": true, "contentTypes": ["application/json"], "mode": "TEXT",
      "jsonSchema": { "type": "object", "required": ["tiles"], "properties": { "tiles": { "type": "array" } } } },
    { "name": "thumbnail", "required": false, "contentTypes": ["image/png"], "mode": "BINARY" }
  ]
}

Roller, PlayDrop’un her kayıtta kontrol ettiği bir JSON Schema taşıyabilir. Biçim değiştiğinde yeni bir spesifikasyon sürümü yayınla; eski asset’ler kendi sürümlerini korur.

Oyunun neyi desteklediğini bildir

json
{
  "assetSpecSupport": [
    { "assetSpec": "asset-spec:your-name/moon-level", "versionRange": "^1.0.0", "capabilities": ["READ", "WRITE"] }
  ]
}

Yetenekler READ, WRITE, EDIT, PREVIEW ve IMPORT değerleridir.

Oyuncu yapımlarını kaydet ve yükle

js
const levels = sdk.assets.custom.forSpec("asset-spec:your-name/moon-level");

await levels.saveDraft({ assetName: "crater-run", displayName: "Crater run",
  files: { level: new Blob([JSON.stringify(level)], { type: "application/json" }) } });
await levels.publish({ assetName: "crater-run", displayName: "Crater run", files: { level: levelBlob, thumbnail: pngBlob } });

const mine = await levels.listMine();
const latest = mine[0]?.latestPublicVersion;
if (latest) startLevel(await levels.loadJson({ assetRef: latest.assetRef, role: "level" }));

const community = await levels.listPublic({ limit: 20 }); // { assets, pagination }
  • saveDraft özel bir taslak tutar; publish onu herkese açık yapar. İkisi de dosyaların eksiksiz kümesini gerektirir.
  • Asset referansları asset:creator/name@r2 biçimindedir. loadJson, loadText ve downloadFile yayınlanmış asset’leri okur; loadOwned, loadOwnedJson ve loadOwnedFile taslaklar dahil oyuncunun kendi asset’lerini okur.
  • supports(versionRef, capability), başka bir sürümden bir asset’i açmadan önce kontrol yapar.
  • Hatalar custom_asset_capability_unsupported ve custom_asset_role_type_mismatch gibi kodlar kullanır.

Oyuncuların kaydetmek için giriş yapmış olması gerekir. Oyuncuların yayınladıklarını diğer kullanıcı içerikleri gibi gözden geçir: PlayDrop’un içerik politikası bunlar için de geçerlidir.

Bağlayıcının kabul ettikleri

Yalnızca veri içeren özel asset’ler ve spesifikasyonlar diğer dosyalar gibi yüklenir. Çalıştırılabilir modeller, yani procedural alt kategorisine veya CUSTOM biçimine sahip MODEL_3D asset’leri, API yapımcı kodunu çalıştırmadığı için bağlayıcı tarafından reddedilir; bunları sabit bir biçime dönüştür ya da yayınlanmış bir sürüme referans ver. Bkz. oyun asset’leri.

İlgili kılavuzlar

  • Oyun asset’leriOyununla görsel, ses, video ve 3D gönder: dahil dosyalar, oyunun asset’leri, herkese açık asset’ler ve paketler, sdk.assets ile çalışma zamanında bulma.
  • catalogue.jsonPlayDrop oyunlarının kullandığı catalogue.json alanları: kimlik, oyun sayfası, oynanış modları, yüzeyler, giriş, Instant, ön yükleme, medya, çeviriler, skorlar ve sunucular.
  • İstemci SDK’sıPlayDrop tarayıcı SDK’sı: yaşam döngüsü, kimlik ve kayıtlar, kumandalar, sosyal, çok oyunculu, mağaza, reklamlar, liderlik tabloları, asset’ler ve yapay zeka.
ÖncekiPlayDrop oyunları için yapay zekayla asset üretimiSonrakiPlayDrop istemci SDK’sı başvurusu
Markdown’ı gör
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

Bu sayfada

Bir asset spesifikasyonu tanımlaOyunun neyi desteklediğini bildirOyuncu yapımlarını kaydet ve yükleBağlayıcının kabul ettikleri
Markdown’ı gör