nornagon
nornagon

Reputation: 15831

Developing and deploying games for Windows, Mac (& Linux)

I want to write games that run on all the major platforms.

I also want people to be able to play them by downloading a file and double clicking it. That means a single .exe/.app file.

I'm happy to use OpenGL directly for graphics (I'll mostly be working in 2D). What I don't know how to do is show a window, handle mouse/keyboard input and play sounds in a cross-platform manner.

I don't really mind what the underlying language is, though would prefer to avoid C++ and Java. C#, Ruby or Python would be preferable, in that order :)

Please, SO, save me from having to write Flash games!

Upvotes: 3

Views: 2109

Answers (5)

nornagon
nornagon

Reputation: 15831

For the particular project I'm working on, Processing.JS and box2dweb turned out to be the right answer.

Upvotes: 0

user350814
user350814

Reputation:

I'd recommend C++ and Ogre3D, or Irrlicht (whatever fits your purpose better).

Advantages by using C++ with either of said Frameworks:

  • Guaranteed to be crossplatform (as there are C++ compilers for almost any Operating system existing on this Planet)
  • No need for a virtualmachine, which might make the game arguably faster
  • Both Ogre3D and Irrlicht have a non-restrictive License, that allows commercial use, without having to pay a fee.

There are also plenty of games, written using Ogre3D or Irrlicht:

Ogre3D seems to be more mature than Irrlicht, judging by the amount of Applications and games, that is.

Upvotes: 2

nornagon
nornagon

Reputation: 15831

I'm also trying out Ruby/Gosu, which looks like it can be deployed relatively easily on Windows and OS X.

Upvotes: 0

user166390
user166390

Reputation:

The "Java platform" works reasonably well, once the JRE is installed -- there is JWS (Java Web-Start) and the JRE can be packaged with the client I suppose.

There are a number of cross-platform game libraries for Java with OpenGL bindings such as Java Monkey Engine. There are also 2D libraries such as Slick. If you want a "really lightweight game library" (e.g. just basic OpenGL, keyboard/mouse IO, and precise timing) then I would highly recommend LWJGL which provides just that.

Java isn't suitable for all games -- but it be an option that worked very well for me for a course project. It was developed on Windows/Linux and played on Windows/Linux/OS X (get a non-ancient JRE installed for OS X ... bundled version is often severely dated.)

Edit I lied -- I really really dislike Java so I actually wrote my game/projects in Scala [it is a must to try for a JVM target] and just took advantage of the JVM and existing libraries ;-) They ran well with no performance/GC issues on Java 6u18+.

Upvotes: 2

Suma
Suma

Reputation: 34443

If you really want to be this cross platform, my advice would be to use some kind of "high level" platform, like Flash, or Unity 3D.

Their business model seems smart to me: For small projects Unity is free, if you will grow enough so that it is no longer free for you, you will most likely be able to pay for the license (and you will get somewhat more advanced Pro version for that).

Upvotes: 1

Related Questions