PlayDrop
โหลด PlayDrop ไม่ได้

ดาวน์โหลดส่วนที่จำเป็นของหน้าไม่สำเร็จ ลองโหลดอีกครั้ง

STYLESHEET_ERROR
PlayDrop logoPlayDrop Studio
PlayDrop logoPlayDrop Studio
สร้างPlayTradeหารายได้เรียนรู้คอนเนกเตอร์ชุมชนซัพพอร์ต
SDK ฝั่งเซิร์ฟเวอร์
เอกสาร

เริ่มต้นที่นี่

ภาพรวมเกมแรกของคุณ

สร้างด้วย Cloud

การสร้างด้วย Cloudเผยแพร่และนำเข้าแพ็กเกจและการสร้างเครดิตและรางวัล

เชื่อมต่อเอเจนต์ของคุณ

คอนเนกเตอร์ทั้งหมดClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

เอกสารอ้างอิงทางเทคนิค

ไฟล์เกมcatalogue.jsonSDK ฝั่งไคลเอนต์SDK ฝั่งเซิร์ฟเวอร์การแก้ไขปัญหาFAQ
เอกสารSDK ฝั่งเซิร์ฟเวอร์
เอกสารอ้างอิงทางเทคนิค

เซิร์ฟเวอร์เกม PlayDrop: Colyseus, MongoDB และ SDK

ผู้เล่นหลายคนที่โฮสต์ให้แบบไม่บังคับ: อัปโหลด server.js ของ Colyseus พร้อม MongoDB ทดสอบด้วยผู้เล่นทดสอบ และใช้ SDK ฝั่งเซิร์ฟเวอร์สำหรับเพื่อนและ AI

เซิร์ฟเวอร์เกมไม่บังคับ เกมของคุณเรียกเซิร์ฟเวอร์ใดๆ ที่คุณรันเองได้ หากต้องการ PlayDrop โฮสต์เซิร์ฟเวอร์ Colyseus มาตรฐานพร้อมฐานข้อมูล MongoDB ให้เกมของคุณ: อัปโหลดเป็น server.js ข้าง index.html ผ่าน PlayDrop Connector หรือให้ PlayDrop Cloud สร้างให้ แพ็กเกจ @playdrop/server ก็ไม่บังคับเช่นกัน

เขียนเซิร์ฟเวอร์ Colyseus มาตรฐาน

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) };

ส่งออกแมป rooms จาก server.js และระบุชื่อห้องใน catalogue.json เป็น "server": { "rooms": ["game"] } PlayDrop รันเซิร์ฟเวอร์ให้ ดังนั้นอย่าเริ่มเซิร์ฟเวอร์เอง เก็บข้อมูลด้วยไดรเวอร์ MongoDB มาตรฐานผ่าน PLAYDROP_MONGO_URL ภายในวงจรชีวิตของห้อง

กฎของเซิร์ฟเวอร์ที่โฮสต์ให้

  • Colyseus 0.17 (colyseus 0.17.10, @colyseus/schema 4.0.30), ไดรเวอร์ MongoDB 7.5 และ Node 22
  • โมดูล ES ที่ครบในตัวหนึ่งไฟล์ ขนาดไม่เกิน 2 MiB อาจนำเข้าได้เฉพาะ colyseus, @colyseus/core, @colyseus/schema, mongodb และ @playdrop/server รวมโค้ดอื่นทั้งหมดไว้ในไฟล์
  • ไม่เกิน 2 ประเภทห้อง, 8 ผู้เล่นต่อห้อง, 4 ชั่วโมงต่อห้อง, 30 ข้อความต่อวินาทีต่อผู้เล่น และ 512 KiB ต่อข้อความ
  • เซิร์ฟเวอร์เข้าถึงอินเทอร์เน็ตไม่ได้: เข้าถึงได้เฉพาะ MongoDB และบริการของ PlayDrop
  • ผู้เล่นต้องเข้าสู่ระบบ PlayDrop ตรวจสอบผู้เล่นแต่ละคนเมื่อเข้าร่วม อย่าเขียน onAuth
  • ฐานข้อมูล MongoDB หนึ่งชุดต่อเกม เก็บข้ามเวอร์ชันและนับรวมในโควตาพื้นที่จัดเก็บของคุณ อย่าส่งข้อมูลรับรองไปยังเบราว์เซอร์เด็ดขาด

เชื่อมต่อเบราว์เซอร์และทดสอบ

