Multi-Platform PC Development.

Started by
17 comments, last by Zookes 11 years, 11 months ago
My apologies if this is in the wrong section, but I can't find any specifically multi-platform area for PCs.

My question is essentially this; some games, like Heroes of Newerth for example, are available for all three major PC operating systems.

For all the huffing and puffing from some developers about cross-platform development, this appears to be a remarkable achievement.

Does anybody know how it was done, in very elementary terms? Was it coded with Java? Does it make use of OpenGL graphics for non-windows platforms?

Thanks in advance answerers, I realise this is a bit obtuse for a first post!

Edit:

Perhaps I should elaborate, I am thinking of developing a modest game for all three major PC platforms, and I’d like to know what the travails of doing such a thing involve; what languages, tools and limitations I would face.
Advertisement

My apologies if this is in the wrong section, but I can't find any specifically multi-platform area for PCs.

My question is essentially this; some games, like Heroes of Newerth for example, are available for all three major PC operating systems.

For all the huffing and puffing from some developers about cross-platform development, this appears to be a remarkable achievement.

Does anybody know how it was done, in very elementary terms? Was it coded with Java? Does it make use of OpenGL graphics for non-windows platforms?

Thanks in advance answerers, I realise this is a bit obtuse for a first post!


It uses OpenGL on all platforms, Windows also has a Direct3D renderer which is the default option.

Most likely its written in C++ (as most games these days are).

Overall cross platform development isn't all that difficult with C++, it just takes extra time (Which is why smaller platforms (Linux basically) are often ignored), quite many games today are cross platform, (PS3, xbox360, Windows (and occasionally OS X) and most commercial game engines support all major platforms reducing the costs involved in targeting multiple platforms. High level code never really touches the underlying OS making it almost trivial to port a game as long as the engine you use support the target platform allready (Ofcoures, getting a game to run really well on limited console hardware is a different issue and can take quite a bit of work, the 360 and PS3 are quite different afterall)
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
I see, so developers wanting to target all three PC platforms must implement an OpenGL graphics system, and can optionally have a Direct3D renderer for the Windows build.

Are there any savings in time and effort if one chooses to go multi-platform from the beginning? Rather than doing it as an afterthought and failing (such as League of Legends).

I see, so developers wanting to target all three PC platforms must implement an OpenGL graphics system, and can optionally have a Direct3D renderer for the Windows build.

Are there any savings in time and effort if one chooses to go multi-platform from the beginning? Rather than doing it as an afterthought and failing (such as League of Legends).


Yes, it is something which is best done early, or atleast taken into consideration. keep platform specific code confined , if you scatter it all over the place things will get very painful, use middleware that supports all your target platforms (Any low level code you write yourself you have to port yourself, alot of people have allready done much of the work for you, take advantage of it)
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
As mentioned above, whenever using an API that comes from an OS/etc (i.e. "platform" code), the game engine will usually provide a wrapper/interface for that API that is implemented per platform.

If you don't do it early, there's people who can help you do it late for the right price wink.png For example, there are middleware libraries that emulate the Direct3D API, but actually call GL functions under the hood -- this lets you simply re-compile your D3D-based renderer on Linux/Mac (with a small performance cost, and a large cost to your cheque-book!).
Ah, I see, my thanks to you both.

In the interest of saving time, might it be prudent to choose a graphics engine that already supports multi-platform releases, such as Ogre3D?

I am also interested in the differences between OpenGL and Direct3D; to my understanding, some of the capabilities of Direct3D are not shared by OpenGL, such as real-time tessellation and parallax mapping. Am I incorrect on this note, or does OpenGL suffer from some slight limitations in comparison to it’s more broadly used cousin?

If I were to develop a graphics renderer and wanted it to appear more or less identical across platforms, would I have to forego some of these features?

I am also interested in the differences between OpenGL and Direct3D; to my understanding, some of the capabilities of Direct3D are not shared by OpenGL, such as real-time tessellation and parallax mapping. Am I incorrect on this note, or does OpenGL suffer from some slight limitations in comparison to it’s more broadly used cousin?

You are incorrect, OpenGL supports all of the features exposed by Direct3D, albeit on a slightly different release schedule.

(although technically, you may have to delve into OpenCL+OpenGL to match Computer shaders)

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

That’s very encouraging, is there a resource which details the capabilities of OpenGL (and sundry variations) to render certain features, perhaps including benchmarks and so on?

Also, is there a reasonably priced or open source game engine that makes use of OpenGL graphics that you can recommend (and is multi-platform)?

I have been looking at neoaxis and blender3D as well as Torque 3D, but am not sure which is most favoured by developers.

That’s very encouraging, is there a resource which details the capabilities of OpenGL (and sundry variations) to render certain features, perhaps including benchmarks and so on?

Performance of individual features varies by graphics card, vendor, OS, and phase of the moon (fro DirectX and for OpenGL). Such benchmarks are largely irrelevant - there are few major performance differences that hold across the board.

Also, is there a reasonably priced or open source game engine that makes use of OpenGL graphics that you can recommend (and is multi-platform)?[/quote]
Unity.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

I have a bit of experience with Unity, and it is excellent, but it doesn't offer Linux support. I suppose Linux people can use wine, but is there any alternative to unity that also covers the Linux platform, out of interest?

This topic is closed to new replies.

Advertisement