Cẩm nang

Nhà phát triển game lo ngại mảng gaming trên Mac sẽ chết khi Apple từ bỏ OpenGL

70

Apple vừa tổ chức sự kiện WWDC thường niên tại San Jose và có rất nhiều tin thú vị: macOS 10.14 Mojave, iOS 12, watchOS 5, tVOS 12, và nhiều công bố khác. Tuy bản cập nhật macOS mới nhất có nhiều điểm thú vị, như chế độ Night mode, một số người lại lo ngại về thay đổi.

Theo website chính thức ‘What’s New in macOS’, Apple sẽ ‘deprecate’ – ngừng hỗ trợ – OpenGL và OpenCL với bản macOS 10.14. Với những ai không quen thuật ngữ chuyên môn trong lập trình, deprecate (danh từ là deprecation) có nghĩa là tính năng này sẽ tiếp tục hoạt động, nhưng sẽ không được hỗ trợ kể từ đấy và có thể hỏng. Dưới đây là mô tả về thay đổi của Apple:

“Các ứng dụng được viết bằng OpenGL và OpenCL sẽ tiếp tục chạy trên macOS 10.14, nhưng những công nghệ này sẽ bị deprecate trên macOS 10.14. Các game và ứng dụng sử dụng nhiều đồ họa đang dùng OpenGL nên chuyển sang Metal. Tương tự, các ứng dụng sử dụng OpenCL cho các thuật toán nên chuyển sang Metal và Metal Performance Shaders.”

Apple giới thiệu Metal, API đồ họa 3D cấp thấp của hãng, vào 2014. Trước đó, mọi game và ứng dụng 3D thiết kế cho Mac đều dùng OpenGL. Rất nhiều game và ứng dụng tiếp tục dùng OpenGL, do OpenGL là nguồn mở và hỗ trợ đa nền tảng (tức nhà phát triển có thể tái sử dụng đoạn mã đó). Apple bắt đầu hỗ trợ OpenGL vào cuối những năm 90.

Bước đi chịu nhiều chỉ trích từ người dùng lẫn các nhà phát triển game, một phần là do Apple không thật sự chính thức hỗ trợ Vulkan API trên macOS. Vulkan, API kế thừa OpenGL, cũng là nguồn mở và hỗ trợ đa nền tảng.

Lập trình viên Rami Ismail của Vlambeer, nổi danh với game Nuclear Throne và Luftrauser, cho hay tin này không phải là thảm họa, nhưng cũng không phải tin tốt. “Với deprecate, việc loại bỏ có thể từ ‘sớm’ cho đến’ vô tận’, vậy nên cho đến khi nắm rõ thông tin thì chúng ta chưa thể nói gì được,” anh cho biết. “Những gì chúng ta biết đó là Apple có vẻ như muốn loại bỏ OpenGL để ưu ái API đồ họa của họ là Metal. Vấn đề với Metal rất giống với vấn đề của DirectX: nó không hỗ trợ đa nền.

“Đây không phải là tận thế, nó giống như Apple đang chế tạo một máy EMP khổng lồ (dùng để vô hiệu hóa các thiết bị điện tử) và nói ‘Apple có thể dùng hoặc không dùng nó.’ Thứ tồi tệ nhất có thể xảy ra là OpenGL hỏng, và engine và thư viện của chúng tôi sẽ phải mở rộng ra để hỗ trợ cả Direct3D và Metal. Với việc không có hướng dẫn rõ ràng về những quyết định tương lai, Apple cho thấy họ không chắc điều này sẽ tốt cho nhà phát triển. Việc không có API đồ họa đa nền thật sự rất khó chịu.”

Lập trình viên Alex Austin đang lo ngại về lượng công việc phải làm thêm để port sang Mac sau cập nhật này. “Hiện tại, tôi đang phát triển các game cho Windows, và port sang Mac hoặc Linux thường không tốn quá vài giờ do tất cả các đoạn mã của tôi đều có thể port,” Austin cho biết. “Nhưng tôi đã có những vấn đề liên quan đến hỗ trợ OpenGL trên Mac. Mac chỉ hỗ trợ bản 2.0 hoặc 3.3, cho nên nếu bạn đang dùng 2.0, bạn không thể tận dụng những tính năng của các bản cao hơn, cho nên tôi phải viết lại các đoạn mã để chỉ dùng 3.3. Tôi sẽ không tốn thời gian trên Metal bởi vì Mac chiếm phần trăm khá nhỏ trong thị trường và có thể hiện tại không đáng để quan tâm. Tôi chỉ làm điều này bởi vì tôi cố gắng hỗ trợ các fan nếu mình có thể.”

Ismail đồng ý thay đổi này sẽ khiến Mac khó hơn và trở thành nền tảng kém hấp dẫn cho người tiêu dùng. “Rõ ràng nó không giúp ích gì,” Ismail cho biết. “Nếu bạn muốn viết game cho đa nền tảng, bạn trước đây chỉ cần đảm bảo mình dùng OpenGL, hoặc port sang OpenGL. Với các nhà phát triển đang dùng OpenGL để thuận tiện cho việc port, điều này có nghĩa là OpenGL sẽ tiếp tục hoạt động trên Windows – đây cũng là thị trường lớn nhất. Có thể thấy, động lực về mặt tài chính không đáng để mọi người chuyển API.”

Hiện chúng ta chưa rõ tại thời điểm này nếu Apple sẽ hoàn toàn loại hỗ trợ OpenGL khỏi các bản macOS trong tương lai không, hay công ty chỉ đơn giản là thúc đẩy các nhà phát triển thích nghi với Metal API mà không có kế hoạch thật sự ngừng hỗ trợ OpenGL. Có rất nhiều game Mac đã dùng Metal, bao gồm Dota 2, Rise of the Tomb Raider, Bioshock Remastered, và Fortnite.

Theo: PC Gamer