หากคุณใช้ C หรือ C++ เพื่อพัฒนาหรือปรับแต่งเอนจินเกม ข้อกำหนดต่อไปนี้มีความสำคัญต่อการผสานรวมการรองรับ Android เข้ากับเอนจินเกม
- ใช้ประโยชน์จากเครื่องมือพัฒนาแอป Android
- สร้างกิจกรรม
- วาดลงบนหน้าจอ
- ประมวลผลเหตุการณ์การป้อนข้อมูล
- เอาต์พุตเสียง
- จัดการความทรงจำ
- ทดสอบและขัดเกลา
- เผยแพร่ไปยัง Google Play
ข้อกำหนดที่อธิบายไว้ในหน้านี้ไม่ได้สอนวิธีพัฒนาเอนจินเกมตั้งแต่ต้น แต่จะระบุส่วนที่ Android มีความโดดเด่นเมื่อเทียบกับแพลตฟอร์มอื่นๆ
ใช้ประโยชน์จากเครื่องมือพัฒนาแอป Android
Android Studio มีเครื่องมือที่คุณใช้ทำสิ่งต่อไปนี้ได้
- กำหนดค่าโปรเจ็กต์
- สร้าง แก้ไขข้อบกพร่อง และแพ็กเกจเกม
- ตรวจสอบประสิทธิภาพของเกมโดยใช้โปรไฟล์เลอร์ระบบ, CPU และหน่วยความจำ
- ตรวจสอบเนื้อหาของแพ็กเกจเกมหรือ App Bundle
- ผสานรวมฟีเจอร์เพิ่มเติมของ Android SDK และ NDK
Android Graphics Inspector สามารถระบุลักษณะประสิทธิภาพการแสดงผล ของเกม และช่วยคุณตรวจสอบรายละเอียดของเฟรมที่แสดงผลโดยใช้การสร้างโปรไฟล์เฟรม
หากใช้ Microsoft Visual Studio เป็นหลัก คุณสามารถใช้ส่วนขยายการพัฒนาเกม Android (AGDE) เพื่อเพิ่มเป้าหมาย Android ลงในโปรเจ็กต์ที่มีอยู่ได้ AGDE รองรับการแก้ไขข้อบกพร่องแบบเนทีฟใน Visual Studio และ มีเครื่องมือการจัดทำโปรไฟล์ของ Android Studio หลายรายการในเวอร์ชันแบบสแตนด์อโลน
สร้างกิจกรรม
เกมของคุณต้องสร้างและโต้ตอบกับ
Activity
ดูข้อมูลเกี่ยวกับวงจรของกิจกรรม
ใน Android เพื่อทำความเข้าใจว่าเมื่อใดที่ระบบสร้าง เริ่ม ดำเนินการต่อ หยุดชั่วคราว
หยุด และทำลายกิจกรรม
อ่านเกี่ยวกับไลบรารี GameActivity
ซึ่งผสานรวมและตอบสนองความต้องการที่เกี่ยวข้องกับ Activity
(หน้าต่างเกม
วงจร
การแสดงผล การจัดการเหตุการณ์) ของเอนจินเกม C หรือ C++ แบบเนทีฟ
วาดลงบนหน้าจอ
เกมของคุณต้องวาดออบเจ็กต์และสไปรต์บนหน้าจอ ดูข้อมูลเกี่ยวกับ
Android SurfaceView
และวิธี
กำหนดค่ากราฟิกในเกมเอนจิน
อุปกรณ์ Android รองรับอัตราการรีเฟรชของจอแสดงผลที่แตกต่างกัน ดูข้อมูลเกี่ยวกับ การแสดงผลใน Game Loop เพื่อป้องกันเฟรมหลุดและ บัฟเฟอร์เฟรมทำงานผิดปกติ
อ่านเกี่ยวกับวิธีบรรลุการเว้นระยะเฟรมเพื่อการแสดงผลที่ราบรื่นใน OpenGL และ Vulkan เพิ่มประสิทธิภาพอัตราเฟรมด้วย Performance Tuner
ใช้การป้องกันรอยหยักแบบหลายตัวอย่าง (MSAA) เพื่อปรับปรุงคุณภาพการแสดงผล MSAA สามารถใช้ได้โดยมีค่าใช้จ่ายเพิ่มเติมน้อยมาก ดูข้อมูลเพิ่มเติมได้ที่บล็อกโพสต์ Multisampled Anti-aliasing For Almost Free — On Tile-Based Rendering Hardware
ประมวลผลเหตุการณ์การป้อนข้อมูล
เอนจินเกมจะได้รับเหตุการณ์อินพุตจากแหล่งที่มาต่างๆ หากต้องการ ประสบการณ์การเล่นเกมที่สมจริง โปรดดูวิธีรองรับแหล่งที่มาของการป้อนข้อมูลต่างๆ ของ Android
เอาต์พุตเสียง
เอนจินเกมต้องส่งเสียงไปยังอุปกรณ์และเวอร์ชัน Android ต่างๆ ดูข้อมูลเกี่ยวกับ Oboe ซึ่งเป็นไลบรารีเสียง C++ แบบโอเพนซอร์สของเราเพื่อรวมเสียงประสิทธิภาพสูงไว้ในเกม
ใช้ Oboe เพื่อให้ได้เวลาในการตอบสนองที่ต่ำที่สุด หลีกเลี่ยงข้อบกพร่องด้านเสียงที่เฉพาะเจาะจง และเลือกไลบรารีแบบเนทีฟที่ดีที่สุดโดยอัตโนมัติ (เช่น AAudio หรือ OpenSL ES)
จัดการความทรงจำ
ในอุปกรณ์ Android ระบบจะพยายามใช้หน่วยความจำของระบบ (RAM) ให้มากที่สุดเท่าที่จะเป็นไปได้ และทำการเพิ่มประสิทธิภาพหน่วยความจำต่างๆ เพื่อเพิ่มพื้นที่ว่างเมื่อจำเป็น ดูวิธีจัดการการใช้งานหน่วยความจำเพื่อหลีกเลี่ยง การทำให้เกมช้าลงหรือออกจากเกม
ทดสอบและขัดเกลา
แอป Android จะขัดข้องทุกครั้งที่มีการออกโดยไม่คาดคิดซึ่งเกิดจาก ข้อยกเว้นหรือสัญญาณที่ไม่ได้จัดการ ดูวิธี ตรวจหาและวินิจฉัยข้อขัดข้อง อ่าน Stack Trace ข้อยกเว้นของหน่วยความจำและเครือข่าย วิธีใช้ Logcat และวิธีทำความเข้าใจ ข้อผิดพลาดเฉพาะของ Java และ Kotlin
เผยแพร่ไปยัง Google Play
ผู้เล่นดาวน์โหลดเกมของคุณด้วยอุปกรณ์ Android ต่างๆ ในประเทศต่างๆ สภาพเครือข่าย และแพ็กเกจอินเทอร์เน็ต ดูวิธีใช้ Google Play เพื่อ ส่ง App Bundle และ Asset Pack สำหรับเกมขนาดใหญ่พร้อมประโยชน์ของเครือข่ายนำส่งเนื้อหา