W jaki sposób Blizzard obsługuje Mac OS i Windows w swoich grach? [Zamknięte]

22

Zawsze uważałem, że używanie Direct X dla Windows jest obecnie najmocniejszą, najłatwiejszą i najbardziej nowoczesną metodą tworzenia gier z nowoczesną grafiką. Wiedząc, że to tylko Windows, myślę, że ciężko jest stworzyć coś podobnego na innych platformach; Dokładniej Mac OS. Jednak Blizzard jakoś zdołał dostarczyć Starcraft 2 dla Mac OS, a Diablo 3 będzie również dostępne dla Mac.

Dlatego interesują mnie informacje o:

  • jakich technologii używają w swoich silnikach gier?
  • czy używają jednego silnika do obu gier (Starcraft 2 i Diablo 3), czy też opracowują niestandardowe silniki dla każdej gry?
  • ile płacą za czas i pieniądze za wsparcie dla Mac OS?
żebrać
źródło
1
Głosuję za zamknięciem tego pytania jako nie na temat, ponieważ nie popieramy pytań z pytaniem „jak powstała ta gra” lub „jak ta gra to zrobiła”. Takie pytania są w większości spekulacyjne i nie są konstruktywne; zwykle edytujemy pytanie, aby zapytać „jak mogę wykonać tę funkcję, ale pytanie to jest zbyt stare, aby takie zmiany były konstruktywne.
Gnemlock

Odpowiedzi:

17

Blizzard jest bardzo dostosowany do potrzeb klienta. Nie mam linków do artykułów, ale pamiętam, że opracowują tysiące niestandardowych programów cieniujących na grę zarówno pod kątem zgodności z wieloma platformami, jak i wstecz.

Obsługa wielu platform nie jest niczym nowym. Wiele programów obsługuje systemy Linux, Mac OS i Windows. Jak wspomniano powyżej, ważną częścią jest oderwanie się od specyfiki platformy.

Każdy współczesny silnik gry obsługuje wiele platform, a wiele może przełączać się między OpenGL i DirectX w zależności od platformy.

Blizzard jest domem C ++, podobnie jak większość profesjonalnych programistów na dużą skalę. Ale, jak wspomniano S.gfx, jeśli szukasz łatwego rozwiązania, istnieje wiele rozwiązań innych niż C ++ - w tym jMonkeyEngine lub LWJGL.

Od strony C ++ możesz używać Glut i Glu, aby łatwo obsługiwać różne systemy operacyjne podczas korzystania z OpenGL, lub pisać własne abstrakty dla określonych wywołań systemu operacyjnego.

Aby dokładniej odpowiedzieć na swoje pociski:

jakich technologii używają w swoich silnikach gier? Blizzard prawdopodobnie nie powiedziałby; ale możesz być pewien, że silnik jest napisany w C ++ i wykorzystuje OpenGL lub OpenGL i DirectX. Pamiętaj, OpenGL działa w systemie Windows.

czy używają jednego silnika do obu gier (Starcraft 2 i Diablo 3)? Lub opracować niestandardowe dla każdej gry? Blizzard jest znany z utrzymywania wielu silników. Diablo 3 od samego początku był rozwidleniem kodu WoW. Ale możesz być pewien, że po zakończeniu projektu nie będzie to podobne do WoW. Blizzard nie jest firmą, która boi się pisać dużo kodu na projekt.

ile płacą za czas i pieniądze za wsparcie dla Mac OS? Prawidłowo wykonane wsparcie dla systemu Mac OS nie powinno być „zbyt” znaczne. Każdy może zgadywać. Blizzard, jak już powiedziałem, ma tendencję do pisania niestandardowych shaderów, więc wszystko wygląda „w sam raz”; może to być więcej niż inne domy.

AA Grapsas
źródło
Dzięki, myślę, że twoja odpowiedź jest najbliższa tej, której szukałem. Jestem zaznajomiony z ogólnym rozwojem wieloplatformowym, chciałem tylko trochę informacji o tym, jak to robi Blizzard. Byłbym wdzięczny, jeśli zamieścisz linki do dodatkowych informacji na temat ich procesu rozwoju.
Begray
9

Istnieją silniki graficzne ( na przykład Ogre3D ), które zapewniają warstwę abstrakcyjną na DirectX i OpenGL. Jako programista po prostu korzystasz z frameworka i nie musisz przejmować się bazowym interfejsem GPU-API. Niektóre specjalne rzeczy, takie jak shadery, mogą wymagać napisania w HLSL i GLSL, ale istnieją również języki shaderów wyższego poziomu, które mogą działać / kompilować do obu interfejsów API.

Zakładam, że silnik, którego używa Blizzard (który napisał własny), zapewnia również warstwę abstrakcji, która ułatwia zamianę podstawowego interfejsu API grafiki, dzięki czemu nie trzeba przepisywać całego kodu graficznego na port Mac.

grzmot
źródło
2

Nie jestem pewien, czego faktycznie używają (na pewno każdy z nich miałby potężne rozwiązanie). Prawdopodobnie już sprawdzone i używane silniki gier z powodzeniem wypuszczają gry na tę platformę lub wprowadzają własne niestandardowe rozwiązania. Ale dla mnie to głównie opengl, shadery itp. Jeśli jesteś indywidualnym deweloperem, a nawet planujesz robić gry komercyjne (po prostu bez AAA), jMonkeyEngine 3 jest całkiem fajnym darmowym rozwiązaniem. Jest oparty na Javie, więc prawdopodobnie możesz wdrożyć zaufanie w dołączonym środowisku OSX JRE (prawdopodobnie wycinanie funkcji, jeśli nie używasz bardzo nowoczesnego środowiska JRE) lub osadzanie / zawijanie pliku binarnego (testowaliśmy to dla systemu Windows) przy użyciu dowolnego z dostępnych darmowych lub rozwiązania komercyjne. Istnieje wiele innych silników kompilujących się do OSX i innych platform, ale nie całkowicie „AAA”, które generują dane dla OSX i innych platform:, Silnik C4 itp. Lub jeśli używasz innego otwartego lub komercyjnego silnika wieloplatformowego, możesz potrzebować instalatora wieloplatformowego, takiego jak InstallBuilder .

S.gfx
źródło