Как Blizzard удается поддерживать Mac OS и Windows в своих играх? [закрыто]

22

Я всегда думал, что использование Direct X для Windows было самым мощным, простым и современным методом для создания игр с современной графикой, в настоящее время. Зная, что это только Windows, я думаю, довольно сложно сделать что-то похожее на других платформах; Mac OS, если быть точным. Однако Blizzard каким-то образом удалось выпустить Starcraft 2 для Mac OS, и Diablo 3 будет доступна и для Mac.

Так что меня интересует информация о:

  • какие технологии они используют для своих игровых движков?
  • они используют один движок для обеих игр (Starcraft 2 и Diablo 3), или они разрабатывают собственные движки для каждой игры?
  • Сколько они платят за время и деньги за поддержку Mac OS?
begray
источник
связанные с : gamedev.stackexchange.com/questions/195/...
Тетрадь
1
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что мы не поддерживаем вопросы о том, «как была создана эта игра» или «как эта игра сделала это». Такие вопросы в основном умозрительные, а не конструктивные; мы обычно редактируем вопрос, чтобы спросить: «Как я могу сделать эту функцию, но этот вопрос слишком стар, чтобы такие изменения были конструктивными.
Gnemlock

Ответы:

17

Blizzard очень ориентирована на новые технологии. У меня нет ссылок на статьи, но я помню, что они разрабатывали тысячи пользовательских шейдеров для каждой игры как для многоплатформенной, так и для обратной совместимости.

Мультиплатформенная поддержка не является чем-то новым. Много программного обеспечения поддерживает Linux, Mac OS и Windows. Как было упомянуто выше, важной частью является абстракция от особенностей платформы.

Любой современный игровой движок поддерживает мультиплатформенность, и многие могут переключаться между OpenGL и DirectX в зависимости от платформы.

Blizzard - это дом на C ++, как и большинство профессиональных крупных разработчиков. Но, как уже упоминал S.gfx, если вы ищете простое решение, есть множество решений не на C ++, включая jMonkeyEngine или LWJGL.

Со стороны C ++ вы можете использовать Glut и Glu для удобной работы с различными операционными системами при использовании OpenGL или для написания собственной абстракции для конкретных вызовов ОС.

Чтобы более конкретно ответить на ваши пули:

какие технологии они используют для своих игровых движков? Blizzard, вероятно, не сказал бы; но вы можете быть уверены, что движок написан на C ++ и использует OpenGL или OpenGL и DirectX. Помните, OpenGL работает в Windows.

они используют один движок для обеих игр (Starcraft 2 и Diablo 3)? Или разработать кастом для каждой игры? Blizzard, как известно, поддерживает несколько двигателей. Я полагаю, что Diablo 3 с самого начала был форком кода WoW. Но вы можете быть уверены, что это будет совсем не похоже на WoW, когда они закончат проект. Blizzard не боится писать много кода для каждого проекта.

Сколько они платят за время и деньги за поддержку Mac OS? Если все сделано правильно, поддержка Mac OS не должна быть "слишком" значительной из затрат. Любой может догадаться. Blizzard, как я уже сказал, имеет тенденцию писать собственные шейдеры, поэтому все выглядит «как надо»; Таким образом, это может быть больше, чем другие дома платить.

А. А. Грапсас
источник
Спасибо, я думаю, что ваш ответ наиболее близок к тому, который я искал. Я довольно знаком с общей мультиплатформенной разработкой, просто хотел получить некоторую информацию о том, как Blizzard делает это. Буду признателен, если вы разместите ссылки на дополнительную информацию об их процессе разработки.
Бегрей
9

Существуют графические движки ( например, Ogre3D ), которые предоставляют абстрактный слой поверх DirectX и OpenGL. Как разработчик, вы просто используете Framework, и вам не нужно сильно заботиться о базовом GPU-API. Некоторые специальные вещи, такие как шейдеры, возможно, должны быть написаны на HLSL и GLSL, но есть и шейдерные языки более высокого уровня, которые могут запускаться / компилироваться для обоих API.

Я предполагаю, что движок, который использует Blizzard (они написали свой собственный), также обеспечивает уровень абстракции, который позволяет легко менять базовый графический API, чтобы им не пришлось переписывать весь свой графический код для порта Mac.

bummzack
источник
2

Я не уверен в том, что они на самом деле используют (конечно, у каждого было бы мощное решение). Вероятно, уже проверенные и использованные игровые движки успешно выпускают игры на этой платформе или внедряют собственные решения. Но для меня это в основном opengl, шейдеры и т. Д. Если вы - инди-разработчик или даже планируете делать коммерческие игры (просто без AAA), jMonkeyEngine 3 - это довольно хорошее бесплатное решение. Он основан на java, так что, вероятно, вы можете развернуть доверие на JRE, включенном в OSX (возможно, обрезать функции, если не используете очень современный jre), или внедрить / обернуть двоичный файл (мы сделали тест для Windows), используя любой из доступных бесплатных или коммерческие решения. Существует множество других движков, компилируемых для OSX и других платформ, но не полностью «AAA», которые выводят для OSX и других платформ:, C4 Engine и т. Д. Или, если вы используете другой многоплатформенный движок с открытым исходным кодом или коммерческий, вам может понадобиться кроссплатформенный установщик, такой как InstallBuilder .

S.gfx
источник