Xuất bản game HTML đơn giản từ ứng dụng AI của bạn
Xuất bản một tệp HTML khép kín tối đa 10 MiB bằng upload_game: những gì phù hợp, catalogue rút gọn, chế độ hiển thị, cập nhật và khi nào chuyển sang gói.
Cách đơn giản xuất bản một game HTML chuẩn, chẳng hạn một game arcade dùng canvas hay một game giải đố dùng DOM, chỉ bằng một lệnh gọi upload_game. Cách này không cần SDK PlayDrop, không cần thư mục bản dựng hay tệp phụ nào, và trả về một liên kết mà ai cũng mở được trên điện thoại hoặc máy tính.
Khi nào cách đơn giản phù hợp
- Toàn bộ game là một tệp HTML tối đa 10 MiB (10.485.760 byte UTF-8), với script, style, hình ảnh và âm thanh được nhúng trực tiếp.
- Đây là một game trình duyệt thông thường: nó không gọi SDK PlayDrop, nên không có lưu đám mây, bảng xếp hạng, thành tích, chia sẻ, nhóm chơi, giao dịch mua hay quảng cáo.
- Nó không cần tệp riêng nào: không có hình ảnh hay video giới thiệu và không có máy chủ game.
Nếu có bất kỳ điều nào ở trên không đúng, hãy dùng một gói. Hãy giữ các tính năng người dùng của bạn đã yêu cầu; không bao giờ bỏ chúng hay gộp một game nhiều tệp thành một tệp để vừa với cách này. Lần tải lên sẽ từ chối các lệnh gọi SDK, mã máy chủ và các trường catalogue chỉ dành cho gói với advanced_upload_required.
Gửi game
Gọi upload_game với một requestId mới, toàn bộ HTML và một catalogue rút gọn cho một game:
{
"requestId": "moon-jump-first-upload",
"html": "<!doctype html><html><head><meta charset=\"utf-8\"><title>Moon Jump</title></head><body>…</body></html>",
"catalogue": {
"apps": [{
"name": "moon-jump",
"displayName": "Moon Jump",
"description": "Jump between lunar platforms and reach the flag.",
"controls": "Tap or press Space to jump.",
"tags": ["game-genre/casual"],
"types": ["solo"],
"controller": { "support": "off" },
"authMode": "NONE",
"primarySurface": "MOBILE_PORTRAIT"
}]
}
}namelà slug cố định của game: 1–100 chữ cái thường, chữ số hoặc dấu gạch ngang.tagsphải có một thể loại nhưgame-genre/casual; xem thể loại và thẻ.typeskhai báo cách chơi game; game một tệp thường là["solo"]. Quy mô nhóm chơi và chơi trực tuyến thuộc về gói.controller.supportnêu mức hỗ trợ tay cầm thực tế, kể cảoff.authModequyết định việc đăng nhập:NONEhoặcOPTIONALcho phép mọi người chơi; nếu bỏ qua, mặc định làREQUIRED. Hãy đưa trường này vào mọi bản cập nhật.primarySurfacenêu hướng màn hình mà game được thiết kế để chơi; các lần tải lên đơn giản được liệt kê cho máy tính, màn hình ngang và màn hình dọc.
Các trường khác được chấp nhận là subtitle, emoji, color, license, creation, releaseNotes, inspirationPrompt, makingOf, sourceRepository, sourceLocale, offlineSupported và instant. PlayDrop tự gán số phiên bản.
Chọn ai có thể chơi
- Bỏ
visibilityđể theo cài đặt tài khoản của nhà sáng tạo cho game mới (Công khai, trừ khi họ đã chọn Không công khai hoặc Riêng tư); một bản cập nhật giữ nguyên nhóm người xem hiện tại của game. "private"lưu một phiên bản chỉ nhà sáng tạo mở được, để thử. Sau đó hãy xuất bản đúng phiên bản đó bằngpublish_game_version; đừng tải nó lên lại."unlisted"xuất bản cho bất kỳ ai có liên kết mà không liệt kê game;"public"xuất bản để game được khám phá.
Hãy làm theo yêu cầu của người dùng của bạn và không bao giờ làm một game hiển thị rộng hơn ý định của họ. Xem ai có thể chơi.
Đọc biên nhận
Biên nhận gồm gameId, slug, version, status, visibility và url, liên kết tới đúng phiên bản đó dành cho chủ sở hữu. Game công khai và không công khai còn nhận được shareUrl, trang lâu dài của game; hãy đưa liên kết này cho người dùng của bạn. Với phiên bản riêng tư, hãy gửi lại url. instant và instantReason báo cáo điều kiện Instant.
Cập nhật game
Gọi list_games, truyền gameId của game và giữ nguyên name. Gửi lại toàn bộ HTML và toàn bộ catalogue rút gọn: mỗi lần tải lên là một bản chụp đầy đủ, và các trường bị bỏ qua sẽ không có trong phiên bản mới. Liên kết vẫn giữ nguyên. Một game lần đầu được tải lên dưới dạng gói phải tiếp tục dùng cách tải gói, để tệp và tính năng của nó không bị mất.
Chuyển sang gói sau này
Thêm lưu đám mây, bảng xếp hạng, hình ảnh giới thiệu hoặc máy chủ sẽ biến game thành một gói. Đó là một bản cập nhật bình thường của cùng game: giữ nguyên name, tải lên bằng prepare_catalogue_upload và đặt expectedCurrentVersion bằng phiên bản hiện tại từ list_games. Đọc đóng gói.