Pokémon TCG Pocket: การใช้ Vulkan ในการพัฒนาเกมเล่นฆ่าเวลาเท่านั้น

ภาพหน้าจอโลโก้ชื่อเกมจาก Pokémon TCG Pocket

ผู้คนทั่วโลกสนุกกับเกมการ์ดโปเกมอน (TCG) มาเกือบ 30 ปีแล้ว Pokémon TCG Pocket ที่เพิ่งเปิดตัวไปเมื่อเร็วๆ นี้ออกแบบมาเพื่อให้ผู้เล่นได้สัมผัสประสบการณ์การสะสมและต่อสู้กับโปเกมอนได้ทุกที่ทุกเวลาโดยไม่ต้องใช้การ์ดจริง ความสามารถในการเข้าถึงเกมบนสมาร์ทโฟนมีส่วนทำให้เกมได้รับความนิยมอย่างแพร่หลายในหมู่ผู้ใช้

แม้ว่าจะดูเหมือนเกมการ์ดสะสมแบบสบายๆ แต่ Pokemon TCG Pocket ได้ใช้โปรแกรมเปลี่ยนสีที่ซับซ้อน ซึ่งทำให้เกิดปัญหาสำคัญในการลดเวลาคอมไพล์ เพื่อเป็นการแก้ไขปัญหานี้และเพื่อให้มั่นใจว่ากราฟิกมีคุณภาพสูงและประสบการณ์การเล่นเกมราบรื่น Pokémon TCG Pocket เวอร์ชัน Android จึงรองรับ Vulkan ซึ่งเป็น API กราฟิกรุ่นถัดไป

เอกสารนี้จะเจาะลึกการใช้งาน Vulkan ของทีมพัฒนา Pokémon TCG Pocket, ปัญหาที่พบ และข้อดีของ Vulkan

รูปที่ 1 ฉากในเกม Pokémon TCG Pocket

เหตุผลในการใช้ Vulkan

ในช่วงแรก ทีมพัฒนา Pokémon TCG Pocket วางแผนที่จะใช้ OpenGL ES แต่ตัดสินใจที่จะใช้ Vulkan ซึ่งเป็น API กราฟิกที่อนาคตสดใส เหตุผลหลักที่เลือกใช้ Vulkan มีดังนี้

  • การจัดการแอปในระยะยาว: ทีมตระหนักดีว่า Vulkan กำลังกลายเป็น API กราฟิกที่โดดเด่นสำหรับ Android จึงพิจารณาว่า Vulkan เป็นตัวเลือกที่ดีที่สุดสำหรับการจัดการแอปในระยะยาว
  • ประสิทธิภาพที่เสถียรในอุปกรณ์ที่มีสเปคต่ำ: ประสิทธิภาพที่เสถียรในอุปกรณ์ที่มีสเปคต่ำเป็นสิ่งจำเป็นเพื่อให้ผู้ใช้จำนวนมากได้รับประสบการณ์การใช้งานที่ราบรื่น ความสามารถในการลดภาระของ CPU ของ Vulkan คาดว่าจะช่วยปรับปรุงอัตราเฟรมและการสิ้นเปลืองแบตเตอรี่
  • หลีกเลี่ยงการเปลี่ยนแปลงครั้งใหญ่หลังการเผยแพร่: การเปลี่ยนจาก OpenGL ES เป็น Vulkan หลังการเผยแพร่จะทำให้เกิดการแก้ไขอย่างกว้างขวาง ซึ่งอาจส่งผลต่อประสบการณ์ของผู้ใช้ การใช้ Vulkan ตั้งแต่เริ่มต้นช่วยลดความจำเป็นในการเปลี่ยนแปลงที่สำคัญเช่นนี้

ใช้ Vulkan กับ Unity

Pokémon TCG Pocket ใช้ Unity เป็นเกมเอนจิน Unity มีกระบวนการที่มีประสิทธิภาพในการนำ Vulkan ไปใช้ด้วยคลิกเดียว การใช้ Unity ทำให้ทีมพัฒนาผสานรวม Vulkan ได้อย่างราบรื่นโดยไม่ต้องมีการฝึกอบรมเฉพาะทาง นอกจากนี้ การไม่มีการปรับเฉพาะสำหรับ Vulkan สำหรับสภาพแวดล้อมและเครื่องมือการพัฒนายังช่วยประหยัดต้นทุนด้วย

