I've always thought that using Direct X for Windows was the most powerful, easy and modern method to create games with modern graphics, nowadays. Knowing that it's only Windows, I thinks it's pretty difficult to make something similar on other platforms; Mac OS, to be exact. However, Blizzard somehow managed to deliver Starcraft 2 for Mac OS, and Diablo 3 will be available for Mac, too.

So what I'm interested in is information about:

  • what technologies are they using for their game engines?
  • are they using one engine for both games (Starcraft 2 and Diablo 3), or do they develop custom engines for each game?
  • what are they paying, in terms of time and money, for Mac OS support?
  • \$\begingroup\$ related: gamedev.stackexchange.com/questions/195/… \$\endgroup\$
    – Tetrad
    Commented Jan 4, 2011 at 15:31
  • 1
    \$\begingroup\$ I'm voting to close this question as off-topic because we do not support questions asking "how was this game made" or "how did this game do that". Such questions are mostly speculative, and not constructive; we usually edit the question to ask "how can I do this feature, but this question is too old for such edits to be constructive. \$\endgroup\$
    – Gnemlock
    Commented Jun 8, 2017 at 3:53

3 Answers 3


Blizzard is very custom-tech driven. I don't have links to the articles, but I remember seeing that they develop thousands of custom shaders per game for both multiplatform compatibility and backwards compatibility.

Multiplatform support isn't something new. Plenty of software supports Linux, Mac OS, and Windows. As was mentioned above, the important part is abstracting away from platform specifics.

Any contemporary game engine handles multiplatform and many can switch between OpenGL and DirectX depending on the platform.

Blizzard is a C++ house, like most professional large scale developers. But, as was mentioned by S.gfx, if you're looking for an easy solution, there are plenty of non-C++ solutions -- including jMonkeyEngine or LWJGL.

From the C++ side, you can utilize Glut and Glu to easily handle different operating systems while using OpenGL, or write your own abstraction for specific OS calls.

To more specifically answer your bullets:

what technologies are they using for their game engines? Blizzard probably wouldn't say; but, you can be sure the engine is written in C++ and utilizes OpenGL or OpenGL and DirectX. Remember, OpenGL runs on Windows.

are they using one engine for both games (Starcraft 2 and Diablo 3)? Or develop custom for each game? Blizzard has been known to maintain multiple engines. Diablo 3, from the onset, was a fork of WoW's code, I believe. But, you can be sure it will be nothing like WoW once they've finished the project. Blizzard isn't a company afraid of writing plenty of code per project.

what are they paying in terms of time and money for Mac OS support? If done correctly, Mac OS support shouldn't be "too" significant of a cost. Anyone can guess. Blizzard, as I said, has a tendency to write custom shaders so everything looks "just right"; so, it could be more than other houses pay.

  • \$\begingroup\$ Thanks, I think your answer is the closest to one, that I was looking for. I'm pretty familiar with general multiplatform development, just wanted some information on how Blizzard does it. I'd be grateful, if you post links to additional information about their development process. \$\endgroup\$
    – begray
    Commented Jan 8, 2011 at 11:37

There are graphic engines out there (take Ogre3D as an example) that provide an abstract layer on top of DirectX and OpenGL. So as a developer you just use the Framework and don't have to care much about the underlying GPU-API. Some special things like shaders may have to be written in HLSL and GLSL but there are also higher level shader languages that can run/compile to both APIs.

My assumption would be that the engine Blizzard uses (they wrote their own) also provides an abstraction layer that makes it easy to swap the underlying graphics API, so that they don't have to rewrite all their graphics code for a Mac port.


I am not sure on what they actually use (each one would have a powerful solution, surely) . Probably already proven and used game engines succesfully releasing games on that platform, or rolling their own custom solution. But to me that it'd be opengl, shaders, etc, mostly. If you are an indy developer, or even plan on doing commercial games (just no AAA) jMonkeyEngine 3 is quite a nice free solution. It's java based, so probably you could deploy trusting on OSX's included JRE (probably cutting features if not using a very modern jre) , or embed/wrap a binary (we made a test doing so for Windows) using any of the available free or commercial solutions. There are a bunch of other engines compiling to OSX and other platforms, but not totally 'AAA', which output for OSX and other platforms: Unity, C4 Engine, etc. Or if using other open source or commercial multiplatform engine, you might need using a cross platform installer like InstallBuilder.


Not the answer you're looking for? Browse other questions tagged .