PlayDropin pelipalvelimet: Colyseus, MongoDB ja server SDK
Valinnainen isännöity moninpeli: lataa Colyseus-tiedosto server.js MongoDB:llä, testaa Test Players -pelaajilla ja käytä server SDK:ta ystäviin ja tekoälyyn.
Pelipalvelin on valinnainen. Pelisi voi kutsua mitä tahansa itse ylläpitämääsi palvelinta. Jos haluat, PlayDrop isännöi pelillesi tavallista Colyseus-palvelinta MongoDB-tietokannalla: lataa se tiedostona server.js tiedoston index.html viereen PlayDrop Connectorin kautta tai pyydä PlayDrop Cloudia rakentamaan se. Myös @playdrop/server-paketti on valinnainen.
Kirjoita tavallinen Colyseus-palvelin
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) };Vie rooms-kartta tiedostosta server.js ja luettele sen huoneiden nimet tiedostossa catalogue.json muodossa "server": { "rooms": ["game"] }. PlayDrop ajaa palvelimen, joten älä käynnistä sitä itse. Tallenna tiedot tavallisella MongoDB-ajurilla PLAYDROP_MONGO_URL-osoitteen kautta huoneen elinkaaren sisällä.
Isännöidyn palvelimen säännöt
- Colyseus 0.17 (
colyseus0.17.10,@colyseus/schema4.0.30), MongoDB-ajuri 7.5 ja Node 22. - Yksi itsenäinen ES-moduuli, enintään 2 MiB. Se saa tuoda vain
colyseus,@colyseus/core,@colyseus/schema,mongodbja@playdrop/server; niputa kaikki muu koodi tiedostoon. - Enintään 2 huonetyyppiä, 8 pelaajaa huonetta kohden, 4 tuntia huonetta kohden, 30 viestiä sekunnissa pelaajaa kohden ja 512 KiB viestiä kohden.
- Palvelimelta ei ole internet-yhteyttä: vain MongoDB ja PlayDrop-palvelut ovat tavoitettavissa.
- Pelaajien on oltava kirjautuneita. PlayDrop varmentaa jokaisen pelaajan liittyessä; älä toteuta
onAuth-funktiota. - Yksi MongoDB-tietokanta per peli, säilytetään versioiden yli ja lasketaan tallennuskiintiöösi. Älä koskaan lähetä sen tunnuksia selaimelle.
Yhdistä selain ja testaa
Selaimessa sdk.multiplayer.getConnection() client SDK:sta palauttaa palvelimen osoitteen ja pelaajan tunnisteen; liity Colyseus-clientillä (@colyseus/sdk 0.17). Kehityksen aikana aja Colyseus 0.17 ja MongoDB 8 paikallisesti ja yhdistä suoraan paikalliseen palvelimeesi. Testataksesi isännöityä palvelinta lataa yksityinen versio ja avaa sitten https://www.playdrop.ai/create/games/<slug>/test?v=<version>&player=1 sekä sama linkki arvolla player=2 toisessa ikkunassa: kukin ikkuna pelaa erillisenä testitilinä. Tee versiosta julkinen pelisivulta, kun se toimii.
Valinnainen server SDK: ystävät ja tekoäly
@playdrop/server lisää playdrop.social (tätä peliä pelaavat ystävät ja pelikortit PlayDrop Chatissa) ja playdrop.ai (teksti-, kuva-, 3D-, video-, ääni-, puhe- ja musiikkigenerointi, jonka maksaa tekijä). Nämä kutsut toimivat vain ladatuissa peleissä, eivät paikallisessa kehityksessä. Lataa yksityinen luotu media palvelimella komennolla playdrop.ai.tasks.downloadFile ja lähetä tavut vain aiotulle pelaajalle; puhepyynnöt hyväksyvät enintään 40 sanaa.
Ryhmä ja huoneen puhe
await playdrop.social.getParty(client.auth) lukee tällä hetkellä valtuutetun ryhmän jäsenyyden. Se ei paljasta ryhmächattia tai muun pelin toimintaa eikä anna ryhmän hallintaoikeutta. Olemassa olevat sosiaaliset rajapinnat säilyttävät toimintansa.
Katalogi, joka ilmoittaa roomVoice: true, alkaa koko huoneen käytännöllä; sitä varten ei tarvita palvelinkutsua. Mukauttaaksesi sitä sido const platform = playdrop.multiplayer.forRoom(this) varsinaiseen Colyseus-huoneeseen. Käytä platform.voice.setPolicy("all" | "team" | "proximity" | "off", { range: 20 }), setTeam(client.auth, teamId), setAudience(client.auth, audience) ja updatePositions([{ player: client.auth, position: { x, y, z } }]). Anna null tyhjentääksesi tiimin tai pelaajan ohituksen. Läheisyys vaatii tuoreet auktoritatiiviset sijainnit.
Luotettu ajoympäristö yhdistää kelpoisuusmuutokset, varaa hyväksytyt ryhmän seuraajat johtajan tavallisen liittymisen jälkeen ja siivoaa oikeudet. Pelit eivät koskaan lähetä ääntä, palveluntarjoajan tunnuksia tai mikrofonipyyntöjä. Pidä sama huone kierrosten yli. Käytä olemassa olevia yksityisiä Test Players -pelaajia kelpoisen tekijän kanssa testataksesi integraation ennen julkaisua; pelkkä julkaisu ei ota käyttöönottoa käyttöön.