ภาพรวมของ Android Performance Tuner (Unity)

คู่มือนี้อธิบายวิธีใช้ปลั๊กอิน Unity เพื่อบันทึกและอัปโหลดข้อมูลเวลาเฟรมจาก Unity 2017.4 ขึ้นไป

สำหรับเอนจินเกมที่ใช้ C หรือ C++ โปรดดูคู่มือสำหรับเอนจินเกมเนทีฟ

ฉากหลัง

องค์ประกอบสำคัญของประสบการณ์การเล่นเกมคือประสิทธิภาพการแสดงผล ประสิทธิภาพการแสดงผล เป็นผลลัพธ์ของข้อมูลเข้า 2 รายการต่อไปนี้

  • อัตราเฟรม: ความถี่ในการวาดเฟรม
  • การตั้งค่าคุณภาพกราฟิก: ระดับความแม่นยำที่แสดงเฟรม รวมถึงความแม่นยำในการจำลองและกราฟิก

สำหรับเกม ประสิทธิภาพการแสดงผลที่ดีจะกำหนดดังนี้

  • แสดงอัตราเฟรมที่สม่ำเสมอและคงที่ (นั่นคือ เปอร์เซ็นต์ของ เฟรมที่แสดงผลด้วยความถี่ที่ต้องการ)
  • การแสดงผลเฟรมที่ความถี่สูงสุดเท่าที่จะทำได้ในขณะที่ยังคง ความเสถียร โดยปกติคือ 30 หรือ 60 FPS ขึ้นอยู่กับประเภทของเกม
  • เพิ่มระดับรายละเอียดสำหรับผู้ใช้ให้ได้มากที่สุดตามขนาดหน้าจอและความหนาแน่น ในขณะที่ยังคงรักษาอัตราเฟรมที่ต้องการและเสถียรไว้ได้

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

  • การตั้งค่าคุณภาพที่เฉพาะเจาะจง
  • ฉากที่เฉพาะเจาะจงในเกม
  • รุ่นอุปกรณ์หรือข้อมูลจำเพาะของอุปกรณ์ที่เฉพาะเจาะจง

บันทึกและอัปโหลดข้อมูล

ไลบรารี Tuning Fork อาศัยการเรียกใช้ฟังก์ชัน Tick อย่างใดอย่างหนึ่ง ในแต่ละเฟรมโดยไลบรารีการเว้นวรรคเฟรมของ Android (หรือโดยเอนจิน Unity สำหรับ Unity เวอร์ชันเก่า ที่ไม่มีไลบรารีการเว้นวรรคเฟรม) ภายในไลบรารี ข้อมูลเครื่องหมายนี้จะได้รับการรวบรวมเป็นฮิสโทแกรม จากนั้นจะมีการอัปโหลดไปยัง Google Play เป็นระยะๆ ผ่านปลายทาง HTTP โดยแต่ละเครื่องหมายจะ บันทึกว่าเชื่อมโยงกับคีย์เครื่องดนตรีและคำอธิบายประกอบ คุณกำหนดคำอธิบายประกอบโดยใช้ปลั๊กอิน Unity

คีย์ระบุตำแหน่งของ Tick

คีย์เครื่องมือจะระบุตำแหน่งในเฟรมที่เครื่องหมายมาจากและเป็น จำนวนเต็มที่ต้องส่งไปยังการเรียกฟังก์ชันเครื่องหมายแต่ละรายการ ซึ่งปลั๊กอิน Unity จะดำเนินการนี้โดยอัตโนมัติ หากเปิดใช้ตัวเลือกการเว้นระยะเฟรมที่เพิ่มประสิทธิภาพแล้วในการตั้งค่า Unity สำหรับเกม (พร้อมใช้งานใน Unity เวอร์ชัน 2019.3.14 ขึ้นไป) Android Performance Tuner จะใช้ข้อมูลจากไลบรารีการเว้นระยะเฟรมของ Android เพื่อรายงานเมตริกที่ได้รับการปรับปรุง

คำอธิบายประกอบ

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

  • ระดับเกมปัจจุบัน
  • กำลังโหลดฉากที่เฉพาะเจาะจง
  • "บอสใหญ่" อยู่บนหน้าจอ
  • ข้อมูลสถานะเกมอื่นๆ ที่เกี่ยวข้อง

การกำหนดคำอธิบายประกอบจะกระทำในกล่องโต้ตอบที่ปลั๊กอิน Unity จัดเตรียมไว้

ภายใน ไลบรารี Tuning Fork จะใช้รูปแบบบัฟเฟอร์โปรโตคอลของ Google เพื่อจัดเก็บคำอธิบายประกอบและพารามิเตอร์ความแม่นยำ นี่คือโปรโตคอลหลายภาษาที่กำหนดไว้อย่างดี สำหรับข้อมูลที่มีโครงสร้างที่ขยายได้ ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบเกี่ยวกับ Protocol Buffers

พารามิเตอร์ความแม่นยำ

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

ค่าใช้จ่ายเพิ่มเติมของหน่วยความจำและ CPU

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

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

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

คำขอเว็บ

ไลบรารีจะส่งคำขอ 2 ประเภทไปยังปลายทางของเซิร์ฟเวอร์

  • คำขอ generateTuningParameters เมื่อเริ่มต้น
  • เป็นระยะๆ ระหว่างการเล่นเกม uploadTelemetry คำขอส่งข้อมูลไปยังเซิร์ฟเวอร์

ผู้เล่นออฟไลน์

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

ข้อกำหนด

หากต้องการใช้ปลั๊กอินในเกม ให้ใช้ Unity เวอร์ชันที่รองรับ

  • Unity เวอร์ชัน 2017.4 ขึ้นไปและ .NET เวอร์ชัน 4.6
  • ต้องใช้ Unity 2018.2 เพื่อใช้ไฟล์เสริมของ APK
  • ต้องใช้ Unity เวอร์ชัน 2019.3.14 ขึ้นไปเพื่อปรับปรุงการเว้นระยะเฟรมและการวัด GPU
  • หากต้องการรองรับฉากที่ใช้ Addressables คุณต้องใช้ Unity 2019.3 ขึ้นไปและแพ็กเกจ Addressables 1.19.4 ขึ้นไป

ผสานรวม Android Performance Tuner ใน Unity

ดูข้อมูลเกี่ยวกับการผสานรวม Android Performance Tuner ใน Unity ได้ที่ เปิดใช้ API