Comment Blizzard parvient-il à prendre en charge Mac OS et Windows dans leurs jeux? [fermé]

22

J'ai toujours pensé que l'utilisation de Direct X pour Windows était la méthode la plus puissante, la plus simple et la plus moderne pour créer des jeux avec des graphismes modernes, de nos jours. Sachant que ce n'est que Windows, je pense qu'il est assez difficile de faire quelque chose de similaire sur d'autres plateformes; Mac OS, pour être exact. Cependant, Blizzard a réussi à livrer Starcraft 2 pour Mac OS, et Diablo 3 sera également disponible pour Mac.

Donc, ce qui m'intéresse, ce sont des informations sur:

  • quelles technologies utilisent-ils pour leurs moteurs de jeu?
  • utilisent-ils un moteur pour les deux jeux (Starcraft 2 et Diablo 3), ou développent-ils des moteurs personnalisés pour chaque jeu?
  • Que paient-ils, en termes de temps et d'argent, pour le support de Mac OS?
mendier
la source
1
Je vote pour fermer cette question comme hors sujet car nous ne soutenons pas les questions demandant "comment ce jeu a-t-il été créé" ou "comment ce jeu a-t-il fait cela". Ces questions sont pour la plupart spéculatives et non constructives; nous modifions généralement la question pour demander "comment puis-je faire cette fonctionnalité, mais cette question est trop ancienne pour que de telles modifications soient constructives.
Gnemlock

Réponses:

17

Blizzard est très axé sur la technologie personnalisée. Je n'ai pas de liens vers les articles, mais je me souviens avoir vu qu'ils développent des milliers de shaders personnalisés par jeu pour la compatibilité multiplateforme et la compatibilité descendante.

La prise en charge multiplateforme n'est pas quelque chose de nouveau. De nombreux logiciels prennent en charge Linux, Mac OS et Windows. Comme cela a été mentionné ci-dessus, la partie importante consiste à s'éloigner des spécificités de la plate-forme.

Tout moteur de jeu contemporain gère la multiplateforme et beaucoup peuvent basculer entre OpenGL et DirectX selon la plate-forme.

Blizzard est une maison C ++, comme la plupart des développeurs professionnels à grande échelle. Mais, comme l'a mentionné S.gfx, si vous cherchez une solution facile, il existe de nombreuses solutions non C ++ - y compris jMonkeyEngine ou LWJGL.

Du côté C ++, vous pouvez utiliser Glut et Glu pour gérer facilement différents systèmes d'exploitation tout en utilisant OpenGL, ou écrire votre propre abstraction pour des appels de système d'exploitation spécifiques.

Pour répondre plus précisément à vos balles:

quelles technologies utilisent-ils pour leurs moteurs de jeu? Blizzard ne dirait probablement pas; mais, vous pouvez être sûr que le moteur est écrit en C ++ et utilise OpenGL ou OpenGL et DirectX. N'oubliez pas, OpenGL fonctionne sous Windows.

utilisent-ils un seul moteur pour les deux jeux (Starcraft 2 et Diablo 3)? Ou développer une personnalisation pour chaque jeu? Blizzard est connu pour maintenir plusieurs moteurs. Diablo 3, dès le début, était une fourchette du code de WoW, je crois. Mais, vous pouvez être sûr que ce ne sera plus comme WoW une fois le projet terminé. Blizzard n'est pas une entreprise qui a peur d'écrire beaucoup de code par projet.

Que paient-ils en termes de temps et d'argent pour la prise en charge de Mac OS? Si cela est fait correctement, la prise en charge de Mac OS ne devrait pas être "trop" significative d'un coût. Tout le monde peut deviner. Blizzard, comme je l'ai dit, a tendance à écrire des shaders personnalisés pour que tout soit "juste"; cela pourrait donc être plus que ce que les autres maisons paient.

AA Grapsas
la source
Merci, je pense que votre réponse est la plus proche de celle que je cherchais. Je suis assez familier avec le développement multiplateforme général, je voulais juste des informations sur la façon dont Blizzard le fait. Je vous serais reconnaissant si vous postez des liens vers des informations supplémentaires sur leur processus de développement.
Begray
9

Il existe des moteurs graphiques (prenez Ogre3D comme exemple) qui fournissent une couche abstraite au-dessus de DirectX et d'OpenGL. En tant que développeur, vous utilisez simplement le Framework et vous n'avez pas à vous soucier de l'API GPU sous-jacente. Certaines choses spéciales comme les shaders doivent être écrites en HLSL et GLSL, mais il existe également des langages de shaders de niveau supérieur qui peuvent être exécutés / compilés sur les deux API.

Mon hypothèse serait que le moteur utilisé par Blizzard (ils ont écrit le leur) fournit également une couche d'abstraction qui facilite l'échange de l'API graphique sous-jacente, afin qu'ils n'aient pas à réécrire tout leur code graphique pour un port Mac.

bummzack
la source
2

Je ne suis pas sûr de ce qu'ils utilisent réellement (chacun aurait sûrement une solution puissante). Probablement des moteurs de jeux déjà éprouvés et utilisés qui ont réussi à publier des jeux sur cette plate-forme ou à lancer leur propre solution personnalisée. Mais pour moi, ce serait surtout opengl, shaders, etc. Si vous êtes un développeur indépendant, ou envisagez même de faire des jeux commerciaux (tout simplement pas d'AAA), jMonkeyEngine 3 est une assez bonne solution gratuite. Il est basé sur java, donc vous pourriez probablement déployer la confiance sur le JRE inclus d'OSX (probablement couper les fonctionnalités si vous n'utilisez pas un jre très moderne), ou incorporer / envelopper un binaire (nous avons fait un test pour Windows) en utilisant l'un des logiciels gratuits ou disponibles solutions commerciales. Il existe un tas d'autres moteurs compilant vers OSX et d'autres plates-formes, mais pas totalement «AAA», qui produisent pour OSX et d'autres plates-formes:, C4 Engine , etc. Ou si vous utilisez un autre moteur open source ou commercial multiplateforme, vous pourriez avoir besoin d'utiliser un programme d'installation multiplateforme comme InstallBuilder .

S.gfx
la source