Hồi WWDC 2022 được tổ chức, với sự ra mắt của thế hệ chip M2, Apple có vài phút ngắn ngủi chứng minh rằng họ đang rất nghiêm túc với mảng game trên macOS. No Man's Sky và Resident Evil VIllage có thể không phải là một trong những game hot nhất hành tinh ở thời điểm hiện tại. Nhưng chúng là những ví dụ điển hình mô tả sức mạnh của Apple Silicon, với những khung cảnh đồ họa đầy chi tiết.
Khi ấy, mình viết rằng, câu chuyện game trên macOS về sau có thành công hay không vẫn là câu chuyện con gà quả trứng. Người dùng macOS không quan tâm nhiều tới chuyện chơi điện tử vì có ít game hay trên nền tảng này quá. Điều đó dẫn đến việc các nhà phát triển cũng chẳng mặn mà với việc đem game sang HĐH của Apple. Vòng lặp lại tiếp diễn khi macOS ít game quá, không ai quan tâm…
Điều đó đưa chúng ta đến với một giả thuyết, cũng là kiến trúc chip ARM, tính khả thi của việc đem những game đã từng phát triển phiên bản cho Nintendo Switch sang kiến trúc Apple Silicon cao tới đâu?
Phải nói kỹ hơn, bài này mình hoàn toàn không đề cập tới khả năng những game độc quyền của Nintendo phát triển cho Switch cập bến macOS. Chuyện đó đảm bảo 100% không bao giờ xảy ra. Thay vào đó, mình muốn đào sâu vào khả năng của Apple Silicon như một con chip xử lý game và chuyện chơi điện tử trên máy tính chạy macOS.
Khi ấy, mình viết rằng, câu chuyện game trên macOS về sau có thành công hay không vẫn là câu chuyện con gà quả trứng. Người dùng macOS không quan tâm nhiều tới chuyện chơi điện tử vì có ít game hay trên nền tảng này quá. Điều đó dẫn đến việc các nhà phát triển cũng chẳng mặn mà với việc đem game sang HĐH của Apple. Vòng lặp lại tiếp diễn khi macOS ít game quá, không ai quan tâm…
Điều đó đưa chúng ta đến với một giả thuyết, cũng là kiến trúc chip ARM, tính khả thi của việc đem những game đã từng phát triển phiên bản cho Nintendo Switch sang kiến trúc Apple Silicon cao tới đâu?
Phải nói kỹ hơn, bài này mình hoàn toàn không đề cập tới khả năng những game độc quyền của Nintendo phát triển cho Switch cập bến macOS. Chuyện đó đảm bảo 100% không bao giờ xảy ra. Thay vào đó, mình muốn đào sâu vào khả năng của Apple Silicon như một con chip xử lý game và chuyện chơi điện tử trên máy tính chạy macOS.
Nintendo Switch xuất hiện trong câu chuyện này đơn giản vì thư viện game đồ sộ của hệ máy game rất thành công này, và thực tế nó được vận hành bởi một SoC kiến trúc ARM.
Ở khía cạnh thuần kỹ thuật, không bàn đến chiến lược kinh doanh, vì sao cùng là ARM, đã thế còn mạnh hơn, mà Apple Silicon chưa được ngành game để tâm như thành công rực rỡ của Nintendo mang tên Switch?
Giải pháp giả lập và chuyển kiến trúc tập lệnh bằng Rosetta 2
Có lần mình đọc trên Reddit, đại diện nhà phát triển Triband của tựa game What the Golf? từng phát biểu rằng, trên quan điểm của một nhà làm game, Nintendo Switch có sức mạnh kém cả một chiếc iPhone X. Trò này phát hành trên cả Apple Arcade chơi trên iPhone và iPad, cũng như Nintendo Switch, nên quy trình phát triển tồn tại khá nhiều sự tương đồng.
Ở một khía cạnh khác, hồi cuối năm 2020, ngay khi MacBook Air và Pro 13 inch ra mắt, đã có lập trình viên thành công trong việc chạy giả lập game Nintendo Switch bằng ứng dụng Yuzu, trên chiếc laptop trang bị chip M1, thông qua MoltenVK runtime library, thư viện cho phép vận hành API Vulkan chồng lên API Metal của macOS.
https://twitter.com/daeken/status/1340802622547214338
Dĩ nhiên điều này khả thi, nhưng Nintendo có những động thái rất rắn để truy quét những người chơi game giả lập, đơn giản vì một lý do duy nhất, không phải ai cũng mua game bản quyền của Nintendo rồi trích xuất ROM để chạy trên phần mềm giả lập thông qua các nền tảng máy tính và thiết bị khác. Xin phép nhắc lại, tự trích xuất ROM anh em đã mua để chơi giả lập thì không vi phạm luật bản quyền sở hữu trí tuệ, nhưng tải miễn phí ROM trên mạng về để chơi lại là hành vi phạm pháp.
Đấy là lý do Nintendo trong thời gian qua đã truy quét không ít những trang web chia sẻ ROM lậu, thậm chí khởi kiện cả những nhóm hacker tìm ra được giải pháp bẻ khóa hệ thống quản lý nội dung số trên các nền máy console của họ.
Quảng cáo
Giải pháp thứ hai để đem game PC lên macOS là Rosetta 2. Giải pháp này đã được chứng minh khả năng rất nhiều lần, với không ít game khủng được đặt chân lên macOS. Chỉ có điều, game macOS mới thì đếm trên đầu ngón tay, còn lại hầu hết thư viện game đều đã cũ, phát hành 4 đến 5 năm về trước. Cái này liên quan nhiều hơn tới việc port game Windows và console sang macOS, mượn tính năng dịch code của Rosetta 2. Còn ở đây chúng ta đang nói đến chuyện viết một bản game chạy được native trên chip Apple Silicon.
Low-level API và những rắc rối để chạy game trên API Metal
Nhưng tính khả thi của việc port game từ các nền tảng khác sang macOS dễ đến đâu? Lấy ví dụ port game từ Nintendo Switch, sử dụng API NVN của Nvidia, hay game trên PC và Xbox, vốn sử dụng DirectX do Microsoft tạo ra?
Để trả lời câu hỏi này, mình đã ngồi nói chuyện với bác Yan Marchal, nhà phát triển game người Pháp. Gần đây nhất bác cùng các đồng sự tại Sanuk Games đã tạo ra tựa game Drum Box trên Nintendo Switch. Còn trong quá khứ, bác từng là một trong những lập trình viên của Ubisoft từ năm 1996 đến 2003, từng phát triển những tác phẩm như F1 Racing Simulation hay 187 Ride or Die. Chính kinh nghiệm trong quá trình phát triển game trên Switch của bác Marchal đã cho mình khá nhiều kiến thức vô giá về quá trình tạo ra một trò chơi điện tử.
Thắc mắc đầu tiên của mình là về kiến trúc tập lệnh. Lo ngại ban đầu được đưa ra là cùng kiến trúc tập lệnh ARM, nhưng cách vận hành của CPU và GPU trong chip Nvidia Tegra X1 và X1+ trong các thế hệ máy Switch có thể sẽ khác rất nhiều so với cách vận hành của CPU và GPU trong hai thế hệ SoC Apple M1 và M2. Lý do là Tegra được vận hành dựa trên kiến trúc tập lệnh ARM v8-A, còn Apple Silicon thì là ARM v8.5-A.
Bác Marchal khẳng định, ở thời điểm hiện tại trừ phi các nhà phát triển game làm việc tại các studio thuộc Sony, Nintendo hay Microsoft, còn lại rất hiếm khi những dự án game đa nền phải đụng đến lập trình ở API low-level như DirectX trên PC và Xbox, GNM-X trên PS4 và PS5, hay NVN trên Switch. Lý do là những bộ công cụ phát triển game phổ biến nhất hiện nay như Unreal hay Unity đều đã hỗ trợ native những API ấy.
Quảng cáo
Công việc bây giờ chỉ còn là làm cách nào để tối ưu mã mô phỏng và quá trình vẽ đa giác cho CPU, và tối ưu shader trên GPU để game có hiệu năng tốt nhất trên mọi nền tảng thiết bị.
Giờ làm game không khổ như hồi trước, nơi các lập trình viên phải ứng dụng từng kinh nghiệm cáo già nhất của họ để vượt qua giới hạn của phần cứng. Giờ nếu phần cứng yếu quá thì chỉ cần hạ độ phân giải render hoặc khóa tốc độ khung hình là xong.
Điều đó đưa chúng ta đến với khó khăn khi viết game cho API Metal, giao diện lập trình ứng dụng Apple tạo ra cho macOS, iPadOS và iOS. Xét riêng tới trường hợp bộ engine phổ quát nổi tiếng nhất hiện tại là Unreal Engine, trước khi Epic Games nghỉ chơi với Apple, họ từng rất tâm huyết với Metal. Quãng WWDC 2014, demo Zen Garden trên iOS 8 đã khiến cả thế giới trầm trồ với đồ họa trên một chiếc điện thoại di động:
Tuy nhiên ở thời điểm hiện tại, những nhà phát triển vẫn chưa mặn mà lắm với Metal vì nhiều lý do. Không ít những tính năng quan trọng của đồ họa một tựa game hiện đại vẫn chưa được Metal hỗ trợ, dẫn đến việc các hãng game phải tìm giải pháp thay thế, thường là những kỹ thuật đồ họa cũ. Chưa kể, để làm game chạy mượt thông qua API Metal, các kỹ sư và lập trình viên làm game phải có kiến thức sâu hơn nhiều về cách Metal vận hành thông qua nhân GPU của Apple Silicon.
Hầu hết những game trên macOS ở thời điểm hiện tại đều chọn 1 trong 3 API đồ họa “chạy được” trên macOS: Metal, OpenGL và Vulkan. Port game từ PC và console sang macOS cơ bản không khác gì so với port sang Nintendo Switch.
Cái khó ở đây, thứ mà chính bác Marchal đặt ra câu hỏi là khối lượng công việc cần để chuyển một trò chơi từ DirectX hoặc GMN-X sang Metal có đáng để một hãng game đầu tư cả sức người lẫn sức của hay không.
Kinh nghiệm làm game Switch có mang sang được macOS?
Có chứ. Nhưng làm game khó lắm phải đâu chuyện đùa.
Suy cho cùng, ngoại trừ phát triển game iOS, không ai làm game bằng máy tính Mac cả. Đành rằng những chiếc máy tính của Apple đều có những tính năng định hướng nhiều hơn cho những người làm công việc sáng tạo, nhưng khi nói đến quá trình sáng tạo những phần mềm giải trí tương tác, người ta chỉ nhắc đến Windows với những dàn workstation cực mạnh.
Điều đó hoàn toàn không phải vấn đề vì engine game đã hỗ trợ API Metal rồi. Cũng là máy tính, mọi người còn làm được cả game cho Android, cho Switch, cho PS và cho Xbox, chỉ cần compile cả gói dữ liệu rồi chạy trên nền tảng đích là xong, vậy nên mới có khái niệm dev kit của những chiếc máy như Xbox Series X và PS5. Còn nếu làm game trên macOS, thì dev kit sẽ chính là những cỗ máy trang bị các thế hệ chip M1 và M2 của Apple.
Disco Elysium là một ví dụ căn bản của việc một trò chơi có thể tận dụng khả năng hỗ trợ của bộ engine Unity để đưa sang macOS, cùng thời điểm phát triển trên Windows (cả hai bản game này cùng phát hành ngày 15/9/2019). Ở một khía cạnh nào đó, có vẻ như làm game trên Metal còn dễ hơn cả port game PC sang Switch với API NVN, khi cấu hình thiết bị không phải rào cản tối ưu đồ họa.
Ví dụ khác là cái tên vừa được giới thiệu ở WWDC 2022, Resident Evil Village. Bộ engine cây nhà lá vườn Capcom tự tạo ra mang tên RE Engine giờ này chắc chắn cũng đã hỗ trợ API Metal rồi, nếu không thì port game sang macOS kiểu gì?
Ấy là chưa kể, giờ Apple đã có một công nghệ rất mạnh để cạnh tranh với DLSS của Nvidia và FSR của AMD, đó là MetalFX Upscaling. Cách vận hành của chúng thì khác nhưng kết quả thì giống hệt nhau: Bắt phần cứng render game ở độ phân giải thấp hơn độ phân giải màn hình, rồi upscale lên và xử lý khử răng cưa để game nét nhất có thể, nhưng tốc độ khung hình cũng được đảm bảo.
Rốt cuộc bài viết tưởng thuần kiến thức kỹ thuật vẫn không thoát khỏi lợi ích kinh tế.
Mọi công nghệ mới đều chỉ được thương mại hóa khi các hãng cho rằng chúng có thể đem lợi nhuận về. Apple sẽ phải thuyết phục các hãng game lớn nhất thế giới, và các đơn vị phát triển engine game nổi tiếng hỗ trợ API Metal sâu hơn, từ đó mới tiết kiệm được thời gian và chi phí khi port game PC và console sang macOS.
Hiện giờ, chính vấn đề lợi nhuận đã vô tình tạo ra tác động ngược tới các kỹ thuật phát triển game và tối ưu game trên macOS. Anh em có được chơi nhiều game đỉnh trên macOS hay không, phụ thuộc hết vào Apple. Và hy vọng rằng Apple sẽ không coi những game như Resident Evil Village chỉ đơn thuần là một ví dụ “thay thế” cho Shadow of the Tomb Raider để phô diễn sức mạnh của Apple Silicon cũng như mức độ tiên tiến của Metal.