PlayDrop logoPlayDrop Studio
สร้างแลกกันเล่นหารายได้เรียนรู้คอนเนกเตอร์แอสเซ็ตชุมชนซัพพอร์ต
PlayDrop logoPlayDrop Studio
สร้างแลกกันเล่นหารายได้เรียนรู้คอนเนกเตอร์แอสเซ็ตชุมชนซัพพอร์ต
เข้าสู่ระบบ
การบันทึกบนคลาวด์
เอกสาร

เริ่มที่นี่

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

สร้างด้วย Cloud

การสร้างด้วย Cloudแพ็กเกจและการสร้าง

เชื่อมต่อแอป AI ของคุณ

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

เผยแพร่และแชร์

เผยแพร่จากแอป AI ของคุณเกม HTML แบบง่ายการจัดแพ็กเกจและ .playเผยแพร่และนำเข้าไฟล์เกมการมองเห็นและการเข้าถึงผู้เล่นภาพและวิดีโอของหน้าเกมประเภทเกมและแท็กการแปลเกม Instant

ประสบการณ์การเล่น

การโหลด การหยุดชั่วคราว และเสียงเต็มหน้าจอและพื้นที่ปลอดภัยการบันทึกบนคลาวด์ปาร์ตี้ในเครื่องและคอนโทรลเลอร์

เล่นด้วยกัน

การแชร์ เพื่อน และคำเชิญลีดเดอร์บอร์ดความสำเร็จปาร์ตี้ออนไลน์และแชทเสียงเซิร์ฟเวอร์เกมเรียลไทม์

สร้างรายได้

การสร้างรายได้เครดิตและรางวัล

แอสเซ็ต

แอสเซ็ตเกมการสร้างแอสเซ็ตด้วย AIรูปแบบที่กำหนดเองและผลงานผู้เล่น

เอกสารอ้างอิง

SDK ฝั่งไคลเอนต์SDK ฝั่งเซิร์ฟเวอร์catalogue.jsonข้อผิดพลาดและการกู้คืนการแก้ไขปัญหา
เอกสารการบันทึกบนคลาวด์
ประสบการณ์การเล่น

การบันทึกบนคลาวด์สำหรับเกม PlayDrop

บันทึกและโหลดความคืบหน้าของผู้เล่นด้วย sdk.me.appData และ updateAppData สำหรับผู้เยี่ยมชมและผู้เล่นที่เข้าสู่ระบบ พร้อมกฎการเขียน การแสดงตัวอย่าง และการเล่นออฟไลน์

การบันทึกบนคลาวด์เก็บความคืบหน้าของผู้เล่นแต่ละคนในเกมของคุณไว้บน PlayDrop เพื่อให้ความคืบหน้าตามผู้เล่นไปจากเว็บไซต์ถึงแอป ระบบเก็บออบเจ็กต์ JSON หนึ่งชิ้นต่อผู้เล่นหนึ่งคนต่อเกมหนึ่งเกม ไม่ต้องใช้เซิร์ฟเวอร์หรือห้องผู้เล่นหลายคน

อ่านและเขียน

หลัง init() แล้ว sdk.me.appData คือสแนปช็อตที่บันทึกไว้: { data, seq, ts_event, ts_arrival } หรือ null ก่อนการบันทึกครั้งแรก อ่านออบเจ็กต์ของคุณจาก data เขียนทั้งออบเจ็กต์ด้วย updateAppData ซึ่งจะส่งคืนสแนปช็อตที่บันทึกแล้วและอัปเดต sdk.me.appData

js
const sdk = await playdrop.init();
let progress = { level: 1, coins: 0, ...(sdk.me.appData?.data ?? {}) };
let queue = Promise.resolve();

// Resolves with the saved snapshot; rejects when the save failed.
function save(changes) {
  progress = { ...progress, ...changes };
  const snapshot = { ...progress };
  const attempt = queue.then(() => sdk.me.updateAppData(snapshot));
  queue = attempt.catch(() => {}); // a failed save must not block the next one
  return attempt;
}

