Jump to content
  • Advertisement
Sign in to follow this  
Zookes

Multi-Platform PC Development.

This topic is 2273 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.

Share this post


Link to post
Share on other sites
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)

Share this post


Link to post
Share on other sites
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).

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites
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!).

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!