# เผยแพร่เกม HTML แบบง่ายจากแอป AI ของคุณ

เผยแพร่ไฟล์ HTML ไฟล์เดียวที่ครบในตัวขนาดไม่เกิน 10 MiB ด้วย upload_game: อะไรใช้ได้ แคตตาล็อกขนาดย่อ การมองเห็น การอัปเดต และเมื่อไรควรเปลี่ยนเป็นแพ็กเกจ

Source: https://www.playdrop.ai/th/create/learn/html-games

เส้นทางแบบง่ายเผยแพร่เกม HTML มาตรฐานหนึ่งเกม เช่น เกมอาร์เคดบน canvas หรือเกมปริศนาแบบ DOM ด้วยการเรียก `upload_game` เพียงครั้งเดียว ไม่ต้องใช้ PlayDrop SDK ไม่ต้องมีโฟลเดอร์บิลด์ และไม่ต้องมีไฟล์เพิ่ม แล้วจะได้ลิงก์ที่ใครก็เปิดได้บนโทรศัพท์หรือคอมพิวเตอร์

## เมื่อไรที่เส้นทางแบบง่ายเหมาะ

- ทั้งเกมเป็นไฟล์ HTML ไฟล์เดียวขนาดไม่เกิน 10 MiB (10,485,760 ไบต์ UTF-8) โดยมีสคริปต์ สไตล์ ภาพ และเสียงฝังอยู่ในไฟล์
- เป็นเกมบนเบราว์เซอร์ทั่วไป: ไม่เรียก PlayDrop SDK จึงไม่มีการบันทึกบนคลาวด์ ลีดเดอร์บอร์ด ความสำเร็จ การแชร์ ปาร์ตี้ การซื้อ หรือโฆษณา
- ไม่ต้องใช้ไฟล์แยก: ไม่มีภาพหรือวิดีโอของหน้าเกม และไม่มีเซิร์ฟเวอร์เกม

