¿Cómo logra Blizzard soportar Mac OS y Windows en sus juegos? [cerrado]

22

Siempre he pensado que usar Direct X para Windows era el método más poderoso, fácil y moderno para crear juegos con gráficos modernos, hoy en día. Sabiendo que es solo Windows, creo que es bastante difícil hacer algo similar en otras plataformas; Mac OS, para ser exactos. Sin embargo, Blizzard de alguna manera logró entregar Starcraft 2 para Mac OS, y Diablo 3 también estará disponible para Mac.

Entonces, lo que me interesa es información sobre:

  • ¿Qué tecnologías están usando para sus motores de juego?
  • ¿Están usando un motor para ambos juegos (Starcraft 2 y Diablo 3), o desarrollan motores personalizados para cada juego?
  • ¿Qué están pagando, en términos de tiempo y dinero, por el soporte de Mac OS?
desgranar
fuente
1
Estoy votando para cerrar esta pregunta como fuera de tema porque no admitimos preguntas que pregunten "cómo se hizo este juego" o "cómo lo hizo este juego". Tales preguntas son principalmente especulativas y no constructivas; por lo general editar la pregunta para preguntar "¿cómo puedo hacer esta función, pero esta pregunta es demasiado viejo para este tipo de normas de control constructivo.
Gnemlock

Respuestas:

17

Blizzard tiene una tecnología muy personalizada. No tengo enlaces a los artículos, pero recuerdo haber visto que desarrollan miles de sombreadores personalizados por juego tanto para la compatibilidad multiplataforma como para la compatibilidad con versiones anteriores.

El soporte multiplataforma no es algo nuevo. Un montón de software es compatible con Linux, Mac OS y Windows. Como se mencionó anteriormente, la parte importante es abstraerse de los detalles de la plataforma.

Cualquier motor de juegos contemporáneo maneja multiplataforma y muchos pueden cambiar entre OpenGL y DirectX dependiendo de la plataforma.

Blizzard es una casa de C ++, como la mayoría de los desarrolladores profesionales a gran escala. Pero, como mencionó S.gfx, si está buscando una solución fácil, hay muchas soluciones que no son C ++, incluidas jMonkeyEngine o LWJGL.

Desde el lado de C ++, puede utilizar Glut y Glu para manejar fácilmente diferentes sistemas operativos mientras usa OpenGL, o escribir su propia abstracción para llamadas específicas del sistema operativo.

Para responder más específicamente a sus viñetas:

¿Qué tecnologías están utilizando para sus motores de juego? Blizzard probablemente no diría; pero puede estar seguro de que el motor está escrito en C ++ y utiliza OpenGL u OpenGL y DirectX. Recuerde, OpenGL se ejecuta en Windows.

¿Están usando un motor para ambos juegos (Starcraft 2 y Diablo 3)? ¿O desarrollar una costumbre para cada juego? Se sabe que Blizzard mantiene múltiples motores. Diablo 3, desde el principio, fue una bifurcación del código de WoW, creo. Pero, puede estar seguro de que no será nada como WoW una vez que hayan terminado el proyecto. Blizzard no es una compañía que teme escribir mucho código por proyecto.

¿Qué están pagando en términos de tiempo y dinero por el soporte de Mac OS? Si se hace correctamente, el soporte de Mac OS no debería ser un costo "demasiado" significativo. Cualquiera puede adivinar. Blizzard, como dije, tiene una tendencia a escribir sombreadores personalizados para que todo se vea "bien"; Por lo tanto, podría ser más de lo que pagan otras casas.

AA Grapsas
fuente
Gracias, creo que su respuesta es la más cercana a la que estaba buscando. Estoy bastante familiarizado con el desarrollo multiplataforma general, solo quería información sobre cómo lo hace Blizzard. Le agradecería que publique enlaces a información adicional sobre su proceso de desarrollo.
Begray
9

Existen motores gráficos (tome Ogre3D como ejemplo) que proporcionan una capa abstracta sobre DirectX y OpenGL. Entonces, como desarrollador, solo usa el Framework y no tiene que preocuparse mucho por la GPU-API subyacente. Es posible que algunas cosas especiales, como los sombreadores, tengan que escribirse en HLSL y GLSL, pero también hay lenguajes de sombreadores de nivel superior que pueden ejecutarse / compilarse en ambas API.

Supongo que el motor que usa Blizzard (escribieron el suyo) también proporciona una capa de abstracción que facilita el intercambio de la API de gráficos subyacente, para que no tengan que reescribir todo su código de gráficos para un puerto Mac.

bummzack
fuente
2

No estoy seguro de lo que realmente usan (cada uno tendría una solución poderosa, seguramente). Probablemente, los motores de juegos ya probados y usados ​​hayan lanzado exitosamente juegos en esa plataforma, o hayan lanzado su propia solución personalizada. Pero para mí eso sería opengl, shaders, etc., principalmente. Si eres un desarrollador independiente, o incluso planeas hacer juegos comerciales (simplemente no AAA), jMonkeyEngine 3 es una buena solución gratuita. Está basado en Java, por lo que probablemente podría implementar la confianza en el JRE incluido de OSX (probablemente funciones de corte si no usa un jre muy moderno), o incrustar / envolver un binario (hicimos una prueba para Windows) usando cualquiera de los gratuitos disponibles o Soluciones comerciales. Hay muchos otros motores que compilan para OSX y otras plataformas, pero no totalmente 'AAA', que generan OSX y otras plataformas:, C4 Engine , etc. O si usa otro motor multiplataforma de código abierto o comercial, es posible que necesite usar un instalador multiplataforma como InstallBuilder .

S.gfx
fuente