暴雪如何在游戏中支持Mac OS和Windows?[关闭]


22

我一直认为,使用Direct X for Windows是当今使用现代图形创建游戏的最强大,最简便和最现代的方法。我知道这只是Windows,所以我认为在其他平台上制作类似的东西非常困难。确切地说,是Mac OS。但是,暴雪设法以某种方式提供了适用于Mac OS的Starcraft 2,而《暗黑破坏神3》也将适用于Mac。

因此,我感兴趣的是有关以下信息:

  • 他们在游戏引擎中使用了哪些技术?
  • 他们是否在两个游戏(《星际争霸2》和《暗黑破坏神3》)中都使用一个引擎,还是为每个游戏开发自定义引擎?
  • 他们在时间和金钱上为Mac OS支持付出了什么?


1
我投票结束这个问题是因为离题,因为我们不支持询问“这个游戏是如何制作的”或“这个游戏是如何做到的”的问题。这些问题大多是推测性的,不是建设性的。我们通常会编辑问题以询问“我该怎么做,但是这个问题太旧了,无法进行有建设性的修改
。– Gnemlock

Answers:


17

暴雪是非常定制技术驱动的。我没有文章的链接,但我记得看到它们为多平台兼容性和向后兼容性而为每个游戏开发了数千个自定义着色器。

多平台支持并不是什么新鲜事物。大量软件支持Linux,Mac OS和Windows。如上所述,重要的部分是从平台细节中抽象出来。

任何当代的游戏引擎都可以处理多平台,并且许多游戏引擎可以根据平台在OpenGL和DirectX之间进行切换。

像大多数专业的大型开发人员一样,暴雪是C ++家。但是,正如S.gfx所提到的,如果您正在寻找一个简单的解决方案,则有很多非C ++解决方案-包括jMonkeyEngine或LWJGL。

从C ++方面,您可以在使用OpenGL的同时利用Glut和Glu轻松处理不同的操作系统,或者为特定的OS调用编写自己的抽象。

更具体地回答您的项目符号:

他们在游戏引擎中使用了哪些技术? 暴雪可能不会说;但是,您可以确定引擎是用C ++编写的,并且使用了OpenGL或OpenGL和DirectX。请记住,OpenGL在Windows上运行。

他们在两个游戏(《星际争霸2》和《暗黑破坏神3》)中都使用一个引擎吗?还是为每个游戏开发自定义? 众所周知,暴雪会维护多个引擎。我相信《暗黑破坏神3》从一开始就是WoW代码的分支。但是,您可以肯定,一旦他们完成了该项目,就不会像《魔兽世界》那样。暴雪并不是一家害怕为每个项目编写大量代码的公司。

他们在时间和金钱上为Mac OS支持付出了什么? 如果做得正确,对Mac OS的支持应该不会花费太多。任何人都可以猜测。正如我所说,暴雪倾向于编写自定义着色器,因此一切看起来都“恰到好处”。因此,这可能比其他房屋要多。


谢谢,我认为您的答案是我一直在寻找的最接近的答案。我对通用的多平台开发非常熟悉,只想了解暴雪如何做到这一点。如果您发布指向有关其开发过程的其他信息的链接,将不胜感激。
begray 2011年

9

有一些图形引擎(以Ogre3D为例)在DirectX和OpenGL之上提供了一个抽象层。因此,作为开发人员,您只需使用Framework,而不必关心基础GPU-API。某些着色器(例如着色器)可能必须用HLSL GLSL 编写,但是也可以运行/编译到这两个API的高级着色器语言。

我的假设是,暴雪使用的引擎(他们自己编写)还提供了一个抽象层,可以轻松交换基础图形API,从而不必为Mac端口重写所有图形代码。


2

我不确定他们实际使用什么(当然每个人都会有一个强大的解决方案)。可能已经被证明和使用过的游戏引擎成功在该平台上发布了游戏,或者推出了自己的自定义解决方案。但对我来说,主要是opengl,着色器等。如果您是Indy开发人员,或者甚至打算进行商业游戏(只是没有AAA),那么jMonkeyEngine 3是一个不错的免费解决方案。它是基于Java的,因此您可能可以使用OSX随附的JRE(如果不使用非常现代的jre可能削减功能)部署信任,或使用任何可用的免费或商业解决方案。还有许多其他引擎可编译到OSX和其他平台,但不是完全“ AAA”,它们可为OSX和其他平台输出:C4 Engine等。或者,如果使用其他开源或商业多平台引擎,则可能需要使用跨平台安装程序(例如InstallBuilder)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.