ใช้การนำส่งเนื้อหาในระบบคลาวด์

เมื่อจะลดขนาดแอปให้เป็นไปตามข้อกำหนดด้านขนาด ให้ลองใช้เทคนิคการเพิ่มประสิทธิภาพขนาด APK มาตรฐานก่อน หากต้องการลดขนาดลงอีก คุณอาจต้องอาศัยการส่งชิ้นงานผ่านระบบคลาวด์ เอกสารนี้จะอธิบายวิธีเตรียมชิ้นงานสำหรับการนำส่งผ่านระบบคลาวด์และตัวเลือกการสนับสนุนจากเครื่องมือสร้างเกมต่างๆ แม้ว่าคำแนะนำในหน้านี้จะเน้นไปที่เกม แต่หลักการเหล่านี้จะมีผลกับแอปใดก็ตามที่มีชิ้นงานขนาดใหญ่

การเตรียมพร้อม

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

ต้องระบุเสมอ

ชิ้นงานบางรายการแยกออกเป็นบล็อกเล็กๆ ได้ยาก หรือต้องรวมไว้ใน APK หลัก ตัวอย่างเช่น โค้ดเกมและทรัพยากร Dependency ของไลบรารีหรือเอ็นจิ้น แม้ว่า Google Play Core จะรองรับ App Bundle สำหรับโค้ด แต่เครื่องมือจํานวนมากไม่รองรับโค้ดที่ดาวน์โหลดในภายหลัง

ต้องระบุเมื่อเปิดตัว

หลังจากเกมเริ่มขึ้น ผู้ใช้ควรเล่นได้ทันที Google Play Instant กำหนดให้ผู้ใช้เริ่มเล่นเกมได้ภายใน 15 วินาทีผ่านการเชื่อมต่อ LTE หรือ 4G (ดูรายการตรวจสอบ Google Play Instant) ดังนั้น ให้จำกัดการดาวน์โหลดรองหลังจากเปิดตัวให้มีขนาดใหญ่เพียงเท่าที่จำเป็นเพื่อรองรับประสบการณ์การใช้งานครั้งแรก เช่น การดาวน์โหลดแบบติดตามอย่างรวดเร็วทันทีหลังจากเปิดตัวอาจรวมถึงชิ้นงานระดับและสถานที่ตั้งของเกมแรก หรือโค้ดที่จําเป็นต่อการเล่นเกมในช่วง 2-3 นาทีแรก

ต้องใช้ในภายหลัง

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

การสนับสนุนเครื่องยนต์

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

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

การนำส่งฟีเจอร์ Play (ผ่าน App Bundle)

หากเผยแพร่แอปเป็น App Bundle (ซึ่งเป็นวิธีที่แนะนำ) คุณจะใช้โมดูลฟีเจอร์เพื่อดึงข้อมูลทรัพยากรเพิ่มเติมนอกเหนือจาก APK พื้นฐานได้ สำหรับ Instant App แต่ละไฟล์ โมดูลฟีเจอร์ต้องตั้งค่า dist:instant="true" ในไฟล์ Manifest ไม่ควรใช้พร็อพเพอร์ตี้ dist:on-demand เนื่องจากใช้เป็นหลักสําหรับข้อบังคับใน APK ที่ติดตั้ง นอกจากนี้ โมดูลฟีเจอร์แต่ละรายการต้องมีขนาดไม่เกินขีดจํากัดของ APK แบบทันทีที่ 15 MB ไม่ว่าโมดูลจะมีโค้ดหรือไม่ก็ตาม หากแต่ละโมดูลมีขนาดใหญ่เกินขีดจำกัดนี้ คุณจะเผยแพร่ไปยังแทร็กอัลฟ่าหรือแทร็กรุ่นต่างๆ ไม่ได้ เมื่อกําหนดค่าอย่างถูกต้องแล้ว คุณจะดึงข้อมูลโมดูลฟีเจอร์ที่รันไทม์ได้โดยใช้ไลบรารี PlayCore

Cocos Creator

Cocos รองรับการนำส่งชิ้นงานผ่านระบบคลาวด์มาตั้งแต่เวอร์ชัน v2.0.4 Cocos จะดาวน์โหลดชิ้นงานตามคําขอ โดยจะแสดงผลตัวยึดตําแหน่งหากยังไม่ได้ดาวน์โหลดชิ้นงานทันเวลา Cocos จะสร้างไฟล์ชิ้นงานที่ต้องมีการโฮสต์กับบริการออนไลน์บางรายการ เนื่องจาก Cocos ไม่มีบริการของตัวเอง

Unity

ระบบรองรับการนำส่งจากระบบคลาวด์ในปลั๊กอิน Google Play Instant ของ Unity สำหรับ Unity เวอร์ชัน 5.6, 2017.4 หรือ 2018.2 Unity เวอร์ชันใหม่มีประโยชน์มากขึ้นสำหรับการแยกไฟล์จากเอนจิ้น จึงอาจเป็นประโยชน์ในการย้ายข้อมูลเพื่อเพิ่มพื้นที่ว่าง ชิ้นงานในระบบคลาวด์ของ Unity จะโฮสต์อยู่ในไฟล์ AssetBundle ที่ Unity สร้างขึ้นให้คุณ การอัปโหลดไฟล์เหล่านี้ไปยังเซิร์ฟเวอร์ระบบคลาวด์จะช่วยให้ส่งชิ้นงานผ่านระบบคลาวด์ได้ เนื่องจาก Unity รองรับการดาวน์โหลด Asset Bundle โดยกำเนิด

เครื่องมืออื่นๆ

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

การโฮสต์ชิ้นงาน

คุณจะต้องโฮสต์ชิ้นงานไว้ที่อื่น เว้นแต่จะใช้ App Bundle ของ Google Play เพื่อดาวน์โหลดชิ้นงานผ่าน Play คุณโฮสต์เนื้อหาด้วยบริการใดก็ได้ตราบใดที่บริการนั้นมีการเผยแพร่และให้บริการทั่วโลกอย่างสมเหตุสมผล ผู้ใช้แอป Google Play Games เล่นแอปทั่วโลก จึงต้องมีการแสดงชิ้นงานที่โฮสต์ในระบบคลาวด์ต่อผู้ใช้อย่างรวดเร็วไม่ว่าจะอยู่ที่ใดก็ตาม