Como a Blizzard consegue dar suporte ao Mac OS e Windows em seus jogos? [fechadas]

22

Eu sempre achei que usar o Direct X para Windows era o método mais poderoso, fácil e moderno para criar jogos com gráficos modernos hoje em dia. Sabendo que é apenas o Windows, acho muito difícil criar algo semelhante em outras plataformas; Mac OS, para ser exato. No entanto, a Blizzard conseguiu entregar Starcraft 2 para Mac OS e o Diablo 3 também estará disponível para Mac.

Então, o que me interessa são informações sobre:

  • que tecnologias eles estão usando para seus mecanismos de jogo?
  • eles estão usando um mecanismo para ambos os jogos (Starcraft 2 e Diablo 3) ou desenvolvem mecanismos personalizados para cada jogo?
  • o que eles estão pagando, em termos de tempo e dinheiro, pelo suporte ao Mac OS?
cinzento
fonte
1
Estou votando para encerrar esta questão como fora de tópico, porque não apoiamos perguntas como "como foi feito este jogo" ou "como esse jogo foi feito". Tais questões são principalmente especulativas e não construtivas; nós geralmente editar a pergunta para perguntar "como eu posso fazer esta função, mas esta questão é demasiado velho para tais edições para ser construtivo.
Gnemlock

Respostas:

17

A Blizzard é muito direcionada à tecnologia personalizada. Não tenho links para os artigos, mas lembro de eles desenvolverem milhares de shaders personalizados por jogo para compatibilidade multiplataforma e compatibilidade com versões anteriores.

Suporte multiplataforma não é algo novo. Muitos softwares suportam Linux, Mac OS e Windows. Como mencionado acima, a parte importante é abstrair dos detalhes da plataforma.

Qualquer mecanismo de jogo contemporâneo lida com multiplataforma e muitos podem alternar entre o OpenGL e o DirectX, dependendo da plataforma.

A Blizzard é uma empresa de C ++, como a maioria dos desenvolvedores profissionais de larga escala. Mas, como foi mencionado por S.gfx, se você está procurando uma solução fácil, existem muitas soluções não C ++ - incluindo jMonkeyEngine ou LWJGL.

Do lado do C ++, você pode utilizar o Glut e o Glu para lidar facilmente com diferentes sistemas operacionais enquanto usa o OpenGL ou escrever sua própria abstração para chamadas específicas do sistema operacional.

Para responder mais especificamente às suas balas:

que tecnologias eles estão usando para seus mecanismos de jogo? A Blizzard provavelmente não diria; mas, você pode ter certeza de que o mecanismo está escrito em C ++ e utiliza OpenGL ou OpenGL e DirectX. Lembre-se, o OpenGL é executado no Windows.

eles estão usando um mecanismo para os dois jogos (Starcraft 2 e Diablo 3)? Ou desenvolver personalizado para cada jogo? Sabe-se que a Blizzard mantém vários motores. Diablo 3, desde o início, era um garfo do código do WoW, acredito. Mas, você pode ter certeza de que não será nada como o WoW depois que eles terminarem o projeto. A Blizzard não é uma empresa com medo de escrever bastante código por projeto.

quanto eles pagam em termos de tempo e dinheiro pelo suporte ao Mac OS? Se feito corretamente, o suporte ao Mac OS não deve ter um custo "muito" significativo. Qualquer um pode adivinhar. A Blizzard, como eu disse, tem a tendência de escrever shaders personalizados para que tudo pareça "perfeito"; portanto, pode ser mais do que as outras casas pagam.

AA Grapsas
fonte
Obrigado, acho que sua resposta é a mais próxima de uma que eu estava procurando. Estou bastante familiarizado com o desenvolvimento geral de plataformas múltiplas, só queria algumas informações sobre como a Blizzard faz isso. Ficaria muito grato se você postar links para informações adicionais sobre o processo de desenvolvimento.
begray
9

Existem mecanismos gráficos disponíveis no mercado ( como o Ogre3D como exemplo) que fornecem uma camada abstrata sobre o DirectX e o OpenGL. Portanto, como desenvolvedor, você apenas usa o Framework e não precisa se preocupar muito com a GPU-API subjacente. Algumas coisas especiais, como shaders, podem precisar ser escritas em HLSL e GLSL, mas também existem linguagens de shader de nível superior que podem ser executadas / compiladas nas duas APIs.

Suponho que o mecanismo que a Blizzard usa (eles escreveram os seus próprios) também forneça uma camada de abstração que facilita a troca da API gráfica subjacente, para que eles não precisem reescrever todo o código gráfico de uma porta Mac.

bummzack
fonte
2

Não tenho certeza do que eles realmente usam (cada um deles teria uma solução poderosa, certamente). Provavelmente, os mecanismos de jogo já comprovados e usados ​​liberam com êxito jogos nessa plataforma ou lançam sua própria solução personalizada. Mas para mim isso seria opengl, shaders, etc, principalmente. Se você é um desenvolvedor indy ou planeja fazer jogos comerciais (apenas sem AAA), o jMonkeyEngine 3 é uma ótima solução gratuita. É baseado em java, portanto, você pode implantar confiança no JRE incluído no OSX (provavelmente cortando recursos se não estiver usando um jre muito moderno) ou incorporar / quebrar um binário (fizemos um teste para o Windows) usando qualquer um dos recursos disponíveis ou gratuitos. soluções comerciais. Existem muitos outros mecanismos de compilação no OSX e em outras plataformas, mas não totalmente 'AAA', que são gerados no OSX e em outras plataformas:, C4 motor , etc. Ou se usando outra fonte aberto ou motor multiplataforma comercial, pode ser necessário usar um instalador multiplataforma como InstallBuilder .

S.gfx
fonte