หากข้อใดไม่เป็นจริง ให้ใช้[แพ็กเกจ](https://www.playdrop.ai/th/create/learn/packaging)แทน คงฟีเจอร์ที่ผู้ใช้ของคุณขอไว้ ห้ามตัดฟีเจอร์ออกหรือยุบเกมหลายไฟล์ให้เป็นไฟล์เดียวเพื่อให้เข้ากับเส้นทางนี้เด็ดขาด การอัปโหลดจะปฏิเสธการเรียก SDK โค้ดเซิร์ฟเวอร์ และฟิลด์แคตตาล็อกที่ใช้ได้เฉพาะแพ็กเกจด้วย `advanced_upload_required`

## ส่งเกม

เรียก `upload_game` ด้วย `requestId` ใหม่ HTML ฉบับสมบูรณ์ และแคตตาล็อกขนาดย่อสำหรับเกมหนึ่งเกม:

```json
{
  "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"
    }]
  }
}
```

- `name` คือ slug ถาวรของเกม: ตัวอักษรพิมพ์เล็ก ตัวเลข หรือขีดกลาง 1–100 ตัว
- `tags` ต้องมีประเภทเกม เช่น `game-genre/casual` ดู[ประเภทเกมและแท็ก](https://www.playdrop.ai/th/create/learn/tags)
- `types` ประกาศวิธีเล่น เกมไฟล์เดียวปกติเป็น `["solo"]` ขนาดปาร์ตี้และการเล่นออนไลน์ต้องใช้แพ็กเกจ
- `controller.support` ระบุการรองรับคอนโทรลเลอร์ตามจริง รวมถึง `off`
- `authMode` กำหนดการเข้าสู่ระบบ: `NONE` หรือ `OPTIONAL` ให้ใครก็เล่นได้ หากไม่ใส่จะใช้ค่าเริ่มต้น `REQUIRED` ใส่ไว้ทุกครั้งที่อัปเดต
- `primarySurface` ระบุแนวหน้าจอที่เกมออกแบบมา การอัปโหลดแบบง่ายจะแสดงสำหรับคอมพิวเตอร์ แนวนอน และแนวตั้ง

ฟิลด์อื่นที่รับได้คือ `subtitle`, `emoji`, `color`, `license`, `creation`, `releaseNotes`, `inspirationPrompt`, `makingOf`, `sourceRepository`, `sourceLocale`, `offlineSupported` และ `instant` PlayDrop เป็นผู้กำหนดหมายเลขเวอร์ชัน

## เลือกว่าใครเล่นได้

- ไม่ใส่ `visibility` เพื่อใช้การตั้งค่าบัญชีของครีเอเตอร์สำหรับเกมใหม่ (สาธารณะ เว้นแต่ครีเอเตอร์เลือกไม่แสดงในรายการหรือส่วนตัวไว้) การอัปเดตจะคงกลุ่มผู้ชมปัจจุบันของเกมไว้
- `"private"` บันทึกเวอร์ชันที่เฉพาะครีเอเตอร์เปิดได้ เพื่อทดสอบ เผยแพร่เวอร์ชันนั้นภายหลังด้วย `publish_game_version` ไม่ต้องอัปโหลดอีกครั้ง
- `"unlisted"` เผยแพร่ให้ทุกคนที่มีลิงก์โดยไม่แสดงในรายการ ส่วน `"public"` เผยแพร่เพื่อให้ค้นพบได้

ทำตามที่ผู้ใช้ของคุณขอ และห้ามทำให้เกมมองเห็นได้กว้างกว่าที่ผู้ใช้ตั้งใจเด็ดขาด ดู[ใครเล่นได้บ้าง](https://www.playdrop.ai/th/create/learn/distribution)

## อ่านใบยืนยัน

ใบยืนยันมี `gameId`, `slug`, `version`, `status`, `visibility` และ `url` ซึ่งเป็นลิงก์ของเวอร์ชันนั้นสำหรับเจ้าของ เกมสาธารณะและเกมที่ไม่แสดงในรายการจะได้ `shareUrl` ด้วย ซึ่งเป็นหน้าถาวรของเกม ให้ส่งลิงก์นั้นให้ผู้ใช้ของคุณ สำหรับเวอร์ชันส่วนตัว ให้ส่ง `url` กลับไป `instant` และ `instantReason` รายงานสิทธิ์การเป็น[เกม Instant](https://www.playdrop.ai/th/create/learn/instant-games)

## อัปเดตเกม

เรียก `list_games` ส่ง `gameId` ของเกม และคง `name` ไว้ ส่ง HTML ฉบับสมบูรณ์และแคตตาล็อกขนาดย่อฉบับสมบูรณ์อีกครั้ง: การอัปโหลดแต่ละครั้งเป็นสแนปช็อตเต็ม และฟิลด์ที่ไม่ได้ใส่จะไม่มีในเวอร์ชันใหม่ ลิงก์ยังคงเดิม เกมที่อัปโหลดครั้งแรกเป็นแพ็กเกจต้องใช้เส้นทางแพ็กเกจต่อไป เพื่อไม่ให้ไฟล์และฟีเจอร์ของเกมหายไป

## เปลี่ยนเป็นแพ็กเกจภายหลัง

การเพิ่มการบันทึกบนคลาวด์ ลีดเดอร์บอร์ด ภาพหน้าเกม หรือเซิร์ฟเวอร์ จะทำให้เกมกลายเป็นแพ็กเกจ นั่นเป็นการอัปเดตเกมเดิมตามปกติ: คง `name` ไว้ อัปโหลดด้วย `prepare_catalogue_upload` และตั้ง `expectedCurrentVersion` เป็นเวอร์ชันปัจจุบันจาก `list_games` อ่าน[การจัดแพ็กเกจ](https://www.playdrop.ai/th/create/learn/packaging)

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

- [เผยแพร่จากแอป AI ของคุณ](https://www.playdrop.ai/th/create/learn/mcp-publishing): วิธีที่เอเจนต์ AI เผยแพร่ไปยัง PlayDrop ผ่าน MCP: เส้นทางแบบง่ายและแบบแพ็กเกจ การทดสอบแบบส่วนตัว publish_game_version การอัปเดต ขีดจำกัด และการกู้คืน
- [การจัดแพ็กเกจและ .play](https://www.playdrop.ai/th/create/learn/packaging): จัดโฟลเดอร์เกมที่บิลด์แล้ว ZIP หรือ .play ให้มี catalogue.json ที่ราก ประกาศสื่อของหน้าเกมและเซิร์ฟเวอร์ แล้วอัปโหลดด้วย prepare_catalogue_upload
- [การมองเห็นและการเข้าถึงผู้เล่น](https://www.playdrop.ai/th/create/learn/distribution): เลือกว่าใครเปิดเกม PlayDrop ได้ ค่าเริ่มต้นของบัญชีและการเผยแพร่เวอร์ชันทำงานอย่างไร และบูสต์ แลกกันเล่น Instant และการค้นหาพาผู้เล่นใหม่มาได้อย่างไร
