Sign in to follow this  

Multi-Platform PC Development.

This topic is 2059 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
[quote name='Zookes' timestamp='1335348196' post='4934685']
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!
[/quote]

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
[quote name='Zookes' timestamp='1335357002' post='4934722']
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).
[/quote]

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]i.e. "platform" code[/i]), 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 [img]http://public.gamedev.net//public/style_emoticons/default/wink.png[/img] 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 ([i]with a small performance cost, and a large cost to your cheque-book![/i]).

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
[quote name='Zookes' timestamp='1335362866' post='4934755']
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?[/quote]
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
[quote name='Zookes' timestamp='1335364062' post='4934760']
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?[/quote]
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.

[quote]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]
[url="http://unity3d.com/"]Unity[/url].

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
[quote name='Zookes' timestamp='1335365022' post='4934768']
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?[/quote]
Nothing with anywhere close to the level of user-friendliness or sophistication. You can cobble together an equivalent group of open-source components (i.e. Ogre, ODE, etc.), but it isn't an easy task, and you'll have to reinvent a lot of the functionality Unity provides.

Worth keeping in mind that the Unity devs have expressed an interest in Linux publishing, and it is the [url="http://feedback.unity3d.com/forums/15792-unity"]highest-rated feature request[/url]. As a stop-gap solution, the next version of Unity will provide Flash publication, and that will run anywhere Flash does (including Linux).

Also worth considering that Linux only has around a 1-2% marketshare on the desktop, and that most of those are in the CS/IT/film industries, not gaming...

Share this post


Link to post
Share on other sites
Is that so? Where do these numbers come from anyway?

You’re probably right though, it just somehow feels wrong not to include another branch of the personal computing family.

I think I’ll probably just have to tinker with Ogre to see whether it multiplies the difficulty too much.

Thanks for your assistance swiftcoder, it’s been edifying. Perhaps if S2 Games can do it, so can I, but perhaps not, we’ll see.

Share this post


Link to post
Share on other sites
This may not be what the OP is really looking for, but for managed cross-platform dev I've been hearing about this project which claims to offer XNA implementation for Windows, Linux & MacOS: [url="http://monogame.codeplex.com/"]http://monogame.codeplex.com/[/url]

Note that I have not personally tried cross-compiling any of my projects, but from the webpage it sounds promising.

EDIT: wrong link, duh

Share this post


Link to post
Share on other sites
[quote name='Zookes' timestamp='1335368056' post='4934781']
You’re probably right though, it just somehow feels wrong not to include another branch of the personal computing family.[/quote]
In that case, don't forget BeOS and the Commodore 64 ;)

Share this post


Link to post
Share on other sites
It’s interesting, but I’m worried about performance, and furthermore, I’d very much like to build it from day one to be multi-platform.

Unfortunately there doesn’t seem to be anything like Unity’s level of excellence in game engines that do provide multi-platform support.

Edit:

[quote]In that case, don't forget BeOS and the Commodore 64 ;)[/quote]

Pfft. :S Okay, I suppose I take your point; perhaps I should defer to the chaps who make Unity on this one, they’re probably a better judge of demand than me. Would be nice to have one day though.

Share this post


Link to post
Share on other sites
[quote name='swiftcoder' timestamp='1335365987' post='4934770']
Also worth considering that Linux only has around a 1-2% marketshare on the desktop, and that most of those are in the CS/IT/film industries, not gaming...
[/quote]

Don't confuse usage share with marketshare (its a common mistake), the marketshare is higher but also irrelevant as the number of gamers using Linux exclusivly can be counted on one hand, (maybe two) (Linux gamers will buy Windows games and run them in Windows if they have to).

Many indie games that have had Linux releases get 10-20% of their revenue from Linux users (It is impossible to say how many of those buyers would have bought the Windows version if no Linux one was a available though and its quite hard to quantify the value of the almost automatic slashdotting you get by releasing a game for Linux (Which can translate into more Windows/Mac sales aswell))

Edit: As for if its worth it or not is something you have to figure out for yourself, in general it seems that low budget titles with no marketing ability has more to gain by going crossplatform than big budget titles do. (Allthough valve seems to be pushing steam and L4D onto Linux now, but i guess its more about getting Linux users to adopt steam and selling the ~40 Linux games they allready have on steam to more users (rather than having them buy from other sources) than it is about selling extra L4D copies)

Share this post


Link to post
Share on other sites
[quote name='SimonForsman' timestamp='1335378187' post='4934832']
Many indie games that have had Linux releases get 10-20% of their revenue from Linux users...[/quote]

Citation please, I'm skeptical that this number is that high.

Share this post


Link to post
Share on other sites
[quote name='DoctorGlow' timestamp='1335398028' post='4934912']
Citation please, I'm skeptical that this number is that high.[/quote]
It's [url="http://www.humblebundle.com/#statistics"]true of the Humble Bundle[/url] (all of them, so far). That may not be entirely representative of normal boxed/digital sales, but it's fairly compelling.

Share this post


Link to post
Share on other sites
My, yeah, I never saw those figures.

I do hope Linux becomes more viable as a gaming platform in the fullness of time, it just lowers the bar of entry to the personal computing club by virtue of it’s ‘use now, buy never’ policy.

As to other engines, has anyone tried NeoAxis or Torque3D? Of course, I’ll give them a whirl myself, but I’d also like a longer term judgement if I can find one.

Thanks chaps!

Edit:

Nevermind, NeoAxis doesn’t actually offer native Linux Deployment. -_______-

[url="http://www.neoaxis.com/neoaxis/features/platforms"]http://www.neoaxis.c...tures/platforms[/url]

And neither does Torque3D apparently. I’d better head out for a run because I appear to have been eating a lot of porky pies.

Edit the Second:

Hmm, torchlight used Ogre as it’s rendering engine. But the nearest thing I could find to an engine/editor for it was Ogitor, and it’s barely a plugin. I think I’ll stick to Unity for the time being and if I scale up a bit later, I’ll see what the playing field is like at that time.

Thanks chaps. I think I have my answer.

Share this post


Link to post
Share on other sites

This topic is 2059 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.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this