PlayDrop logoPlayDrop Studio
TwórzWymiana rozgrywekZdobywajUcz sięKonektoryZasobySpołecznośćWsparcie
PlayDrop logoPlayDrop Studio
TwórzWymiana rozgrywekZdobywajUcz sięKonektoryZasobySpołecznośćWsparcie
Zaloguj się
Serwery czasu rzeczywistego
Dokumentacja

Zacznij tutaj

PrzeglądTwoja pierwsza graGry PlayDropFAQ

Twórz z Cloud

Tworzenie w CloudPlany i generowania

Połącz swoją aplikację AI

Wszystkie konektoryClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Publikuj i udostępniaj

Publikuj z aplikacji AIProste gry HTMLPakowanie i .playPublikowanie i importPliki gryWidoczność i zasięgGrafika i wideo strony gryGatunki i tagiLokalizacjaGry Instant

Wrażenia z gry

Ładowanie, pauza i dźwiękPełny ekran i bezpieczne obszaryZapisy w chmurzeGrupy lokalne i kontrolery

Wspólna gra

Udostępnianie, znajomi i zaproszeniaRankingiOsiągnięciaGrupy online i głosSerwery czasu rzeczywistego

Zarabiaj

ZarabianieKredyty i nagrody

Zasoby

Zasoby gryGenerowanie zasobów z AIWłasne formaty i twórczość graczy

Dokumentacja techniczna

SDK klientaSDK serweracatalogue.jsonBłędy i odzyskiwanieRozwiązywanie problemów
DokumentacjaSerwery czasu rzeczywistego
Wspólna gra

Serwery gier czasu rzeczywistego w PlayDrop: Colyseus i MongoDB

Uruchom hostowany serwer Colyseus 0.17 z bazą MongoDB dla swojej gry, łącz się z przeglądarki przez SDK, testuj z dwoma graczami i poznaj limity.

PlayDrop może hostować serwerową część twojej gry: standardowy serwer Colyseus z własną bazą danych MongoDB, zweryfikowanymi graczami i bez infrastruktury do utrzymywania. Używaj go do meczów w czasie rzeczywistym, gier turowych, wspólnych światów i wszystkiego, w czym gracz nie powinien móc oszukiwać. Serwer jest opcjonalny; twoja gra może też wywoływać serwer, który hostujesz sam.

Napisz serwer

Wyeksportuj mapę rooms z jednego modułu ES. PlayDrop sam uruchamia serwer; nie wywołuj listen() ani nie definiuj onAuth, ponieważ PlayDrop weryfikuje każdego gracza przed onJoin.

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

class GameRoom extends Room {
  maxClients = 8;
  async onCreate() {
    this.mongo = new MongoClient(process.env.PLAYDROP_MONGO_URL);
    await this.mongo.connect();
    this.onMessage("move", (client, move) => this.applyMove(client.auth.userId, move));
  }
  onJoin(client) {
    // client.auth is the verified PlayDrop player: userId, username, appRole, isTestPlayer…
  }
  async onDispose() { await this.mongo?.close(); }
}

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

Łącz się z MongoDB w cyklu życia pokoju, nigdy na poziomie modułu: PLAYDROP_MONGO_URL istnieje tylko w czasie działania. Utwórz indeksy dla swoich zapytań.

Zadeklaruj go

Spakuj serwer do jednego pliku i wskaż go w katalogu:

json
{ "server": { "entry": "server/index.mjs", "rooms": ["game"] } }

Prześlij go w pakiecie; gra przesłana jako prosty plik HTML nie może mieć serwera.

Zasady hostowanego środowiska

  • Colyseus 0.17 (colyseus 0.17.10, @colyseus/schema 4.0.30), sterownik MongoDB 7.5, na Node.js 24.22.1.
  • Jeden samodzielny moduł ES o rozmiarze najwyżej 2 MiB. Może importować tylko colyseus, @colyseus/core, @colyseus/schema, mongodb i @playdrop/server; resztę spakuj do pliku.
  • Do 2 typów pokoi, 8 graczy w pokoju, 4 godziny na pokój, 30 wiadomości na sekundę na gracza i 512 KiB na wiadomość.
  • Brak dostępu do internetu: osiągalne są tylko MongoDB i usługi PlayDrop.
  • Gracze muszą być zalogowani.
  • Jedna baza danych na grę, zachowywana między wersjami i wliczana do miejsca twórcy. Nigdy nie wysyłaj jej adresu ani danych uwierzytelniających do przeglądarki.

Połącz się z przeglądarki

js
const sdk = await playdrop.init();
const room = await sdk.multiplayer.join("game");
room.onStateChange((state) => render(state));
room.send("move", { x: 1 });

join obsługuje miejsca w grupach PlayDrop i logowanie; zobacz grupy online. Jeśli potrzebujesz kontroli na niższym poziomie, sdk.multiplayer.getConnection() zwraca { endpoint, token, expiresAt } dla oficjalnego klienta Colyseus z sdk.libs.colyseus.load().

SDK serwera

@playdrop/server dodaje zaufane wywołania platformy: znajomych i karty gier (playdrop.social), weryfikację zakupów (playdrop.shop), generowanie z AI opłacane przez twórcę (playdrop.ai) i głos pokoju (playdrop.multiplayer.forRoom). Działają tylko w przesłanych grach. Zobacz dokumentację SDK serwera.

Testuj

Podczas tworzenia uruchom lokalnie Colyseus 0.17 i MongoDB i połącz lokalnego klienta z lokalnym serwerem. Aby przetestować hostowany serwer, prześlij wersję prywatną i otwórz https://www.playdrop.ai/create/games/<slug>/test?v=<version>&player=1, a potem ten sam link z player=2 w drugim oknie. Każde okno gra jako osobny twój gracz testowy. Gdy wszystko działa, opublikuj przetestowaną wersję przez publish_game_version.

Projektuj z myślą o rozłączeniach: mechanizm ponownego łączenia Colyseus zachowuje miejsce gracza przez krótki czas, a stan pokoju powinien pozwolić powracającemu graczowi grać dalej.

Powiązane poradniki

  • Grupy online i głosPozwól znajomym grać razem online: zadeklaruj rozmiary grup, otwórz okno grupy, dołączaj do zarezerwowanych pokoi przez sdk.multiplayer.join i steruj głosem.
  • SDK serweraSerwery gier hostowane przez PlayDrop: zasady środowiska, zweryfikowany PlayDropPlayer oraz playdrop.social, playdrop.shop, playdrop.ai i playdrop.multiplayer.
  • Pakowanie i .playZbudowana gra w folderze, ZIP lub .play z catalogue.json w katalogu głównym: media strony gry, serwery i przesyłanie przez prepare_catalogue_upload.
PoprzedniGrupy online i czat głosowy w grach PlayDropNastępnyRecenzje, napiwki, zakupy w grze i reklamy w grach PlayDrop
Pokaż Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

Na tej stronie

Napisz serwerZadeklaruj goZasady hostowanego środowiskaPołącz się z przeglądarkiSDK serweraTestuj
Pokaż Markdown