PlayDrop
PlayDrop yüklenemedi

Sayfanın gerekli bir bölümü indirilemedi. Yeniden yüklemeyi dene.

STYLESHEET_ERROR
PlayDrop logoPlayDrop Studio
OluşturPlayTradeKazanÖğrenBağlayıcılarToplulukDestek
İstemci SDK’sı
Belgeler

Buradan başla

Genel bakışİlk oyunun

Cloud ile oluştur

Cloud ile oluşturmaYayınla ve içe aktarPlanlar ve üretimlerKrediler ve ödüller

Ajanını bağla

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

Teknik referans

Oyun dosyalarıcatalogue.jsonİstemci SDK’sıSunucu SDK’sıSorun gidermeSSS
Belgelerİstemci SDK’sı
Teknik referans

Tarayıcı oyunları için PlayDrop istemci SDK’sı

Her PlayDrop oyunu için isteğe bağlı SDK: giriş, kayıtlar, liderlik tabloları, satın alımlar, reklamlar, arkadaşlar, kumandalar ve çok oyunculu mod.

PlayDrop SDK’sı isteğe bağlıdır: SDK’sız oyunlar da PlayDrop’ta oynanır. Oyuncu girişi, kayıtlar, başarımlar ve liderlik tabloları, kredilerle satın alımlar, reklamlar, arkadaşlar ve PlayDrop Sohbet’teki oyun kartları, paylaşım bağlantıları, ana uygulamanın yönettiği duraklatma ve ses, kumanda girdisi, barındırılan çok oyunculu mod ve yapay zeka üretimi gibi platform özellikleri için ekle. PlayDrop Cloud bunu senin için entegre eder; PlayDrop Connector ile ajanın tek bir script etiketi ekler.

SDK’yı ekle ve ana uygulamanın yaşam döngüsünü izle

html
<script src="https://assets.playdrop.ai/sdk/playdrop.js"></script>
<script type="module">
  const sdk = await playdrop.init();
  // Render the game and prepare input, then:
  sdk.host.ready();
  sdk.host.onPause(() => pauseGame());
  sdk.host.onResume(() => resumeGame());
  sdk.host.onAudioPolicyChange(({ enabled }) => setAudioEnabled(enabled));
</script>

SDK’yı PlayDrop’un CDN’inden yükle; paket kurmaya gerek yok. sdk.host.ready() çağırmadan önce ilk oynanabilir kareyi çiz ve girdiyi hazırla. Ana uygulama duraklatınca simülasyonu duraklat, çift döngü oluşturmadan devam et ve ana uygulamanın ses politikasını izle.

Kimlik, kayıtlar ve dil

sdk.me oyuncu kimliğini sunar ve sdk.me.appData özel kayıtları saklar; sdk.achievements ve sdk.leaderboards başarımları ve skorları yönetir. Kayıtlar, başarımlar ve liderlik tabloları giriş ön kontrolü olmadan çalışır. Satın alımlar veya çok oyunculu mod gibi gerçek bir hesap gerektiren özellikler için sdk.me.isLoggedIn kullan. Önizleme ve yakalama modları oyuncu ilerlemesi yazmamalıdır. sdk.host.language oyuncunun dilini verir: İngilizceyi ve farklıysa kendi dilini de sun. Bir oyun sayfasını çevirmek oyun içeriğini çevirmez. Bir galibiyet gibi doğal bir aradan sonra sdk.host.requestReview(), PlayDrop’un oyuncudan oyun başına en fazla bir kez inceleme istemesini sağlar; oyunun yanıtı asla öğrenmez, bu yüzden bunu ödüllendirme.

Kütüphaneler, asset’ler ve çok oyunculu mod

sdk.libs, desteklenen Three.js, Phaser, Rapier, nipplejs ve Colyseus sürümlerini yükler. sdk.assets katalog, paket ve asset referansları sağlar; sdk.social arkadaşları, oyun kartlarını ve paylaşım eylemlerini sağlar. Barındırılan çok oyunculu mod için sdk.multiplayer.getConnection() sunucu adresini ve giriş yapmış oyuncunun jetonunu döndürür; Colyseus istemcisiyle katıl. Barındırılan sunucuları sunucu SDK’sı sayfası kapsar; kendi çalıştırdığın bir sunucu SDK’dan hiçbir şeye ihtiyaç duymaz. Eski relay oda API’leri kullanımdan kaldırıldı.

Yayınlamadan önce SDK ile test et

