แปลงเกมที่มีอยู่ให้เป็นเกมทันใจ

ขั้นตอนการตั้งค่าแอปให้ทำงาน Google Play Instant ตามที่อธิบายไว้ ในสร้าง Instant App แรก ใช้ได้กับเกมด้วย คู่มือนี้จะเน้นย้ำขั้นตอนการตั้งค่าบางอย่างสำหรับเกมโดยเฉพาะ

คุณสามารถพัฒนาเกมสำหรับ Google Play Instant ได้โดยใช้ Unity (มีหรือไม่มี Google Play Instant Unity) ปลั๊กอิน) Cocos2D Android Studio หรือเครื่องมือที่กำหนดเองของคุณ

คู่มือนี้จะถือว่าคุณรู้จัก ประสบการณ์การเล่นเกมประเภทที่คุณ ต้องการมอบให้ หากคุณต้องการดูแนวคิด และแนวทางปฏิบัติที่ดีที่สุดในการสร้าง เกมคุณภาพสูง โปรดอ่านแนวทางปฏิบัติแนะนำเกี่ยวกับ UX สำหรับเกมใน Google Play Instant

นอกจากนี้ ก่อนที่จะเผยแพร่เกมที่สามารถเรียกใช้ได้ Google Play Instant คุณควรอ่านข้อกําหนดทางเทคนิค รายการตรวจสอบ

กิจกรรมที่มีตัวกรอง Intent ต่อไปนี้จะกลายเป็นจุดแรกเข้า สำหรับประสบการณ์การใช้งาน Google Play Instant

<activity android:name=".GameActivity">
   <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>

กิจกรรมนี้จะเปิดขึ้นเมื่อผู้ใช้แตะปุ่มลองใช้เลยใน Play Store หรือเล่นทันที ในแอป Google Play Games คุณยังสามารถเริ่มกิจกรรมนี้ได้โดยตรงโดยใช้ Deep Link API

กำหนดรหัสเวอร์ชันที่ถูกต้อง

รหัสเวอร์ชันของประสบการณ์แบบใช้งานได้ทันทีในเกมต้องต่ำกว่า รหัสเวอร์ชันของเกมที่ติดตั้งได้ การกำหนดเวอร์ชันให้แอปในลักษณะนี้ช่วยให้ ผู้ใช้ที่ต้องการเปลี่ยนจากประสบการณ์การใช้งาน Google Play Instant ไปเป็นการดาวน์โหลด และติดตั้งเกมลงในอุปกรณ์ เฟรมเวิร์กของ Android จะพิจารณาสิ่งนี้ เปลี่ยนเป็นการอัปเดตแอป

เพื่อให้มั่นใจว่าคุณทำตามรูปแบบการกำหนดเวอร์ชันที่แนะนำ ให้ทำตามหนึ่งใน กลยุทธ์เหล่านี้ ได้แก่

  • รีสตาร์ทรหัสเวอร์ชันสำหรับประสบการณ์การใช้งาน Google Play Instant ที่ 1.
  • เพิ่มรหัสเวอร์ชันของแอปที่ติดตั้งได้เป็นจำนวนมาก เช่น 1, 000 เพื่อให้มีพื้นที่ว่างเพียงพอสำหรับเวอร์ชันของประสบการณ์การใช้งาน Instant ตัวเลขที่จะเพิ่ม

คุณสามารถพัฒนาเกมทันใจและเกมที่ติดตั้งได้ใน 2 ส่วนแยกกัน โปรเจ็กต์ Android Studio แต่หากคุณดำเนินการดังกล่าว คุณต้องดำเนินการต่อไปนี้เพื่อ เผยแพร่เกมของคุณใน Google Play

  1. ใช้ชื่อแพ็กเกจเดียวกันในโปรเจ็กต์ Android Studio ทั้ง 2 โปรเจ็กต์
  2. ใน Google Play Console ให้อัปโหลดตัวแปรทั้ง 2 ตัวไปยังแอปพลิเคชันเดียวกัน

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการตั้งค่าเวอร์ชันของเกม โปรดดูที่กำหนดเวอร์ชัน แอป

รองรับสภาพแวดล้อมการดำเนินการ

เกมใน Google Play Instant จะทำงานได้อย่างจำกัดเช่นเดียวกับแอปอื่นๆ แซนด์บ็อกซ์บนอุปกรณ์ ทำตามขั้นตอนในการรองรับสภาพแวดล้อมการดำเนินการนี้ ที่แสดงในส่วนต่อไปนี้

