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
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 (
colyseus0.17.10,@colyseus/schema4.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.