I have a game ready to be implemented (Class Diagrams and other UML stuff are good).

Here are some characteristics:

  • MMO.
  • Browser game and download-game.
  • Multiplatform.
  • With 2D graphics.
  • Real time.
  • Point-and-click.
  • With an online database (duh!).

What language should I use?

  • \$\begingroup\$ Some questions that came to my mind when deciding about a language: Will it be a realtime game or round-based? What genre? What do you mean by "standalone"? \$\endgroup\$ – Michael Klement Jun 18 '11 at 9:11
  • \$\begingroup\$ @Michael Barth I edited the question! \$\endgroup\$ – SteeveDroz Jun 18 '11 at 9:15
  • 1
    \$\begingroup\$ Do you know any existing languages? Can't you use them? \$\endgroup\$ – The Communist Duck Jun 18 '11 at 9:42
  • 1
    \$\begingroup\$ @The Communist Duck I know many languages, I know so many that I can learn the basics of a new one in a few weeks for that purpose. My common knowledge is: C/C++, Java, python, PHP, Javascript, ... \$\endgroup\$ – SteeveDroz Jun 18 '11 at 9:49
  • 1
    \$\begingroup\$ Talking about 2D in browser... HTML,CSS, JS, WebSocket, VueJS on frontend. And - NodeJS, MongoDB, WS on backend. That's it. checkout: twitter.com/vovchisko/status/938398747872124928 You can even use CSS/HTML as render. Just watch on performance, as JS is a single-thread. \$\endgroup\$ – Vladimir Ishenko Dec 28 '17 at 9:39

Runescape is quite a famous online browser based MMORPG, and they provide an open source project to provide the game as a windows client.

The game itself uses JOGL but any 2D framwork should be good for you, Java is maybe older than Silverlight for example, but is user friendly and well documented.

There is a link here for the windows client and source code.

  • 1
    \$\begingroup\$ Agreed. Java is multiplatform, commonly supported by browsers, works offline too, has extremely easy networking, good 2D graphics and Runescape has proved it's efficient enough to support a MMO. \$\endgroup\$ – Anko Jun 18 '11 at 11:48
  • 1
    \$\begingroup\$ Java's 2D and 3D graphics capabilities are quite good these days. Unfortunately Java gets a bad reputation because it didn't provide very good performance in its early days, but it has come a very long way from this. I would say that Java is definitely an excellent contender in the game development arena. \$\endgroup\$ – Randolf Richardson Jun 18 '11 at 14:48

I want to tell a little story, that is both relevant and educational. I'm currently working at a young company making a browser-and-mobile MMO game. We started work about a year and half ago; and the company founder asked would-be programmers the very same question: "What language should we use? Why? What are the alternatives?". We ultimately convinced him to use C# on both server and client (client in Unity3D). Now, a couple' months back, someone asked the same question on some forum we all read: "What should I use for an MMO?". Our founder read it and laughed: "Yeah, now I understand - this question is pointless. All languages are more or less equal; your experience is what really matters."

The moral of the story? Use what you know best, and are comfortable working with.

  • \$\begingroup\$ Yes, to a degree. It's important to consider what languages are supported on the platform-of-choice of your target audience as well. For example, if your potential customers are mostly using Google Android phones, then C, C++, or even GW-BASIC (I'm being facetious with that last one, heheh) would not be useful choices. I do like this answer. \$\endgroup\$ – Randolf Richardson Jun 18 '11 at 15:00
  • \$\begingroup\$ I think your answer makes sense! Thanks you veery much for sharing a real experience (and a little story), it helps me much! \$\endgroup\$ – SteeveDroz Jun 18 '11 at 17:39

There's no right answer, and it's not clear if you're talking about on the server (online database) or client (real-time, multiplayform.)

So we can address those separately: 1) Client. Unity has been suggested but the question is how multi-platform are you talking about? iPhone? Android? Xbox360 via XNA? The choice of target platform will to a degree determine the choice of languages. I personally feel that the largest overlap of platform is Flash, followed by a C# logic with custom front-end. Flash is directly available for the browser use, the Air API makes it a desktop application as well, and has implementations for all modern platforms except windows phone 7 and the 360.

C# and different front ends also offer an interesting approach. You could write all of the network and game logic classes in C#, and then implement a specific front-end for the differing platforms. Windows phone 7 and PC could be Silverlight, 360 would be XNA, and iPhone/Android could be MonoTouch/MonoDroid respectively. (However, it's still not clear how prime-time ready the mono products are.)

As pointed out above you can also do Java or Unity, but each of those has less of a multiplatform role then Flash or C#.

2) Server. C++ is the traditional route here, but honestly whatever you feel comfortable with. I've been experimenting with Python based servers for the rapid prototyping. But if you have a java client then a java server is worth looking into for code reuse. Likewise C# to C# gives a great reuse factor. One thing I've been dying to try is a C# server with IronPython embedded in it for AI/ability logic.

However as a last bit of advise given how incredibly complex an MMO is, )See Why is it so hard to develop a MMO? ) the answer really should be "Whatever language you and your team know back and front." You'll be having so many other challenges facing you, your language should be the least of your worries.


Unity would probably fit those. You script it in C#, Boo (sort of a Pythonic language with static typing), or Javascript.

  • 1
    \$\begingroup\$ Unity3D isn't all that great for 2D spriting. \$\endgroup\$ – Jonathan Connell Jun 18 '11 at 9:29
  • \$\begingroup\$ @3nixios It may not be, but it does everything else there pretty well. \$\endgroup\$ – The Communist Duck Jun 18 '11 at 9:30
  • 1
    \$\begingroup\$ @The Communist Duck : I find the networking very poor as well... \$\endgroup\$ – Jonathan Connell Jun 18 '11 at 9:31
  • \$\begingroup\$ @3nixios It claimed to be fully network supportive. \$\endgroup\$ – The Communist Duck Jun 18 '11 at 9:33
  • 1
    \$\begingroup\$ Wow, that looks good, too bad it's not multi platform, only on Windows and Mac. As a Linux user, I don't like not to be able to download the "unity web player". \$\endgroup\$ – SteeveDroz Jun 18 '11 at 9:34

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