PlayDrop logoPlayDrop Studio
TạoTrao đổi lượt chơiKiếmHọcConnectorTài nguyênCộng đồngHỗ trợ
PlayDrop logoPlayDrop Studio
TạoTrao đổi lượt chơiKiếmHọcConnectorTài nguyênCộng đồngHỗ trợ
Đăng nhập
Lưu đám mây
Tài liệu

Bắt đầu tại đây

Tổng quanGame đầu tiên của bạnGame PlayDropFAQ

Tạo với Cloud

Tạo với CloudGói & lượt tạo

Kết nối ứng dụng AI của bạn

Tất cả connectorClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Xuất bản và chia sẻ

Xuất bản từ ứng dụng AIGame HTML đơn giảnĐóng gói và .playXuất bản và nhậpTệp gameChế độ hiển thị và tiếp cậnHình ảnh và video giới thiệuThể loại và thẻBản địa hóaGame Instant

Trải nghiệm chơi game

Tải, tạm dừng và âm thanhToàn màn hình và vùng an toànLưu đám mâyNhóm chơi cục bộ và tay cầm

Chơi cùng nhau

Chia sẻ, bạn bè và lời mờiBảng xếp hạngThành tíchNhóm chơi trực tuyến và thoạiMáy chủ game thời gian thực

Kiếm tiền

Kiếm tiềnCredit & phần thưởng

Tài nguyên

Tài nguyên gameTạo tài nguyên bằng AIĐịnh dạng tùy chỉnh và sáng tạo của người chơi

Tài liệu tham khảo

SDK clientSDK servercatalogue.jsonLỗi và cách khôi phụcKhắc phục sự cố
Tài liệuLưu đám mây
Trải nghiệm chơi game

Lưu đám mây cho game PlayDrop

Lưu và tải tiến trình người chơi bằng sdk.me.appData và updateAppData, cho khách và người chơi đã đăng nhập, kèm quy tắc ghi, xem trước và chơi ngoại tuyến.

Lưu đám mây giữ tiến trình của từng người chơi trong game của bạn trên PlayDrop, để tiến trình đi theo họ từ trang web đến các ứng dụng. Mỗi người chơi và mỗi game được lưu một đối tượng JSON; không cần máy chủ hay phòng nhiều người chơi.

Đọc và ghi

Sau init(), sdk.me.appData là ảnh chụp trạng thái đã lưu: { data, seq, ts_event, ts_arrival }, hoặc null trước lần lưu đầu tiên. Đọc đối tượng của bạn từ data. Ghi toàn bộ đối tượng bằng updateAppData, phương thức này trả về ảnh chụp trạng thái đã lưu và cập nhật 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
}
  • Mỗi lần ghi thay thế toàn bộ đối tượng đã lưu: hãy giữ lại mọi trường bạn vẫn cần.
  • Thực hiện các lần ghi tuần tự như trên, để một lần lưu cũ không bao giờ ghi đè lên lần lưu mới hơn, và giữ hàng đợi tiếp tục chạy sau khi có lỗi.
  • Chỉ hiển thị “Đã lưu” sau khi promise hoàn tất. Thay đổi appData.data trong bộ nhớ không lưu gì cả.
  • appData không có các phương thức get, set hay save.

Khi nào nên lưu

Hãy lưu ở các điểm kiểm tra, cuối màn và khi mua hàng thay vì ở mỗi khung hình. Không bao giờ lưu trong bản xem trước hay khi ghi hình: chỉ ghi khi sdk.host.phase là play. Giữ dữ liệu lưu nhỏ gọn và có phiên bản bằng trường của riêng bạn, chẳng hạn saveVersion: 2, để phiên bản game sau này có thể chuyển đổi nó.

Khách và người chơi đã đăng nhập

Bạn không cần kiểm tra sdk.me.isLoggedIn trước khi lưu: khách trên PlayDrop cũng giữ được dữ liệu lưu. Một người chơi hoàn toàn không có phiên sẽ giữ dữ liệu lưu trong bộ nhớ cho lượt truy cập đó, nên một lần ghi hoàn tất không chứng minh dữ liệu đã lên đám mây. Chỉ dùng isLoggedIn cho các tính năng cần tài khoản thật, như mua hàng và chơi nhiều người trên máy chủ được lưu trữ.

Ngoại tuyến

Trong trình duyệt, việc lưu cần kết nối mạng và không có hàng đợi ngoại tuyến: hãy tiếp tục cho chơi khi lưu thất bại và thử lại ở điểm kiểm tra tiếp theo. Các host có hỗ trợ dữ liệu trên thiết bị, như các ứng dụng PlayDrop chơi được ngoại tuyến, giữ dữ liệu lưu trên thiết bị và đồng bộ khi có mạng.

Dữ liệu lưu không dùng cho việc gì

Dữ liệu lưu là riêng tư với một người chơi và một game. Nó tách biệt với bảng xếp hạng và thành tích, vốn có API riêng và hiển thị trên PlayDrop. Trạng thái dùng chung giữa nhiều người chơi, như một trận đấu hay một thế giới, thuộc về máy chủ game, trong các collection MongoDB của game bạn.

Thử nghiệm

Dữ liệu lưu thuộc về một game đã tải lên. Hãy tải lên một phiên bản riêng tư ít nhất một lần, rồi thử từ url của biên nhận hoặc từ khung Dev cục bộ được mô tả trong xuất bản từ ứng dụng AI của bạn.

Hướng dẫn liên quan

  • Bảng xếp hạngKhai báo bảng xếp hạng trong catalogue.json, gửi điểm bằng sdk.leaderboards, hiển thị hạng đầu và người chơi xung quanh. Loại điểm, giới hạn và quy tắc cập nhật.
  • Thành tíchKhai báo thành tích thường và thành tích tích lũy kèm biểu tượng trong catalogue.json, mở khóa và báo tiến trình bằng sdk.achievements.
  • Máy chủ game thời gian thựcChạy máy chủ Colyseus 0.17 được lưu trữ kèm cơ sở dữ liệu MongoDB cho game, kết nối từ trình duyệt bằng SDK, thử với hai người chơi và nắm rõ giới hạn.
TrướcToàn màn hình, vùng an toàn và góc HUD cho game PlayDropTiếpNhóm chơi cục bộ, tay cầm và điện thoại làm tay cầm trong game PlayDrop
Xem Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

Trong trang này

Đọc và ghiKhi nào nên lưuKhách và người chơi đã đăng nhậpNgoại tuyếnDữ liệu lưu không dùng cho việc gìThử nghiệm
Xem Markdown