Những máy chơi game nào tôi có thể nhắm mục tiêu với OpenGL?


7

Tôi đang suy nghĩ về thiết kế kỹ thuật cho một công cụ trò chơi / trò chơi bằng OpenGL và tôi tự hỏi liệu có máy chơi game nào gần đây không (Xbox360, PS3, Wii U, Xbox one và PS4) mà tôi có thể làm việc nếu tôi làm như vậy.

Tôi tìm thấy rất nhiều câu trả lời mâu thuẫn thông qua các diễn đàn. Câu trả lời thẳng thắn duy nhất dường như là không thể đối với Xbox vì Microsoft cấm sử dụng thứ gì khác ngoài DirectX, sản phẩm của chính họ.

Vì vậy, cuối cùng, có ai biết chắc chắn máy chơi game nào có thể hỗ trợ trò chơi dựa trên OpenGL không?


Đối với Xbox, điều đó là chính xác, nó chỉ hỗ trợ D3D. Wii, tôi không có ý tưởng. Sony luôn cung cấp triển khai OpenGL tùy chỉnh cho gia đình PS, đôi khi được gọi là "PSGL", có thể sử dụng cho các trò chơi đơn giản hơn, nhưng công cụ 3A hoàn hảo cao hiếm khi sử dụng nó và thực hiện kết xuất với các giao diện phần cứng cụ thể. Vì vậy, tùy thuộc vào quy mô và độ phức tạp của dự án, câu trả lời có thể là: không có.
glampert

Câu trả lời:


4

Có lẽ là câu trả lời dễ nhất: Đừng bận tâm, thay vào đó hãy chọn những gì phù hợp nhất với bạn để làm việc với bây giờ (tức là bất cứ điều gì bạn thành thạo hơn.

Nếu bạn nghĩ rằng bạn nên viết một công cụ có tính di động ("tạo trò chơi, không phải động cơ!"), Hãy tạo một lớp trừu tượng kết xuất, để bạn có thể cắm bất kỳ đầu cuối nào bạn cần.

Mặc dù hầu hết các hệ thống máy tính để bàn đều hiểu / có OpenGL, bạn sẽ cần OpenGL ES cho hầu hết các nền tảng di động. Vì vậy, đây sẽ chỉ là một bước bổ sung nhỏ để thêm DirectX.

Theo tôi biết, chi tiết cụ thể hơn thực sự rất khó để có được, vì hầu hết các chi tiết cụ thể được ẩn đằng sau NDA và những thứ tương tự (vì bất kỳ lý do gì).

Người ta biết khá nhiều rằng Microsoft ủng hộ (và chỉ hỗ trợ?) DirectX, trong khi tôi nghĩ Sony cung cấp hỗ trợ cho OpenGL (mặc dù tôi không chắc về mức độ / phiên bản tính năng). Vì cả hai đều yêu cầu giấy phép nhà phát triển, tôi đoán bây giờ họ không còn nghi ngờ gì nữa.

Không có ý tưởng về Nintendo, có thể là OpenGL hoặc một số công cụ độc quyền? Dù sao họ cũng muốn bạn ký hợp đồng.

Nhiều máy chơi game (vi mô) khác (như Ouya, FireTV của Amazon, v.v.) sử dụng Android và như vậy hỗ trợ OpenGL ES 1.1 cũng như OpenGL ES 2.0.

PC Windows thường cung cấp DirectX cũng như OpenGL, OpenGL ES được hỗ trợ gián tiếp thông qua các trình bao bọc (như dự án ANGLE của Google ).

Các hệ thống dựa trên Linux và Mac thường cung cấp OpenGL và OpenGL ES. Wrappers cho DirectX tồn tại, mặc dù tôi khá chắc chắn rằng đây thực sự chỉ dành riêng cho việc mô phỏng. Không thấy bất kỳ được sử dụng ở nơi khác.

Thật không may, như bạn có thể thấy, không có giải pháp "một giao diện nào phù hợp với tất cả".

Nếu bạn muốn giới hạn bản thân trong một giao diện ngay bây giờ (mà bạn chắc chắn nên IMO), hãy đi với OpenGL (hiện đại). Nó cho phép bạn sử dụng đa nền tảng dễ nhất / lớn nhất ngay bây giờ và cũng giúp việc gỡ lỗi khá dễ dàng. Với một số điều chỉnh (để sử dụng OpenGL ES thay vì OpenGL), mã này cũng sẽ chạy trên hầu hết các điện thoại và bảng điều khiển vi mô.

Nếu bạn thích lập trình trong Windows với Microsoft Visual Studio, DirectX có thể là một tùy chọn cho tích hợp Visual Studio (trình gỡ lỗi đồ họa, v.v.). Chỉ cần lưu ý rằng điều này sẽ không hoạt động ở bất cứ nơi nào khác (ngoại trừ XBox, dù sao cũng cần có giấy phép nhà phát triển).


1
Chà, tôi đang suy nghĩ nhiều hơn về một công cụ hơn là một trò chơi, và nếu tôi không quan tâm đến việc chuyển bây giờ, việc bổ sung sau này sẽ khó hơn. Và ngay cả khi tôi thực hiện một sự trừu tượng hóa để thêm các triển khai khác sau này, tôi phải chọn cái đầu tiên để thực hiện. Và tôi muốn sử dụng tính di động nhất giữa DirectX và OpenGL.
Aracthor

@Aracthor Trong trường hợp đó, hãy sử dụng OpenGL. Tôi sẽ mở rộng một chút ở trên.
Mario

2
@Aracthor Cập nhật; Ngoài ra, nếu bạn muốn giao diện di động nhất, hãy sử dụng OpenGL. Ngay cả khi bỏ qua các bảng điều khiển phổ biến, OpenGL có hỗ trợ lớn hơn nhiều so với thế giới Windows.
Mario

2

Không có bảng điều khiển nào bạn liệt kê sử dụng OpenGL làm API kết xuất gốc của chúng. PS3 được sử dụng để hỗ trợ một biến thể độc quyền của OpenGL được gọi là PSGL nhưng nó không bao giờ là API ưa thích và tôi không chắc nó còn được hỗ trợ nữa. Theo hiểu biết của tôi, không ai trong số những người khác có bất kỳ loại hỗ trợ chính thức nào cho OpenGL mặc dù về lý thuyết bạn có thể sử dụng ANGLE trên Xbox 360 và Xbox One với một số sửa đổi nhỏ.

Nếu bạn muốn nhắm mục tiêu bảng điều khiển với một công cụ tùy chỉnh, bạn sẽ cần hỗ trợ nhiều API back-end kết xuất do không có một API nào bạn có thể sử dụng trên tất cả chúng. Trong thực tế, trong số các bảng điều khiển bạn liệt kê không có hai thậm chí chia sẻ cùng một API kết xuất. PS4 và PS3 có các API khác nhau như Xbox 360 và Xbox One.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.