เลือกไม่ใช้การเข้าชมแบบข้อความธรรมดา

เกมใน Google Play Instant ไม่รองรับการเข้าชมผ่าน HTTP หากเกมของคุณ กำหนดเป้าหมายเป็น Android 9 (API ระดับ 28) ขึ้นไป, Android ปิดใช้การสนับสนุน cleartext ในเกมของคุณโดยค่าเริ่มต้น

อย่างไรก็ตาม หากเกมของคุณกำหนดเป้าหมายเป็น Android 8.1 (API ระดับ 27) หรือต่ำกว่า คุณต้อง สร้างไฟล์ Network Security Config ในไฟล์นี้ ให้ตั้งค่า cleartextTrafficPermitted เป็น false ดังที่แสดงใน ข้อมูลโค้ดต่อไปนี้

res/xml/network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">secure.example.com</domain>
    </domain-config>
</network-security-config>

อัปเดตเวอร์ชันแซนด์บ็อกซ์เป้าหมาย

อัปเดตไฟล์ AndroidManifest.xml ของ Instant Game เพื่อให้กำหนดเป้าหมาย สภาพแวดล้อมแซนด์บ็อกซ์ที่ Google Play Instant รองรับ คุณสามารถดำเนินการ อัปเดตนี้โดยการเพิ่มแอตทริบิวต์ android:targetSandboxVersion ลงใน องค์ประกอบ <manifest> ของเกม ดังที่แสดงในข้อมูลโค้ดต่อไปนี้

<manifest
   xmlns:android="http://schemas.android.com/apk/res/android"
  ...
   android:targetSandboxVersion="2" ...>

สำหรับข้อมูลเพิ่มเติม โปรดดูเอกสารประกอบเกี่ยวกับ targetSandboxVersion

อย่าใช้แคชหรือข้อมูลแอปที่มีอยู่

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

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

หากเกิดกระบวนการใดขั้นตอนหนึ่งขึ้น ผู้ใช้จะต้องดาวน์โหลดประสบการณ์การใช้งาน Instant อีกครั้ง เพื่อที่จะโต้ตอบกับแท็ก

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

ลดขนาดแอป

เกมบน Google Play Instant ต่างจากแอปประเภทอื่นๆ ตรงที่มี ขนาดการดาวน์โหลดที่จำกัดไว้ที่ 15 MB หากต้องการสร้างเกมขนาดนี้ คุณ อาจจำเป็นต้องเปลี่ยนโครงสร้างภายในโค้ดของเกม ส่วนนี้จะอธิบายเครื่องมือบางอย่างและ เพื่อช่วยปรับขนาดของเกมให้เหมาะสม

เครื่องมือ

รายการต่อไปนี้คือเครื่องมือที่จะช่วยระบุสิ่งที่มีส่วนทำให้เกิด ขนาดเกมของคุณ:

  • เครื่องมือวิเคราะห์ APK: แสดงมุมมองแบบองค์รวมของ ของ APK ที่คอมไพล์แล้ว เมื่อใช้มุมมองนี้ คุณจะระบุจำนวน ไบต์ที่แต่ละองค์ประกอบส่งผลต่อขนาดโดยรวม ใช้เครื่องมือนี้เพื่อ ตรวจสอบขนาดของทรัพยากร เนื้อหา ตรรกะ และไลบรารีแบบเนทีฟได้อย่างรวดเร็ว เกมที่คุณกำลังใช้อยู่
  • Bloaty McBloatface: แสดง โปรไฟล์ขนาดของไฟล์ไบนารี
  • Android GPU Inspector: ดูเอฟเฟกต์ขนาดไฟล์ ที่ลดขนาดพื้นผิวลง โดยไม่ต้องคอมไพล์เกมใหม่

เทคนิค

