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
Bulut kayıtları
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
BelgelerBulut kayıtları
Oyun deneyimi

PlayDrop oyunları için bulut kayıtları

İlerlemeyi sdk.me.appData ve sdk.me.updateAppData ile kaydet ve yükle; misafirler ve giriş yapmış oyuncular için yazma, önizleme ve çevrimdışı kuralları.

Bulut kayıtları her oyuncunun oyunundaki ilerlemesini PlayDrop’ta saklar; böylece ilerleme web sitesinden uygulamalara kadar oyuncuyla gelir. Her oyuncu ve oyun için bir JSON nesnesi saklanır; sunucuya ya da çok oyunculu odaya gerek yoktur.

Oku ve yaz

init() sonrasında sdk.me.appData kaydedilmiş anlık görüntüdür: { data, seq, ts_event, ts_arrival } ya da ilk kayıttan önce null. Nesneni data içinden oku. Nesnenin tamamını, kaydedilen anlık görüntüyü döndüren ve sdk.me.appData değerini güncelleyen updateAppData ile yaz.

js
const sdk = await playdrop.init();
let progress = { level: 1, coins: 0, ...(sdk.me.appData?.data ?? {}) };
let queue = Promise.resolve();

// Resolves with the saved snapshot; rejects when the save failed.
function save(changes) {
  progress = { ...progress, ...changes };
  const snapshot = { ...progress };
  const attempt = queue.then(() => sdk.me.updateAppData(snapshot));
  queue = attempt.catch(() => {}); // a failed save must not block the next one
  return attempt;
}

try {
  await save({ level: 2 });
  showSaved();
} catch (error) {
  showSaveError(); // progress stays in memory; the next save sends it again
}
  • Her yazma işlemi kaydedilmiş nesnenin tamamını değiştirir: hâlâ ihtiyaç duyduğun her alanı koru.
  • Yazma işlemlerini yukarıdaki gibi sıraya koy; böylece eski bir kayıt asla yenisinden sonra gelmez. Bir hatadan sonra da kuyruğu sürdür.
  • “Kaydedildi” mesajını yalnızca promise tamamlandıktan sonra göster. appData.data değerini bellekte değiştirmek hiçbir şeyi kaydetmez.
  • appData nesnesinin get, set veya save metotları yoktur.

Ne zaman kaydetmeli

Her karede değil; kontrol noktalarında, seviye sonlarında ve satın alımlarda kaydet. Önizlemeler ya da görüntü yakalamaları sırasında asla kaydetme: yalnızca sdk.host.phase değeri play olduğunda yaz. Kaydı küçük tut ve saveVersion: 2 gibi kendi alanınla sürümle; böylece oyunun sonraki bir sürümü onu taşıyabilir.

Misafirler ve giriş yapmış oyuncular

Kaydetmeden önce sdk.me.isLoggedIn kontrolüne gerek yok: PlayDrop misafirleri de kayıtlarını korur. Hiç oturumu olmayan bir oyuncu kaydı o ziyaret boyunca bellekte tutar; yani tamamlanan bir yazma işlemi kaydın buluta ulaştığını kanıtlamaz. isLoggedIn değerini yalnızca satın alımlar ve barındırılan çok oyunculu mod gibi gerçek hesap gerektiren özellikler için kullan.

Çevrimdışı

Tarayıcıda kayıtlar bağlantı gerektirir ve çevrimdışı kuyruk yoktur: hata olursa oynamaya devam et ve bir sonraki kontrol noktasında tekrar dene. Çevrimdışı çalışabilen PlayDrop uygulamaları gibi cihaz verisi desteği bildiren ana uygulamalar kayıtları cihazda tutar ve çevrimiçi olunca eşitler.

Kayıtlar ne değildir

Kayıtlar tek bir oyuncuya ve tek bir oyuna özeldir. Kendi API’leri olan ve PlayDrop’ta görünen liderlik tablolarından ve başarımlardan ayrıdır. Bir maç ya da dünya gibi oyuncular arasında paylaşılan durum, oyununun MongoDB koleksiyonlarında, bir oyun sunucusunda tutulur.

Test et

Kayıtlar yüklenmiş bir oyuna aittir. En az bir kez özel bir sürüm yükle, sonra makbuzdaki url adresinden ya da yapay zeka uygulamandan yayınlama kılavuzunda anlatılan yerel Dev çerçevesinden test et.

İlgili kılavuzlar

  • Liderlik tablolarıcatalogue.json’da liderlik tabloları tanımla, sdk.leaderboards ile puan gönder, en iyileri ve oyuncunun komşularını göster. Puan türleri, sınırlar ve kurallar.
  • Başarımlarcatalogue.json içinde simgeli standart ve artımlı başarımlar tanımla, bunları aç ve ilerlemeyi sdk.achievements ile bildir.
  • Gerçek zamanlı oyun sunucularıOyunun için MongoDB veritabanlı, barındırılan bir Colyseus 0.17 sunucusu çalıştır, tarayıcıdan SDK ile bağlan, iki oyuncuyla test et ve sınırları öğren.
ÖncekiPlayDrop oyunları için tam ekran, güvenli alanlar ve HUD köşeleriSonrakiPlayDrop oyunlarında yerel parti, fiziksel ve telefon kumandaları
Markdown’ı gör
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

Bu sayfada

Oku ve yazNe zaman kaydetmeliMisafirler ve giriş yapmış oyuncularÇevrimdışıKayıtlar ne değildirTest et
Markdown’ı gör