try {
  await save({ level: 2 });
  showSaved();
} catch (error) {
  showSaveError(); // progress stays in memory; the next save sends it again
}
  • การเขียนแต่ละครั้งจะแทนที่ออบเจ็กต์ที่บันทึกไว้ทั้งหมด: เก็บทุกฟิลด์ที่ยังต้องใช้ไว้
  • เขียนตามลำดับทีละครั้งเหมือนตัวอย่างด้านบน เพื่อไม่ให้ข้อมูลบันทึกเก่าไปทับข้อมูลที่ใหม่กว่า และให้คิวทำงานต่อได้แม้การบันทึกครั้งก่อนล้มเหลว
  • แสดง "บันทึกแล้ว" หลังจาก promise เสร็จสิ้นเท่านั้น การเปลี่ยน appData.data ในหน่วยความจำไม่ได้บันทึกอะไรเลย
  • appData ไม่มีเมธอด get, set หรือ save

ควรบันทึกเมื่อไร

บันทึกที่จุดเช็กพอยต์ ตอนจบด่าน และหลังการซื้อ แทนที่จะบันทึกทุกเฟรม ห้ามบันทึกระหว่างการแสดงตัวอย่างหรือการจับภาพเด็ดขาด: เขียนเฉพาะเมื่อ sdk.host.phase เป็น play เก็บข้อมูลบันทึกให้เล็กและใส่เวอร์ชันด้วยฟิลด์ของคุณเอง เช่น saveVersion: 2 เพื่อให้เกมเวอร์ชันหลังย้ายข้อมูลได้

ผู้เยี่ยมชมและผู้เล่นที่เข้าสู่ระบบ

ไม่ต้องตรวจสอบ sdk.me.isLoggedIn ก่อนบันทึก: ผู้เยี่ยมชมของ PlayDrop ก็เก็บข้อมูลบันทึกไว้ได้เช่นกัน ผู้เล่นที่ไม่มีเซสชันเลยจะเก็บข้อมูลบันทึกไว้ในหน่วยความจำเฉพาะการเข้าชมครั้งนั้น การเขียนที่เสร็จสิ้นจึงไม่ได้พิสูจน์ว่าข้อมูลถึงคลาวด์แล้ว ใช้ isLoggedIn เฉพาะกับฟีเจอร์ที่ต้องมีบัญชีจริง เช่น การซื้อและการเล่นหลายคนผ่านเซิร์ฟเวอร์ที่ PlayDrop โฮสต์

ออฟไลน์

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

สิ่งที่การบันทึกไม่ใช่

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

ทดสอบ

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

คู่มือที่เกี่ยวข้อง

  • ลีดเดอร์บอร์ดประกาศลีดเดอร์บอร์ดใน catalogue.json ส่งคะแนนด้วย sdk.leaderboards และแสดงอันดับสูงสุดกับผู้เล่นรอบข้าง พร้อมชนิดคะแนน ขีดจำกัด และกฎการอัปเดต
  • ความสำเร็จประกาศความสำเร็จแบบมาตรฐานและแบบสะสมพร้อมไอคอนใน catalogue.json แล้วปลดล็อกและรายงานความคืบหน้าด้วย sdk.achievements
  • เซิร์ฟเวอร์เกมเรียลไทม์รันเซิร์ฟเวอร์ Colyseus 0.17 ที่โฮสต์ให้พร้อมฐานข้อมูล MongoDB สำหรับเกมของคุณ เชื่อมต่อจากเบราว์เซอร์ด้วย SDK ทดสอบด้วยผู้เล่นสองคน และรู้ขีดจำกัด
ก่อนหน้าเต็มหน้าจอ พื้นที่ปลอดภัย และมุม HUD สำหรับเกม PlayDropถัดไปปาร์ตี้ในเครื่อง เกมแพด และคอนโทรลเลอร์บนโทรศัพท์ในเกม PlayDrop
ดู Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

ในหน้านี้

อ่านและเขียนควรบันทึกเมื่อไรผู้เยี่ยมชมและผู้เล่นที่เข้าสู่ระบบออฟไลน์สิ่งที่การบันทึกไม่ใช่ทดสอบ
ดู Markdown