ต่อไปนี้เป็นรายการเทคนิคที่คุณสามารถใช้เพื่อลดขนาด เกมของคุณ

  • ดึงตรรกะของเกมบางส่วนของคุณมาวางในคุณลักษณะอย่างน้อย 1 รายการ โมดูล ซึ่งไม่ ให้นับรวมในขีดจำกัดขนาด
  • ลดความละเอียดของพื้นผิวของเกม
  • ลองใช้ WebP โดยเฉพาะอย่างยิ่งหากคุณใช้พื้นผิวที่ไม่ได้บีบอัดบน GPU WebP สร้างรูปภาพที่มีคุณภาพเดียวกันกับรูปภาพ JPEG แต่ระดับ 15% จะ เล็กลง 30% แม้ว่าจะใช้เวลาในการขยายรูปภาพ WebP นานกว่า แต่ เวลาในการคลายการบีบอัดยังคงสั้นกว่าเวลาดาวน์โหลดของแอปอย่างมาก พื้นผิวของเกม Google ได้ผสานรวมรูปแบบนี้ไว้ในเกมโอเพนซอร์ส เครื่องมือ
  • บีบอัดหรือใช้เสียงและเพลงซ้ำ
  • ใช้แฟล็กการคอมไพล์ต่างๆ เพื่อทำให้ไฟล์ไบนารีมีขนาดเล็กลง ดังนี้
    • -fvisibility=hidden – ปัจจัยที่สำคัญที่สุด ใน cmake คุณสามารถระบุ ดังนี้ วันที่
      $ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
      
    • -Oz – สำคัญสำหรับการลดขนาดด้วย หากคอมไพล์โดยใช้ gcc ให้ใช้ -Os แทน
    • -flto – บางครั้งลดขนาดไฟล์
    • แฟล็ก Linker – ใช้ --gc-sections ร่วมกับแฟล็กคอมไพเลอร์ เช่น ในชื่อ -ffunction-sections และ -fdata-sections
  • ใช้ Proguard เพื่อลดขนาดโค้ดและทรัพยากร
  • ใช้ Gradle 4.4 ขึ้นไปเพื่อสร้างไฟล์ DEX ที่เล็กลง
  • ใช้การนำส่งเนื้อหาในระบบคลาวด์

แบ่งเกมขนาดใหญ่ออกเป็น APK หลายรายการ

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

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

ใช้แนวทางปฏิบัติแนะนำสำหรับ UX

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

รองรับสถาปัตยกรรม 64 บิต

แอปที่เผยแพร่ใน Google Play ต้องรองรับสถาปัตยกรรม 64 บิต การเพิ่ม แอปเวอร์ชัน 64 บิตมีการปรับปรุงประสิทธิภาพและตั้งค่า สำหรับอุปกรณ์ที่มีฮาร์ดแวร์ 64 บิตเท่านั้น ดูข้อมูลเพิ่มเติมเกี่ยวกับการรองรับ 64 บิต

ตรวจสอบว่าเกมกำลังใช้ประสบการณ์แบบใช้งานได้ทันทีหรือไม่

หากตรรกะของเกมขึ้นอยู่กับว่าผู้ใช้มีส่วนร่วมกับ ประสบการณ์แบบใช้งานได้ทันที เรียก isInstantApp() เมธอดนี้จะแสดง true หากกระบวนการที่กำลังทำงานอยู่ในขณะนี้คือ แบบทันใจ

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

แสดงข้อความแจ้งให้ติดตั้ง

หากคุณได้สร้างประสบการณ์ทดลองใช้ Google Play Instant แล้ว เกมควรจะแจ้งให้คุณ โปรแกรมเล่นวิดีโอเพื่อติดตั้งเวอร์ชันเต็มลงในอุปกรณ์ของตน โดยใช้ showInstallPrompt() ใน Google APIs สำหรับ Android

หากต้องการเรียนรู้เพิ่มเติมว่าคุณควรติดตั้งโปรแกรมเล่นอย่างไรและเมื่อใด ดูแนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับ UX สำหรับเกมใน Google Play Instant

โอนข้อมูลไปยังประสบการณ์การใช้งานที่ติดตั้งไว้

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

หากเกมของคุณระบุ targetSandboxVersion ของ 2 ระบบจะโอนความคืบหน้าของโปรแกรมเล่น ให้เป็นเกมเวอร์ชันเต็มโดยอัตโนมัติ ไม่เช่นนั้น คุณจะต้องโอน ข้อมูลเกี่ยวกับความคืบหน้าของผู้เล่นด้วยตนเอง หากต้องการดำเนินการดังกล่าว ให้ใช้ Cookie API - แอปตัวอย่าง

แหล่งข้อมูลเพิ่มเติม

ดูข้อมูลเพิ่มเติมเกี่ยวกับ Google Play Instant จากแหล่งข้อมูลเพิ่มเติมต่อไปนี้

Codelab: สร้าง Instant App แอปแรกของคุณ
เพิ่มการรองรับ Google Play Instant ในแอปที่มีอยู่
Codelab: สร้าง Instant App แบบหลายฟีเจอร์
ปรับเปลี่ยนแอปฟีเจอร์หลายฟีเจอร์