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?
Respostas:
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.
fonte
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.
fonte
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 .
fonte