Her zamanki geliştirme sunucunu çalıştır ve oyunu SDK ana uygulamasıyla gerçek PlayDrop çerçevesinde oynamak için Chrome’da https://www.playdrop.ai/creators/<username>/apps/game/<slug>/dev?url=http://localhost:5173/ adresini aç. Herhangi bir localhost portu ya da https URL’si çalışır. Kayıtlar ve satın alımlar gibi hesap gerektiren özellikler, oyun bir kez yüklendikten sonra çalışır; özel bir yükleme yeterlidir. Tarayıcıda medya üretimi, ana uygulamanın onayladığı kredi maliyetiyle eşzamansız işler olarak çalışır. Oyun sayfası meta verileri için catalogue.json sayfasına bak.

Birlikte oyna

Oynanış aşamasında await sdk.multiplayer.join("game") kullan. Bağımsız olarak katılır ya da ana uygulamanın parti rezervasyonunu kullanır. Bir parti hatası, oyuncuları sessizce başka bir odaya bölmek yerine reddedilir. getConnection(), mevcut oyunlar için anlık bağlantı ayrıntıları API’si olarak kalır. Turlar boyunca aynı odayı koru ve ana uygulama katmanları oyun girdisini duraklatırken ağı canlı tut.

Ana uygulamanın parti penceresini açmak için bir oyuncu eyleminden sdk.social.openParty() kullan. Üyeliği await sdk.social.getParty() ya da sdk.social.onPartyChange(callback) ile oku. Oyunlar platform partilerini değiştiremez ya da mikrofonları kontrol edemez. Parti ve oda sesli sohbeti web/yerel ana uygulamada yaşar ve oyuncunun onayına, sessize almasına, engellemelerine ve kullanıma açılma uygunluğuna tabidir.

Akıcı oda oynatımı için, sonlu { x, y, z } vektörleri kullanarak sdk.multiplayer.voice.updateSpatialState({ listener: { position, forward, up }, speakers: [{ userId, position }] }) çağır. İpuçları ses seviyesini ve panoramayı etkiler, yetkilendirmeyi asla. Sunucu takımları ve yakınlık uygunluğunu uygular.

Seçili yerel kumanda yuvaları { playerIndex, gamepadKey } için sdk.device.localPlayers ve sdk.device.onLocalPlayersChange(callback) kullan. Bağlı kumanda envanteri ayrıdır; bağlantısı kopan bir yuva kimliğini korur. Yerel mod çevrimiçi odalara katılamaz. Kopyalanabilir playdrop-metagame/recipes/play-together tarifi her iki modu, iki hedefi ve oda politikalarını gösterir.

Kumandalar

Fiziksel kumandaları ve PlayDrop telefon kumandalarını her platformda aynı şekilde sdk.device üzerinden oku. init() sonrasında enableControllerInput() fonksiyonunu bir kez çağır, oyun döngüsünde gamepad(playerIndex) oku (0, P1’dir) ve basma ile bırakma için onButton kullan. Eksenler ve düğmeler tarayıcının standart gamepad sırasını izler; düğmelerin south ve east gibi konumsal adları vardır ve pad.label("south") o kumanda için gösterilecek ifadeyi döndürür; örneğin "A" veya "Cross". Menü PlayDrop’a aittir ve oyunu duraklatır.

js
await sdk.device.enableControllerInput();
const stop = sdk.device.onButton(({ playerIndex, button, pressed }) => {
  if (button === "south" && pressed) jump(playerIndex);
});
function update() {
  const pad = sdk.device.gamepad(0);
  if (pad?.connected) move(pad.axes[0], pad.axes[1]);
  requestAnimationFrame(update);
}
update();

navigator.getGamepads() çağırma: telefon kumandaları oyunlara yalnızca SDK üzerinden ulaşır ve bir oyun tarayıcı API’sini doğrudan okuduğunda PlayDrop uyarı kaydeder. Ana uygulama kumanda girdisi sağlayamazsa enableControllerInput(), controller_input_unavailable veya controller_input_timeout ile reddedilir ve oyun çalışmaya devam eder. pad.has("dpad") bir kontrolün var olup olmadığını söyler; oyununun ihtiyaç duyduğu kontrolleri catalogue.json içinde bildir.

Öncekicatalogue.json: PlayDrop oyun meta verileri ve yerelleştirmeSonrakiPlayDrop oyun sunucuları: Colyseus, MongoDB ve sunucu SDK’sı
Markdown’ı gör
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

Bu sayfada

SDK’yı ekle ve ana uygulamanın yaşam döngüsünü izleKimlik, kayıtlar ve dilKütüphaneler, asset’ler ve çok oyunculu modYayınlamadan önce SDK ile test etBirlikte oynaKumandalar
Markdown’ı gör