Trò chơi thẻ bài Pokémon (TCG) đã được yêu thích trên toàn cầu trong gần 30 năm. Pokémon TCG Pocket mới ra mắt được thiết kế để cho phép người chơi trải nghiệm các bộ sưu tập và trận chiến Pokémon mọi lúc, mọi nơi mà không cần thẻ bài thực. Tính năng hỗ trợ tiếp cận của trò chơi trên điện thoại thông minh đã góp phần làm trò chơi này trở nên phổ biến rộng rãi trong cộng đồng người dùng.
Mặc dù có vẻ như là một trò chơi thẻ bài thông thường, nhưng Pokemon TCG Pocket sử dụng chương trình đổ bóng phức tạp, gây ra thách thức đáng kể trong việc giảm thời gian biên dịch. Để giải quyết vấn đề này và đảm bảo đồ hoạ chất lượng cao cũng như trải nghiệm chơi mượt mà, phiên bản Pokémon TCG Pocket dành cho Android đã sử dụng Vulkan, API đồ hoạ thế hệ mới.
Tài liệu này đi sâu vào việc nhóm phát triển Pokémon TCG Pocket sử dụng Vulkan, những thách thức gặp phải và các lợi thế mà Vulkan mang lại.
Lý do sử dụng Vulkan
Ban đầu, nhóm phát triển Pokémon TCG Pocket dự định sử dụng OpenGL ES. Tuy nhiên, họ đã quyết định sử dụng Vulkan, một API đồ hoạ có tương lai đầy hứa hẹn. Sau đây là những lý do chính khiến chúng tôi chọn Vulkan:
- Quản lý ứng dụng lâu dài: Nhận thấy xu hướng Vulkan trở thành API đồ hoạ chính cho Android, nhóm nghiên cứu đã xác định rằng Vulkan là lựa chọn tối ưu để quản lý ứng dụng lâu dài.
- Hiệu suất ổn định trên thiết bị có thông số kỹ thuật thấp: Để mang lại trải nghiệm mượt mà cho nhiều người dùng, hiệu suất ổn định trên thiết bị có thông số kỹ thuật thấp là điều cần thiết. Khả năng giảm tải CPU của Vulkan dự kiến sẽ cải thiện tốc độ khung hình và mức tiêu thụ pin.
- Tránh thay đổi trên quy mô lớn sau khi phát hành: Việc chuyển từ OpenGL ES sang Vulkan sau khi phát hành sẽ đòi hỏi nhiều sửa đổi, có thể làm gián đoạn trải nghiệm người dùng. Việc sử dụng Vulkan ngay từ đầu đã giảm thiểu nhu cầu thay đổi đáng kể như vậy.
Triển khai Vulkan bằng Unity
Pokémon TCG Pocket sử dụng Unity làm công cụ phát triển trò chơi. Unity cung cấp một quy trình đơn giản để triển khai Vulkan chỉ bằng một lần nhấp. Bằng cách sử dụng Unity, nhóm phát triển đã tích hợp liền mạch Vulkan mà không cần đào tạo chuyên sâu. Ngoài ra, việc thiếu các biện pháp điều chỉnh dành riêng cho Vulkan cho môi trường và công cụ phát triển cũng góp phần làm giảm hiệu quả chi phí.

Những thách thức trong việc triển khai Vulkan
Mặc dù việc triển khai Vulkan tương đối đơn giản, nhưng sau đó, nhóm phát triển gặp phải một số thách thức:
- Vấn đề cụ thể theo thiết bị: So với OpenGL ES, một số trình điều khiển của nhà sản xuất cho thấy độ ổn định thấp hơn với Vulkan, dẫn đến các vấn đề cụ thể theo thiết bị.
- Hỗ trợ Vulkan chưa đầy đủ trong phần mềm trung gian: Một số phần mềm trung gian thiếu tính năng hỗ trợ đầy đủ cho Vulkan, khiến nhóm phải chờ bản cập nhật phần mềm trung gian.
Nhóm phát triển đã giải quyết những thách thức này thông qua nhiều chiến lược, bao gồm cả việc tập hợp một nhóm các nhà phát triển trò chơi tiêu dùng giàu kinh nghiệm để khắc phục sự cố (vì họ có nhiều kinh nghiệm về API đồ hoạ cấp thấp hoặc công cụ tuỳ chỉnh) và cộng tác với các nhóm Google và Unity để giải quyết từng vấn đề. Để mở rộng khả năng tương thích của thiết bị, quá trình kiểm thử đã bao gồm các thiết bị cao cấp từ trung cấp đến cũ (phát hành cách đây 2-3 năm) để xác định thông số kỹ thuật đề xuất của thiết bị.
Ưu điểm của Vulkan
Việc sử dụng Vulkan mang lại một số lợi ích cho Pokémon TCG Pocket:
- Giảm thời gian biên dịch chương trình đổ bóng: Vulkan giảm đáng kể thời gian biên dịch chương trình đổ bóng, ngay cả đối với một số lượng lớn chương trình đổ bóng. Ví dụ: thời gian biên dịch OpenGL ES có thể vượt quá 1 giây, nhưng điều này không còn là vấn đề với tính năng kết xuất Vulkan.
- Mở rộng phạm vi thiết bị được hỗ trợ: Các điểm cải tiến về tốc độ khung hình và mức tiêu thụ pin cho phép hỗ trợ nhiều thiết bị hơn, đảm bảo trải nghiệm mượt mà hơn cho nhiều người dùng hơn.
- Thông tin đo từ xa hiệu quả hơn nhờ lớp xác thực Vulkan: Lớp xác thực Vulkan rất hữu ích trong việc xác định nguyên nhân gốc rễ của sự cố, bổ sung dữ liệu do báo cáo ANR/Sự cố của Vitals cung cấp.
Thông báo dành cho nhà phát triển
Nhóm phát triển Pokémon TCG Pocket đưa ra lời khuyên sau đây cho các nhà phát triển đang cân nhắc sử dụng Vulkan cho dự án của mình:
- Ngoài việc giảm thời gian biên dịch chương trình đổ bóng, Vulkan còn mang lại những lợi ích đáng kể về hiệu suất.
- Việc sử dụng vkQuality để quay lại sử dụng OpenGL ES có thể mở rộng khả năng hỗ trợ thiết bị, mặc dù Pokémon TCG Pocket chưa sử dụng tính năng này.
Kết luận
Bằng cách sử dụng Vulkan, nhóm phát triển Pokémon TCG Pocket đã có thể tối ưu hoá đồ hoạ trên nhiều thiết bị để đảm bảo trải nghiệm mượt mà và hấp dẫn cho mọi người chơi. Với việc liên tục bổ sung tính năng và phát triển tiềm năng trong tương lai, Vulkan dự kiến sẽ mang lại nhiều lợi ích hơn nữa theo thời gian.