Wie schafft es Blizzard, Mac OS und Windows in ihren Spielen zu unterstützen? [geschlossen]

22

Ich habe immer gedacht, dass Direct X für Windows heutzutage die leistungsstärkste, einfachste und modernste Methode ist, um Spiele mit moderner Grafik zu erstellen. Da ich weiß, dass es nur Windows ist, denke ich, dass es ziemlich schwierig ist, auf anderen Plattformen etwas Ähnliches zu machen. Mac OS, um genau zu sein. Blizzard hat es jedoch irgendwie geschafft, Starcraft 2 für Mac OS bereitzustellen, und Diablo 3 wird auch für Mac verfügbar sein.

Also, was mich interessiert, sind Informationen über:

  • Welche Technologien setzen sie für ihre Game-Engines ein?
  • Verwenden sie eine Engine für beide Spiele (Starcraft 2 und Diablo 3) oder entwickeln sie benutzerdefinierte Engines für jedes Spiel?
  • Was zahlen sie in Bezug auf Zeit und Geld für die Unterstützung von Mac OS?
begray
quelle
1
Ich stimme dafür, diese Frage als "Off-Topic" zu schließen, da wir keine Fragen unterstützen, die die Frage "Wie wurde dieses Spiel hergestellt" oder "Wie hat dieses Spiel das getan" betreffen. Solche Fragen sind meist spekulativ und nicht konstruktiv. Normalerweise bearbeiten wir die Frage, um zu fragen, "wie ich diese Funktion
ausführen

Antworten:

17

Blizzard ist sehr technisch orientiert. Ich habe keine Links zu den Artikeln, aber ich erinnere mich, dass sie Tausende von benutzerdefinierten Shadern pro Spiel entwickeln, um sowohl die Kompatibilität mit mehreren Plattformen als auch die Abwärtskompatibilität zu gewährleisten.

Die Unterstützung mehrerer Plattformen ist nichts Neues. Viel Software unterstützt Linux, Mac OS und Windows. Wie oben erwähnt, ist der wichtige Teil die Abkehr von plattformspezifischen Aspekten.

Jede moderne Game Engine unterstützt mehrere Plattformen und viele können je nach Plattform zwischen OpenGL und DirectX wechseln.

Blizzard ist ein C ++ - Haus, wie die meisten professionellen Großentwickler. Aber, wie von S.gfx erwähnt, gibt es, wenn Sie nach einer einfachen Lösung suchen, viele Nicht-C ++ - Lösungen - einschließlich jMonkeyEngine oder LWJGL.

Auf der C ++ - Seite können Sie Glut und Glu verwenden, um verschiedene Betriebssysteme während der Verwendung von OpenGL problemlos zu handhaben, oder Ihre eigene Abstraktion für bestimmte Betriebssystemaufrufe schreiben.

So beantworten Sie Ihre Kugeln genauer:

Welche Technologien setzen sie für ihre Game-Engines ein? Blizzard würde es wahrscheinlich nicht sagen; Sie können jedoch sicher sein, dass die Engine in C ++ geschrieben ist und OpenGL oder OpenGL und DirectX verwendet. Denken Sie daran, OpenGL läuft unter Windows.

Verwenden sie eine Engine für beide Spiele (Starcraft 2 und Diablo 3)? Oder für jedes Spiel individuell entwickeln? Es ist bekannt, dass Blizzard mehrere Motoren wartet. Diablo 3 war von Anfang an eine Abzweigung des WoW-Codes, glaube ich. Aber Sie können sicher sein, dass es nach Abschluss des Projekts nichts wie WOW sein wird. Blizzard hat keine Angst davor, jede Menge Code pro Projekt zu schreiben.

Was zahlen sie in Bezug auf Zeit und Geld für die Unterstützung von Mac OS? Bei korrekter Ausführung sollte die Mac OS-Unterstützung nicht zu kostspielig sein. Jeder kann raten. Blizzard neigt, wie gesagt, dazu, benutzerdefinierte Shader zu schreiben, damit alles "genau richtig" aussieht. Es könnte also mehr sein, als andere Häuser bezahlen.

AA Grapsas
quelle
Danke, ich denke deine Antwort ist die Antwort, die ich gesucht habe. Ich bin ziemlich vertraut mit der allgemeinen Multiplattform-Entwicklung, wollte nur ein paar Informationen darüber, wie Blizzard das macht. Ich wäre Ihnen dankbar, wenn Sie Links zu weiteren Informationen über deren Entwicklungsprozess veröffentlichen würden.
8.
9

Es gibt Grafik-Engines (am Beispiel von Ogre3D ), die eine abstrakte Ebene über DirectX und OpenGL bieten. Als Entwickler verwenden Sie einfach das Framework und müssen sich nicht um die zugrunde liegende GPU-API kümmern. Einige spezielle Dinge wie Shader müssen möglicherweise in HLSL und GLSL geschrieben werden, aber es gibt auch Shader-Sprachen höherer Ebenen, die auf beiden APIs ausgeführt / kompiliert werden können.

Ich gehe davon aus, dass die von Blizzard verwendete Engine (die sie selbst geschrieben haben) auch eine Abstraktionsebene bietet, mit der sich die zugrunde liegende Grafik-API problemlos austauschen lässt, sodass sie nicht den gesamten Grafikcode für einen Mac-Port neu schreiben müssen.

Blödmann
quelle
2

Ich bin nicht sicher, was sie tatsächlich verwenden (jeder hätte sicherlich eine leistungsstarke Lösung). Vermutlich bereits erprobte und eingesetzte Game-Engines, die Spiele auf dieser Plattform erfolgreich veröffentlichen oder ihre eigene benutzerdefinierte Lösung entwickeln. Aber für mich wären es meistens Opengl, Shader usw. Wenn Sie ein Indy-Entwickler sind oder sogar kommerzielle Spiele (nur kein AAA) entwickeln möchten, ist jMonkeyEngine 3 eine nette kostenlose Lösung. Da es auf Java basiert, können Sie wahrscheinlich auf der in OSX enthaltenen JRE vertrauen (wahrscheinlich Funktionen ausschneiden, wenn Sie keine sehr moderne JRE verwenden) oder eine Binärdatei einbetten / einbinden (wir haben dies für Windows getestet), indem Sie eine der verfügbaren kostenlosen oder kommerzielle Lösungen. Es gibt eine Reihe anderer Engines, die für OSX und andere Plattformen kompiliert werden, aber nicht vollständig "AAA", was für OSX und andere Plattformen ausgegeben wird:, C4-Engine usw. Wenn Sie eine andere Open Source- oder kommerzielle Multiplattform-Engine verwenden, benötigen Sie möglicherweise ein plattformübergreifendes Installationsprogramm wie InstallBuilder .

S.gfx
quelle