Blizzard quản lý để hỗ trợ Mac OS và Windows trong các trò chơi của họ như thế nào? [đóng cửa]


22

Tôi đã luôn nghĩ rằng sử dụng Direct X cho Windows là phương pháp hiện đại, dễ dàng và mạnh mẽ nhất để tạo ra các trò chơi có đồ họa hiện đại. Biết rằng chỉ có Windows, tôi nghĩ rằng thật khó để tạo ra thứ gì đó tương tự trên các nền tảng khác; Chính xác là Mac OS. Tuy nhiên, Blizzard bằng cách nào đó đã quản lý để cung cấp Starcraft 2 cho Mac OS và Diablo 3 cũng sẽ có sẵn cho Mac.

Vì vậy, điều tôi quan tâm là thông tin về:

  • họ đang sử dụng công nghệ gì cho công cụ trò chơi của họ?
  • họ đang sử dụng một công cụ cho cả hai trò chơi (Starcraft 2 và Diablo 3) hay họ phát triển các công cụ tùy chỉnh cho mỗi trò chơi?
  • Họ đang trả gì, về thời gian và tiền bạc, để được hỗ trợ Mac OS?


1
Tôi đang bỏ phiếu để đóng câu hỏi này ngoài chủ đề vì chúng tôi không hỗ trợ các câu hỏi hỏi "trò chơi này được tạo ra như thế nào" hoặc "trò chơi này đã làm điều đó như thế nào". Những câu hỏi như vậy chủ yếu là đầu cơ, và không mang tính xây dựng; chúng tôi thường chỉnh sửa câu hỏi để hỏi "làm cách nào tôi có thể thực hiện tính năng này, nhưng câu hỏi này quá cũ để các chỉnh sửa đó có tính xây dựng.
Gnemlock

Câu trả lời:


17

Blizzard là rất tùy chỉnh công nghệ điều khiển. Tôi không có liên kết đến các bài viết, nhưng tôi nhớ rằng họ đã phát triển hàng ngàn shader tùy chỉnh cho mỗi trò chơi để tương thích đa nền tảng và tương thích ngược.

Hỗ trợ đa nền tảng không phải là một cái gì đó mới. Rất nhiều phần mềm hỗ trợ Linux, Mac OS và Windows. Như đã đề cập ở trên, phần quan trọng là trừu tượng hóa từ các chi tiết cụ thể của nền tảng.

Bất kỳ công cụ trò chơi hiện đại nào cũng xử lý đa nền tảng và nhiều người có thể chuyển đổi giữa OpenGL và DirectX tùy thuộc vào nền tảng.

Blizzard là một ngôi nhà C ++, giống như hầu hết các nhà phát triển quy mô lớn chuyên nghiệp. Nhưng, như đã được S.gfx đề cập, nếu bạn đang tìm kiếm một giải pháp dễ dàng, có rất nhiều giải pháp không phải C ++ - bao gồm jMonkeyEngine hoặc LWJGL.

Từ phía C ++, bạn có thể sử dụng Glut và Glam để dễ dàng xử lý các hệ điều hành khác nhau trong khi sử dụng OpenGL hoặc viết bản tóm tắt của riêng bạn cho các cuộc gọi HĐH cụ thể.

Để trả lời cụ thể hơn viên đạn của bạn:

họ đang sử dụng công nghệ gì cho công cụ trò chơi của họ? Blizzard có lẽ sẽ không nói; nhưng, bạn có thể chắc chắn rằng công cụ này được viết bằng C ++ và sử dụng OpenGL hoặc OpenGL và DirectX. Hãy nhớ rằng, OpenGL chạy trên Windows.

Có phải họ đang sử dụng một công cụ cho cả hai trò chơi (Starcraft 2 và Diablo 3)? Hoặc phát triển tùy chỉnh cho mỗi trò chơi? Blizzard đã được biết đến để duy trì nhiều động cơ. Diablo 3, từ khi bắt đầu, là một nhánh của mã WoW, tôi tin. Nhưng, bạn có thể chắc chắn rằng nó sẽ không giống như WoW khi họ đã hoàn thành dự án. Blizzard không phải là một công ty sợ viết nhiều mã cho mỗi dự án.

họ đang trả những gì về thời gian và tiền bạc để hỗ trợ Mac OS? Nếu được thực hiện chính xác, hỗ trợ Mac OS không nên "quá" đáng kể về chi phí. Bất cứ ai cũng có thể đoán. Blizzard, như tôi đã nói, có xu hướng viết các shader tùy chỉnh để mọi thứ trông "vừa phải"; vì vậy, nó có thể được nhiều hơn các nhà khác phải trả.


Cảm ơn, tôi nghĩ rằng câu trả lời của bạn là gần nhất với một, mà tôi đang tìm kiếm. Tôi khá quen thuộc với sự phát triển đa nền tảng nói chung, chỉ muốn một số thông tin về cách Blizzard thực hiện nó. Tôi rất biết ơn, nếu bạn đăng liên kết đến thông tin bổ sung về quá trình phát triển của họ.
bắt đầu

9

Có các công cụ đồ họa ngoài kia (lấy ví dụ về Ogre3D ) cung cấp một lớp trừu tượng trên đầu DirectX và OpenGL. Vì vậy, là nhà phát triển, bạn chỉ cần sử dụng Khung và không phải quan tâm nhiều đến GPU-API cơ bản. Một số thứ đặc biệt như shader có thể phải được viết bằng HLSL GLSL nhưng cũng có những ngôn ngữ shader cấp cao hơn có thể chạy / biên dịch cho cả hai API.

Giả định của tôi là công cụ mà Blizzard sử dụng (họ tự viết) cũng cung cấp một lớp trừu tượng giúp dễ dàng trao đổi API đồ họa bên dưới, để họ không phải viết lại tất cả mã đồ họa của họ cho cổng Mac.


2

Tôi không chắc chắn về những gì họ thực sự sử dụng (chắc chắn mỗi người sẽ có một giải pháp mạnh mẽ). Có lẽ đã được chứng minh và sử dụng công cụ trò chơi thành công phát hành trò chơi trên nền tảng đó, hoặc đưa ra giải pháp tùy chỉnh của riêng họ. Nhưng với tôi đó là opengl, shader, v.v. Nếu bạn là một nhà phát triển độc lập, hoặc thậm chí có kế hoạch thực hiện các trò chơi thương mại (chỉ không có AAA) thì jMonkeyEngine 3 là một giải pháp miễn phí khá hay. Nó dựa trên java, vì vậy có lẽ bạn có thể triển khai tin tưởng vào JRE bao gồm của OSX (có thể cắt các tính năng nếu không sử dụng jre rất hiện đại) hoặc nhúng / bọc nhị phân (chúng tôi đã thực hiện thử nghiệm cho Windows) bằng cách sử dụng bất kỳ tính năng nào có sẵn miễn phí hoặc giải pháp thương mại. Có một loạt các công cụ khác đang biên dịch cho OSX và các nền tảng khác, nhưng không hoàn toàn là 'AAA', đầu ra cho OSX và các nền tảng khác:, Công cụ C4 , v.v. Hoặc nếu sử dụng công cụ đa nền tảng thương mại hoặc nguồn mở khác, bạn có thể cần sử dụng trình cài đặt đa nền tảng như InstallBuilder .

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.