PlayDrop ゲームサーバー:Colyseus、MongoDB、サーバー SDK
PlayDrop ゲーム向けの任意のホスト型マルチプレイヤー:MongoDB ストレージ付きの Colyseus server.js をアップロードしてテストプレイヤーで試し、フレンドや AI には任意のサーバー SDK を使用できます。
ゲームサーバーは任意です。ゲームからは、自前で運用する任意のサーバーを呼び出せます。必要であれば、PlayDrop がゲーム用に MongoDB データベース付きの標準的な Colyseus サーバーをホストします。PlayDrop Connector で index.html と同じ場所に server.js としてアップロードするか、PlayDrop Cloud に作成を依頼してください。@playdrop/server パッケージも任意です。
標準的な Colyseus サーバーを書く
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) };server.js から rooms マップをエクスポートし、そのルーム名を catalogue.json に "server": { "rooms": ["game"] } のように記載します。サーバーは PlayDrop が起動するため、自分で起動しないでください。データは、ルームのライフサイクル内で、PLAYDROP_MONGO_URL を通じて標準の MongoDB ドライバーで保存します。
ホスト型サーバーのルール
- Colyseus 0.17(
colyseus0.17.10、@colyseus/schema4.0.30)、MongoDB ドライバー 7.5、Node 22。 - 最大 2 MiB の自己完結型 ES モジュール 1 つ。インポートできるのは
colyseus、@colyseus/core、@colyseus/schema、mongodb、@playdrop/serverのみです。その他のコードはファイルにバンドルしてください。 - ルームタイプは最大 2 種類、1 ルームあたり 8 人、1 ルームあたり 4 時間、プレイヤー 1 人あたり毎秒 30 メッセージ、1 メッセージあたり 512 KiB まで。
- サーバーからインターネットにはアクセスできません。到達できるのは MongoDB と PlayDrop のサービスのみです。
- プレイヤーはサインインしている必要があります。PlayDrop が参加時に各プレイヤーを検証するため、
onAuthは実装しないでください。 - MongoDB データベースはゲームごとに 1 つで、バージョンをまたいで保持され、ストレージ容量にカウントされます。その認証情報は決してブラウザに送信しないでください。
ブラウザを接続してテストする
ブラウザでは、クライアント SDK の sdk.multiplayer.getConnection() がサーバーのアドレスとプレイヤーのトークンを返します。Colyseus クライアント(@colyseus/sdk 0.17)で参加してください。開発中は、Colyseus 0.17 と MongoDB 8 をローカルで実行し、ローカルサーバーに直接接続します。ホスト型サーバーをテストするには、非公開バージョンをアップロードしてから https://www.playdrop.ai/create/games/<slug>/test?v=<version>&player=1 を開き、2 つ目のウィンドウで同じリンクを player=2 にして開きます。各ウィンドウは別々のテストアカウントとしてプレイします。動作を確認したら、ゲームページからそのバージョンを公開してください。
任意のサーバー SDK:フレンドと AI
@playdrop/server は、playdrop.social(このゲームをプレイしているフレンドと、PlayDrop Chat のゲームカード)と playdrop.ai(クリエイターが費用を負担するテキスト、画像、3D、動画、効果音、音声、音楽の生成)を追加します。これらの呼び出しはアップロード済みのゲームでのみ動作し、ローカル開発では動作しません。非公開の生成メディアはサーバー上で playdrop.ai.tasks.downloadFile を使ってダウンロードし、そのバイトデータは対象のプレイヤーにのみ送信してください。音声生成リクエストで受け付けるのは最大 40 語までです。