PlayDrop
PlayDrop tidak dapat dimuat

Bagian halaman yang diperlukan gagal diunduh. Coba muat ulang.

STYLESHEET_ERROR
PlayDrop logoPlayDrop Studio
BuatPlayTradeHasilkanBelajarKonektorKomunitasBantuan
SDK server
Dokumentasi

Mulai di sini

RingkasanGame pertamamu

Buat dengan Cloud

Pembuatan CloudPublikasi & imporPaket & generasiKredit & hadiah

Hubungkan agen

Semua konektorClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Referensi teknis

Berkas gamecatalogue.jsonSDK klienSDK serverPemecahan masalahFAQ
DokumentasiSDK server
Referensi teknis

Server game PlayDrop: Colyseus, MongoDB, dan SDK server

Multiplayer yang di-hosting secara opsional untuk game PlayDrop: unggah server.js Colyseus dengan penyimpanan MongoDB, uji dengan pemain uji, dan gunakan SDK server opsional untuk fitur teman dan AI.

Server game bersifat opsional. Game Anda dapat memanggil server apa pun yang Anda jalankan sendiri. Jika mau, PlayDrop dapat meng-hosting server Colyseus standar dengan database MongoDB untuk game Anda: unggah sebagai server.js di samping index.html melalui PlayDrop Connector, atau minta PlayDrop Cloud untuk membuatnya. Paket @playdrop/server juga opsional.

Tulis server Colyseus standar

js
import { Room, defineRoom } from "colyseus";
import { MongoClient } from "mongodb";

class GameRoom extends Room {
  async onCreate() {
    this.mongo = new MongoClient(process.env.PLAYDROP_MONGO_URL);
    await this.mongo.connect();
  }
  onJoin(client) {
    // client.auth is the verified PlayDrop player, for example client.auth.userId.
  }
  async onDispose() { await this.mongo?.close(); }
}

export const rooms = { game: defineRoom(GameRoom) };

Ekspor map rooms dari server.js dan cantumkan nama room-nya di catalogue.json sebagai "server": { "rooms": ["game"] }. PlayDrop yang menjalankan server, jadi jangan memulai server sendiri. Simpan data dengan driver MongoDB standar melalui PLAYDROP_MONGO_URL, di dalam siklus hidup room.

Aturan server yang di-hosting

  • Colyseus 0.17 (colyseus 0.17.10, @colyseus/schema 4.0.30), driver MongoDB 7.5, dan Node 22.
  • Satu modul ES mandiri berukuran maksimal 2 MiB. Modul hanya boleh mengimpor colyseus, @colyseus/core, @colyseus/schema, mongodb, dan @playdrop/server; bundel kode lainnya ke dalam file tersebut.
  • Maksimal 2 jenis room, 8 pemain per room, 4 jam per room, 30 pesan per detik per pemain, dan 512 KiB per pesan.
  • Server tidak memiliki akses internet: hanya MongoDB dan layanan PlayDrop yang dapat dijangkau.
  • Pemain harus login. PlayDrop memverifikasi setiap pemain saat bergabung; jangan mengimplementasikan onAuth.
  • Satu database MongoDB per game, dipertahankan di semua versi dan dihitung dalam kuota penyimpanan Anda. Jangan pernah mengirim kredensialnya ke browser.

Hubungkan browser dan uji

Di browser, sdk.multiplayer.getConnection() dari SDK klien mengembalikan alamat server dan token pemain; bergabunglah dengan klien Colyseus (@colyseus/sdk 0.17). Selama pengembangan, jalankan Colyseus 0.17 dan MongoDB 8 secara lokal, lalu hubungkan langsung ke server lokal Anda. Untuk menguji server yang di-hosting, unggah versi privat, lalu buka https://www.playdrop.ai/create/games/<slug>/test?v=<version>&player=1 dan tautan yang sama dengan player=2 di jendela kedua: setiap jendela bermain sebagai akun uji yang berbeda. Setelah berfungsi, jadikan versi tersebut publik dari halaman game.

SDK server opsional: teman dan AI

@playdrop/server menambahkan playdrop.social (teman yang memainkan game ini dan kartu game di PlayDrop Chat) dan playdrop.ai (pembuatan teks, gambar, 3D, video, efek suara, ucapan, dan musik yang dibayar oleh kreator). Panggilan ini hanya berfungsi pada game yang sudah diunggah, tidak dalam pengembangan lokal. Di server, unduh media privat yang dihasilkan dengan playdrop.ai.tasks.downloadFile, lalu kirimkan byte-nya hanya ke pemain yang dituju; permintaan ucapan menerima maksimal 40 kata.

Suara grup dan ruang

await playdrop.social.getParty(client.auth) membaca keanggotaan grup yang saat ini diizinkan. Panggilan ini tidak mengungkap percakapan grup atau aktivitas di game lain, dan tidak memberikan hak pengelolaan grup. API sosial yang ada tetap berperilaku sama.

Katalog yang mendeklarasikan roomVoice: true dimulai dengan kebijakan untuk seluruh ruang; pengaturan bawaan ini tidak memerlukan panggilan server. Untuk menyesuaikannya, ikat const platform = playdrop.multiplayer.forRoom(this) ke ruang Colyseus yang sebenarnya. Gunakan platform.voice.setPolicy("all" | "team" | "proximity" | "off", { range: 20 }), setTeam(client.auth, teamId), setAudience(client.auth, audience) dan updatePositions([{ player: client.auth, position: { x, y, z } }]). Berikan null untuk menghapus tim atau pengaturan khusus pemain. Kedekatan memerlukan posisi terbaru yang ditetapkan server sebagai sumber kebenaran.

Runtime tepercaya menggabungkan perubahan kelayakan, memesan tempat bagi pengikut grup yang diterima setelah pemimpin bergabung melalui alur biasa, dan membersihkan izin. Game tidak pernah mengirim audio, kredensial penyedia, atau permintaan mikrofon. Pertahankan ruang yang sama antar ronde. Gunakan Test Players privat yang sudah ada dengan kreator yang memenuhi syarat untuk menguji integrasi sebelum publikasi; publikasi saja tidak mengaktifkan peluncuran fitur.

SebelumnyaSDK klien PlayDrop untuk game browserBerikutnyaAtasi masalah pembuatan dan penerbitan PlayDrop Cloud
Lihat Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

Di halaman ini

Tulis server Colyseus standarAturan server yang di-hostingHubungkan browser dan ujiSDK server opsional: teman dan AISuara grup dan ruang
Lihat Markdown