Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I've always thought, that using Direct X for Windows was the most powerful, easy and modern method to create games with modern graphics nowdays. And knowing, that it's only Windows I thinks it's pretty difficult to make something similar on other platforms (Mac OS to be exact). But 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 develop custom for each game?
  • what are they paying in terms of time and money for Mac OS support?

Thanks

share|improve this question
    
related: gamedev.stackexchange.com/questions/195/… –  Tetrad Jan 4 '11 at 15:31

3 Answers 3

up vote 16 down vote accepted
+50

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.

share|improve this answer
    
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. –  begray Jan 8 '11 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.

share|improve this answer

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.