Auto Graphics API ใน Unity
รูปที่ 2 Auto Graphics API ใน Unity

ปัญหาในการใช้งาน Vulkan

แม้ว่าการใช้งาน Vulkan จะค่อนข้างตรงไปตรงมา แต่ทีมพัฒนาก็พบปัญหาบางอย่างหลังจากนั้น

  • ปัญหาเฉพาะอุปกรณ์: เมื่อเทียบกับ OpenGL ES ไดร์เวอร์ของผู้ผลิตบางรายมีความเสถียรน้อยกว่าเมื่อใช้ Vulkan ซึ่งทำให้เกิดปัญหาเฉพาะอุปกรณ์
  • การรองรับ Vulkan ไม่สมบูรณ์ในมิดเดิลแวร์: มิดเดิลแวร์บางรายการไม่รองรับ Vulkan อย่างเต็มรูปแบบ ทำให้ทีมต้องรอการอัปเดตมิดเดิลแวร์

ทีมพัฒนาได้แก้ปัญหาเหล่านี้ผ่านกลยุทธ์หลายอย่าง ซึ่งรวมถึงการรวบรวมทีมนักพัฒนาเกมสำหรับผู้บริโภคที่มีประสบการณ์เพื่อแก้ปัญหา (เนื่องจากมีประสบการณ์ด้าน API กราฟิกระดับล่างหรือเครื่องยนต์ที่กำหนดเอง) และการร่วมมือกับทีม Google และ Unity เพื่อแก้ปัญหาแต่ละรายการ ในการขยายความเข้ากันได้ของอุปกรณ์ การทดสอบได้รวมอุปกรณ์ระดับกลางไปจนถึงระดับสูงรุ่นเก่า (เปิดตัวเมื่อ 2-3 ปีก่อน) เพื่อระบุข้อมูลจำเพาะของอุปกรณ์ที่แนะนำ

ข้อดีของ Vulkan

การใช้ Vulkan มีประโยชน์หลายประการสำหรับ Pokémon TCG Pocket ดังนี้

  • ลดเวลาในการคอมไพล์โปรแกรมเปลี่ยนสี: Vulkan ลดเวลาในการคอมไพล์โปรแกรมเปลี่ยนสีได้อย่างมาก แม้จะใช้กับโปรแกรมเปลี่ยนสีจำนวนมากก็ตาม ตัวอย่างเช่น เวลาคอมไพล์ OpenGL ES อาจนานกว่า 1 วินาที แต่คุณไม่จําเป็นต้องกังวลเกี่ยวกับเรื่องนี้อีกต่อไปเมื่อใช้การแสดงผล Vulkan
  • อุปกรณ์ที่รองรับได้มากขึ้น: การปรับปรุงอัตราเฟรมและการใช้แบตเตอรี่ช่วยให้รองรับอุปกรณ์ได้หลากหลายมากขึ้น เพื่อให้ผู้ใช้จำนวนมากได้รับประสบการณ์การใช้งานที่ราบรื่นยิ่งขึ้น
  • การติดตามที่ดียิ่งขึ้นด้วยเลเยอร์การตรวจสอบ Vulkan: เลเยอร์การตรวจสอบ Vulkan มีประโยชน์มากในการระบุสาเหตุของปัญหา ซึ่งช่วยเสริมข้อมูลที่ได้รับจากรายงาน ANR/ข้อขัดข้องของ Vitals

ข้อความถึงนักพัฒนาแอป

ทีมพัฒนา Pokémon TCG Pocket มีคำแนะนำต่อไปนี้สำหรับนักพัฒนาแอปที่พิจารณาใช้ Vulkan ในโปรเจ็กต์

  • นอกจากจะช่วยประหยัดเวลาในการคอมไพล์ shader แล้ว Vulkan ยังให้ประโยชน์ด้านประสิทธิภาพที่สำคัญ
  • การใช้ vkQuality เพื่อเปลี่ยนไปใช้ OpenGL ES อาจขยายการรองรับอุปกรณ์ได้ แม้ว่า Pokémon TCG Pocket ยังไม่ได้ใช้ก็ตาม

บทสรุป

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