Google Play Games บน PC กําหนดให้คุณต้องทําการเปลี่ยนแปลงความเข้ากันได้และการเพิ่มประสิทธิภาพของเกมสําหรับ PC การเปลี่ยนแปลงเหล่านี้จะช่วยให้เกมทํางานบน PC ได้และผู้ใช้จะได้รับประสบการณ์การใช้งานที่เหมาะกับแพลตฟอร์ม
นอกจากนี้ Google Play Games บน PC ยังมีข้อกำหนดด้านกราฟิก อินพุตของอุปกรณ์ และ การเล่นข้ามอุปกรณ์ด้วย ดูข้อมูลเพิ่มเติมได้ที่ คู่มือการเริ่มต้นใช้งาน
เมื่อทำการเปลี่ยนแปลงความเข้ากันได้และการเพิ่มประสิทธิภาพสำหรับ PC (นอกเหนือจากการรองรับ x86-64 ) คุณสามารถตั้งค่าเกมให้ตรวจหา Google Play Games บน PC แล้วปิดหรือเปิดใช้ฟีเจอร์เฉพาะแพลตฟอร์มได้ ซึ่งจะช่วยให้คุณใช้ APK หรือ App Bundle เดียวกันสำหรับการเผยแพร่บน Android มือถือและ PC ได้
ต่อไปนี้เป็นข้อมูลสรุปข้อกำหนดและคำแนะนำในหน้านี้
- รวม ABI x86-64 (แนะนำ)
- ตรวจหา Google Play Games ที่รันไทม์ (แนะนำ)
- จัดการเหตุการณ์ onPause (แนะนํา)
- อัปเดตองค์ประกอบ UI (ต้องระบุ)
- ปิดใช้กล่องโต้ตอบสิทธิ์ของแอป Android (ต้องระบุ)
- ปิดใช้ฟีเจอร์และสิทธิ์ของ Android ที่ไม่รองรับ (ต้องดำเนินการ)
- แทนที่ WebView ด้วย Intent ของเบราว์เซอร์ (แนะนำ)
- ปิดใช้ API ของบริการ Google Play ที่ไม่รองรับ (ต้องดำเนินการ)
- เปิดใช้พื้นที่เก็บข้อมูลที่จำกัดขอบเขต (ต้องระบุ)
- ย้ายข้อมูลไปยัง Google Analytics 4 (แนะนํา)
รวมสถาปัตยกรรม ABI x86-64
หากเป็นไปได้ โปรดตรวจสอบว่าไลบรารีทั้งหมดที่รวมอยู่ในเกมสร้างขึ้นสำหรับ x86-64 ซึ่งจะช่วยให้มั่นใจได้ถึงประสิทธิภาพและความเสถียรที่ดีที่สุดโดยหลีกเลี่ยงเลเยอร์การแปล
การรวบรวมคลัง
อย่าใช้ชุดคำสั่ง atom
เมื่อคอมไพล์ไลบรารีเพื่อให้มั่นใจว่าโปรเซสเซอร์ x86-64 จะใช้งานร่วมกันได้ดีที่สุด เช่น เมื่อใช้ gcc
ให้หลีกเลี่ยงการใช้ -march=atom และใช้ -march=x86-64 แทน
สถาปัตยกรรมเป้าหมายใน Unity
Unity 2019 และ 2020 บางเวอร์ชันไม่รองรับสถาปัตยกรรม x86-64 ใน Android โปรดตรวจสอบว่าคุณใช้ Unity 2019.4.31f1, 2020.3.19f1 หรือเวอร์ชันที่ใหม่กว่า
หากเกมใช้เกมเอนจินของ Unity เวอร์ชันที่เข้ากันได้ ให้ทำดังนี้เพื่อเปิดใช้เป้าหมาย Android x86-64
ไปที่การตั้งค่าเพลเยอร์ > การตั้งค่าอื่นๆ > การกำหนดค่า > การเขียนสคริปต์ แบ็กเอนด์ แล้วเลือก IL2CPP จากเมนูแบบเลื่อนลงเพื่อเปิดใช้ แบ็กเอนด์การเขียนสคริปต์ IL2CPP
เปิดใช้เป้าหมาย Android x86-64 สำหรับ Unity เวอร์ชันของคุณ
Unity 2018 และเวอร์ชันก่อนหน้า: ไปที่การตั้งค่าเพลเยอร์ > การตั้งค่าอื่นๆ > สถาปัตยกรรมเป้าหมาย แล้วเลือกช่องทำเครื่องหมาย x86 เนื่องจาก Unity 2018 รองรับเฉพาะเป้าหมาย x86 คุณจึงจะสร้าง x86-64 ไม่ได้ บิลด์นี้จะต้องมีข้อยกเว้นจากทีมตรวจสอบ โปรดติดต่อตัวแทนของ Google เพื่อขอยกเว้น x86
Unity 2019 Long Term Support (LTS) ขึ้นไป: ไปที่ Player Settings > Other Settings > Target Architectures แล้วเปิดใช้ x86-64 (ChromeOS)
ตรวจหา Google Play Games บน PC
คุณสามารถตรวจหาแพลตฟอร์ม Google Play Games บน PC ได้ในขณะรันไทม์ ซึ่งจะช่วยให้คุณ เปิดหรือปิดใช้ฟีเจอร์เฉพาะแพลตฟอร์มในเกมได้
ตรวจสอบฟีเจอร์ระบบ com.google.android.play.feature.HPE_EXPERIENCE เพื่อ
ดูว่าเกมของคุณทำงานบนแพลตฟอร์ม Google Play Games บน PC หรือไม่
Kotlin
var isPC = packageManager.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
Java
PackageManager pm = getPackageManager(); boolean isPC = pm.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
C#
var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); var currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity"); var packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager"); var isPC = packageManager.Call<bool>("hasSystemFeature", "com.google.android.play.feature.HPE_EXPERIENCE");
จัดการเหตุการณ์ในวงจรของ Android
คุณต้องจัดการเหตุการณ์
onPause
(c++)
ในสภาพแวดล้อม Google Play Games บน PC เกมของคุณจะปรากฏเมื่อผู้เล่นเปิดใช้งานการซ้อนทับของโปรแกรมจำลอง ดังนั้นการไม่ฟังเหตุการณ์ onPause อาจทำให้ผู้ใช้ได้รับประสบการณ์ที่ไม่ดี
อัปเดต UI
องค์ประกอบ UI และท่าทางสัมผัสบางอย่างไม่เหมาะกับ PC และควรได้รับการอัปเดต
ต้องระบุ:
- แทนที่การดำเนินการใน UI ที่ต้องใช้นิ้ว 2 นิ้วขึ้นไป (ท่าทางสัมผัสแบบมัลติทัช) เช่น คุณควรแทนที่การบีบนิ้วเพื่อซูมและท่าทางสัมผัสแบบมัลติทัชอื่นๆ ด้วยอินพุตของเมาส์และคีย์บอร์ดที่สอดคล้องกัน โปรดดูรายละเอียดเกี่ยวกับการเปลี่ยนแปลงอินพุตของอุปกรณ์ได้ที่การรองรับอินพุต
ที่แนะนำ:
- ข้อความทั้งหมดที่ผู้ใช้มองเห็นควรระบุว่า "คลิก" แทน "แตะ"
- รายการที่เลื่อนได้ควรมีแถบเลื่อน
- พื้นที่ที่ผู้ใช้สามารถเลื่อนได้ควรมีแถบเลื่อนหรือวิธีอื่นๆ ในการ เลื่อนไปมาในระยะทางไกลๆ ได้อย่างรวดเร็ว
- ไม่แสดงแป้นพิมพ์ที่คลิกได้บนหน้าจอสำหรับการป้อนข้อความ
- ข้อความที่ป้อนทั้งหมดควรอยู่ภายในขอบเขตของช่องข้อความ
- การคลิกองค์ประกอบที่มองเห็นได้ควรมีลักษณะดังนี้
- ยอมรับการคลิกที่ใดก็ได้ภายในขอบเขตที่มองเห็นได้ขององค์ประกอบ
- ไม่ยอมรับการคลิกในพื้นที่นอกองค์ประกอบที่มองเห็นได้
- กล่องโต้ตอบควรมีปุ่มปิดที่มองเห็นได้ ไม่ต้องตรวจหาการคลิกนอกขอบเขตของกล่องโต้ตอบ
ปิดใช้กล่องโต้ตอบสิทธิ์ส่วนใหญ่
ยกเว้นสิทธิ์เข้าถึงไมโครโฟนและการแจ้งเตือน Google Play Games บน PC จะไม่แสดงกล่องโต้ตอบสิทธิ์ ดังนั้นคุณไม่ควร พยายามแสดงกล่องโต้ตอบหรือขอสิทธิ์ในขณะรันไทม์ หากคุณแสดงกล่องโต้ตอบขอสิทธิ์ก่อนหน้านี้ คุณควรจะอัปเดตเกมเพื่อไม่ให้แสดงกล่องโต้ตอบดังกล่าวใน PC อีกต่อไป
ฟีเจอร์และสิทธิ์ของ Android ที่ไม่รองรับ
ต้องระบุตามกระบวนการเผยแพร่
ฟีเจอร์ฮาร์ดแวร์ทั่วไปบางอย่างในโทรศัพท์มือถือและแท็บเล็ตไม่พร้อมใช้งานใน PC ซึ่งรวมถึงฟีเจอร์ฮาร์ดแวร์ เช่น กล้องหรือตำแหน่งของผู้เล่น เกมใดก็ตามที่ต้องใช้ฟีเจอร์ที่ขาดหายไปจะดาวน์โหลดและติดตั้งใน PC ของผู้เล่นไม่ได้ คำขอสำหรับฟีเจอร์ที่ขาดหายไปใน PC จะล้มเหลวโดยอัตโนมัติ
คุณดูรายการฟีเจอร์ทั้งหมดที่พร้อมใช้งานได้โดยพิมพ์คำสั่งต่อไปนี้
adb shell pm list featuresหากต้องการทำให้เกมเข้ากันได้กับ PC คุณต้องทำการเปลี่ยนแปลงต่อไปนี้
ทำเครื่องหมายฟีเจอร์เป็นไม่บังคับในไฟล์ Manifest ของแอปโดยเพิ่ม
android:required="false"ลงในการประกาศ<uses-feature>การดำเนินการนี้จะ มีผลกับฟีเจอร์ที่ประกาศไว้แล้วในไฟล์ Manifest ของแอปเท่านั้นอย่าพยายามใช้ฟีเจอร์ที่ขาดหายไปในขณะรันไทม์ หากคุณใช้ APK เดียวกันทั้งในแทร็กสำหรับอุปกรณ์เคลื่อนที่และ PC ให้ตรวจหาสภาพแวดล้อม PC ที่รันไทม์และหลีกเลี่ยงเส้นทางโค้ดที่เกี่ยวข้อง
อย่าขอสิทธิ์ Android ที่ไม่รองรับในรันไทม์ หากคุณใช้ APK เดียวกันทั้งในแทร็กบนอุปกรณ์เคลื่อนที่และ PC ให้ตรวจหาสภาพแวดล้อมของ PC ในเวลา รันไทม์และหลีกเลี่ยงเส้นทางโค้ดที่เกี่ยวข้อง โดยไม่จำเป็นต้องอัปเดตไฟล์ Manifest
ดูข้อมูลเพิ่มเติมเกี่ยวกับความเข้ากันได้ของไฟล์ Manifest ของแอปได้ที่คู่มือความเข้ากันได้ของไฟล์ Manifest ของแอป Chromebook
ข้อกำหนดในการทดสอบฟังก์ชัน
นำฟีเจอร์ฮาร์ดแวร์เหล่านี้ออกก่อนส่งบิลด์ทดสอบแรกไปยัง Google Play Console
android.hardware.wifiandroid.hardware.bluetoothandroid.hardware.cameraandroid.hardware.location
ฟีเจอร์บางอย่างเหล่านี้อาจแสดงว่ารองรับเมื่อเรียกใช้ pm list features ด้วยเหตุผลด้านความเข้ากันได้ แต่ยังไม่ได้ใช้งานอย่างเต็มรูปแบบ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีนำฟีเจอร์ android.hardware.wifi ออกได้ที่ตรวจสอบสถานะการเชื่อมต่อและการวัดการเชื่อมต่อ ดูรายการฟีเจอร์ที่ไม่รองรับทั้งหมดได้ที่คู่มือความเข้ากันได้ของไฟล์ Manifest ของแอป
สำหรับ Chromebook
ข้อกำหนดในการทดสอบคุณภาพ
ฟีเจอร์ฮาร์ดแวร์ที่ใช้กันโดยทั่วไปเหล่านี้ใช้ร่วมกันไม่ได้กับ PC ดังนั้นคุณต้อง นำออกก่อนส่งฉบับสุดท้ายไปยัง Google Play Console
android.hardware.audio.proandroid.hardware.bluetoothandroid.hardware.cameraandroid.hardware.consumerirandroid.hardware.locationandroid.hardware.nfcandroid.hardware.sensor.lightandroid.hardware.sensor.accelerometerandroid.hardware.sensor.barometerandroid.hardware.sensor.compassandroid.hardware.sensor.gyroscopeandroid.hardware.sensor.proximityandroid.hardware.telephonyandroid.hardware.touchscreenandroid.hardware.usb.accessoryandroid.hardware.usb.hostandroid.hardware.wifiandroid.software.midi
สิทธิ์ที่ไม่รองรับ
สิทธิ์ที่ใช้กันโดยทั่วไปต่อไปนี้ไม่รองรับใน PC ดังนั้นเกมของคุณ ต้องปิดใช้สิทธิ์เหล่านี้สำหรับ Google Play Games บน PC
android.permission.ACCESS_COARSE_LOCATIONandroid.permission.ACCESS_FINE_LOCATIONandroid.permission.ACCESS_WIFI_STATEandroid.permission.BLUETOOTHandroid.permission.CAMERAandroid.permission.FOREGROUND_SERVICEandroid.permission.GET_ACCOUNTSandroid.permission.INSTALL_PACKAGESandroid.permission.READ_CONTACTSandroid.permission.READ_EXTERNAL_STORAGEandroid.permission.READ_PHONE_STATEandroid.permission.RECEIVE_BOOT_COMPLETEDandroid.permission.REQUEST_INSTALL_PACKAGESandroid.permission.SYSTEM_ALERT_WINDOWandroid.permission.USE_CREDENTIALSandroid.permission.WRITE_EXTERNAL_STORAGEandroid.permission.WRITE_SETTINGScom.google.android.gms.permission.ACTIVITY_RECOGNITION
เว็บไซต์และ WebView ภายนอก
เจตนาของเบราว์เซอร์ จะโหลดในเว็บเบราว์เซอร์ดั้งเดิมของ PC แทนที่จะโหลดใน สภาพแวดล้อมของ Google Play Games บน PC ซึ่งเป็นประสบการณ์ที่เหมาะสำหรับผู้เล่นใน สถานการณ์ส่วนใหญ่
Google Play Games บน PC รองรับ WebView เพื่อให้การพอร์ตง่ายขึ้น เนื่องจาก
ฟีเจอร์นี้จะเปิดในสภาพแวดล้อมของ Google Play Games บน PC จึงไม่มีเบราว์เซอร์เดสก์ท็อปทั่วไป หากก่อนหน้านี้คุณใช้ WebView เพื่อแชร์ข้อกำหนด
ในการให้บริการ นโยบายความเป็นส่วนตัว หรือเนื้อหาอื่นๆ ที่คล้ายกัน คุณควรเรียกใช้ Intent ของเบราว์เซอร์แทน
ปิดใช้ API ของบริการ Google Play ที่ไม่รองรับ
ต้องระบุตามกระบวนการเผยแพร่
Google Play Games บน PC มาพร้อมกับบริการ Google Play เวอร์ชันของตัวเองซึ่งมีเพียงชุดย่อยของ Google Play Services APIs คุณต้องยืนยันว่าแอปพลิเคชันของคุณไม่ได้ขึ้นอยู่กับโมดูลที่ถูกละเว้นหรือไม่รองรับบน PC อย่างมาก โปรดทราบว่าโมดูลบางอย่างอาจพร้อมใช้งาน แต่ฟังก์ชันการทำงานของโมดูลเหล่านั้นอาจไม่รองรับตลอดเวลา ตัวอย่างเช่น Firebase Cloud Messaging จะไม่ทำงานเมื่อปิด Google Play Games บน PC
โมดูลที่รองรับ
ปัจจุบัน Google Play Games บน PC รองรับและพร้อมใช้งานสำหรับโมดูลต่อไปนี้ โดยมีแผนที่จะรองรับฟีเจอร์เพิ่มเติม
- Google Sign-In (ไม่รวมการโอนบัญชี, SmartLock, การยืนยันทาง SMS, การคำนวณความซับซ้อนของรหัสผ่าน)
- Cronet
- บริการเกมของ Google Play
- งาน
- การมองเห็น
- Google Pay
รองรับแบบจำกัด
โมดูลต่อไปนี้ใช้งานได้บางส่วน เราจะพยายามอย่างเต็มที่เพื่อรองรับ เกมเหล่านี้ใน Google Play Games บน PC แต่ไม่สามารถรับประกันฟังก์ชันการทำงานของเกมได้
- การรับส่งข้อความในระบบคลาวด์ของ Google (เลิกใช้งานแล้ว ให้ใช้ Firebase Cloud Messaging)
- การตรวจสอบสิทธิ์ Firebase (การตรวจสอบสิทธิ์ด้วยหมายเลขโทรศัพท์ใช้ไม่ได้)
- Firebase Cloud Messaging
- ไลบรารีทั่วไปของ Firebase
- Firebase ML
- การกำหนดค่าระยะไกลของ Firebase
- Firebase Analytics
ไม่รองรับ
Google Play Games บน PC ไม่รองรับโมดูลต่อไปนี้ แต่จะไม่ทำให้เกิดปัญหาใน Google Play Games บน PC เมื่อโมดูลเหล่านี้ทำงานล้มเหลว
- Google Analytics (เลิกใช้แล้ว ให้ใช้ Firebase Analytics)
- Google Cast
- Awareness API
- ไดรฟ์ (เลิกใช้งานแล้วและจะนำออกในเร็วๆ นี้)
- FIDO
- ฐานข้อมูลเรียลไทม์ของ Firebase
- Firestore
- Firebase A/B Testing
- Google Fit
- Address API
- Instant Apps API
- Location API
- Google Maps SDK
- ใกล้เคียง
- พาโนรามา
- สถานที่
- Google+
- SafetyNet (เลิกใช้งานแล้ว โปรดกรอกแบบฟอร์มแสดงความสนใจเพื่อเลือกใช้ Play Integrity API ที่กำลังจะเปิดตัว)
- Google Tag Manager
- Wear OS
เสียหาย
ต้องระบุตามกระบวนการเผยแพร่
คุณต้องไม่ใช้โมดูลเหล่านี้ใน PC เนื่องจากอาจทำให้เกิดลักษณะการทำงานที่ไม่คาดคิดใน Google Play Games บน PC
เปิดใช้พื้นที่เก็บข้อมูลที่จำกัดขอบเขต
ต้องระบุตามกระบวนการเผยแพร่
ส่วนนี้ใช้ในกรณีที่เกมอ่านหรือเขียนไปยังพื้นที่เก็บข้อมูลภายนอก การบังคับใช้พื้นที่เก็บข้อมูลที่กำหนดขอบเขตเป็นวิธีสำรองในการอ่านและเขียนไปยังพื้นที่เก็บข้อมูล การดำเนินการนี้จะช่วยลดความจำเป็นในการแจ้งให้ผู้เล่นขอสิทธิ์ที่ละเอียดอ่อนเหล่านี้
android.permission.READ_EXTERNAL_STORAGEandroid.permission.WRITE_EXTERNAL_STORAGE
ดูข้อมูลเพิ่มเติมเกี่ยวกับพื้นที่เก็บข้อมูลที่จำกัดขอบเขตได้ที่
Analytics
ผลิตภัณฑ์ Google Analytics รุ่นเดิมจะใช้งานใน Google Play Games บน PC ไม่ได้ หาก เกมของคุณเป็นไปตามข้อกำหนดนี้ คุณควรย้ายข้อมูลไปยัง Google Analytics 4
การเปลี่ยนแปลงนี้จะส่งผลต่อเกมของคุณก็ต่อเมื่อคุณใช้ Google Analytics 360 อยู่ในปัจจุบัน หากคุณใช้ Firebase SDK เพื่อติดตามเหตุการณ์วิเคราะห์ในเกมและเห็นเกมเป็นพร็อพเพอร์ตี้ในคอนโซล Google Analytics คุณก็ไม่ต้องดำเนินการใดๆ เพิ่มเติม