ในเบราว์เซอร์ sdk.multiplayer.getConnection() จาก SDK ฝั่งไคลเอนต์ ส่งคืนที่อยู่เซิร์ฟเวอร์และโทเค็นของผู้เล่น เข้าร่วมด้วยไคลเอนต์ Colyseus (@colyseus/sdk 0.17) ระหว่างพัฒนา ให้รัน Colyseus 0.17 และ MongoDB 8 ในเครื่องและเชื่อมต่อกับเซิร์ฟเวอร์ในเครื่องโดยตรง หากต้องการทดสอบเซิร์ฟเวอร์ที่โฮสต์ ให้อัปโหลดเวอร์ชันส่วนตัว แล้วเปิด https://www.playdrop.ai/create/games/<slug>/test?v=<version>&player=1 และลิงก์เดียวกันที่ player=2 ในหน้าต่างที่สอง: แต่ละหน้าต่างเล่นเป็นบัญชีทดสอบแยกกัน ตั้งเวอร์ชันเป็นสาธารณะจากหน้าเกมเมื่อใช้งานได้

SDK ฝั่งเซิร์ฟเวอร์แบบไม่บังคับ: เพื่อนและ AI

@playdrop/server เพิ่ม playdrop.social (เพื่อนที่เล่นเกมนี้และการ์ดเกมใน PlayDrop Chat) และ playdrop.ai (การสร้างข้อความ ภาพ 3D วิดีโอ เสียง เสียงพูด และเพลง โดยครีเอเตอร์เป็นผู้จ่าย) การเรียกเหล่านี้ใช้ได้เฉพาะกับเกมที่อัปโหลดแล้ว ไม่ใช่ในการพัฒนาในเครื่อง ดาวน์โหลดสื่อส่วนตัวที่สร้างขึ้นบนเซิร์ฟเวอร์ด้วย playdrop.ai.tasks.downloadFile และส่งไบต์ให้เฉพาะผู้เล่นที่ตั้งใจ คำขอเสียงพูดรับได้ไม่เกิน 40 คำ

แชทเสียงของปาร์ตี้และห้อง

await playdrop.social.getParty(client.auth) อ่านสมาชิกปาร์ตี้ที่ได้รับอนุญาตในปัจจุบัน ไม่เปิดเผยแชทปาร์ตี้หรือกิจกรรมในเกมอื่น และไม่ให้สิทธิ์จัดการปาร์ตี้ API โซเชียลที่มีอยู่ยังทำงานเหมือนเดิม

แคตตาล็อกที่ประกาศ roomVoice: true เริ่มต้นด้วยนโยบายทั้งห้อง ไม่ต้องเรียกเซิร์ฟเวอร์สำหรับค่าเริ่มต้นนี้ หากต้องการปรับแต่ง ให้ผูก const platform = playdrop.multiplayer.forRoom(this) กับห้อง Colyseus จริง ใช้ platform.voice.setPolicy("all" | "team" | "proximity" | "off", { range: 20 }), setTeam(client.auth, teamId), setAudience(client.auth, audience) และ updatePositions([{ player: client.auth, position: { x, y, z } }]) ส่ง null เพื่อล้างการแทนที่ของทีมหรือผู้เล่น โหมดความใกล้เคียงต้องการตำแหน่งที่เชื่อถือได้และเป็นปัจจุบัน

รันไทม์ที่เชื่อถือได้รวมการเปลี่ยนแปลงสิทธิ์ สำรองที่ให้ผู้ติดตามปาร์ตี้ที่ได้รับการยอมรับหลังจากหัวหน้าเข้าร่วมตามปกติ และล้างสิทธิ์ เกมไม่ส่งเสียง ข้อมูลรับรองผู้ให้บริการ หรือคำขอไมโครโฟนเด็ดขาด ใช้ห้องเดิมตลอดทุกรอบ ใช้ผู้เล่นทดสอบส่วนตัวที่มีอยู่กับครีเอเตอร์ที่มีสิทธิ์เพื่อทดสอบการผสานรวมก่อนเผยแพร่ การเผยแพร่เพียงอย่างเดียวไม่เปิดใช้งานการเปิดตัวแบบทยอย

ก่อนหน้าSDK ฝั่งไคลเอนต์ของ PlayDrop สำหรับเกมบนเบราว์เซอร์ถัดไปแก้ปัญหาการสร้างและการเผยแพร่ด้วย PlayDrop Cloud
ดู Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

ในหน้านี้

เขียนเซิร์ฟเวอร์ Colyseus มาตรฐานกฎของเซิร์ฟเวอร์ที่โฮสต์ให้เชื่อมต่อเบราว์เซอร์และทดสอบSDK ฝั่งเซิร์ฟเวอร์แบบไม่บังคับ: เพื่อนและ AIแชทเสียงของปาร์ตี้และห้อง
ดู Markdown