2
\$\begingroup\$

I hope this question hasn't been asked before.

I'm thinking of creating an MMO game, perhaps for Facebook. I've investigated the options of using Java or Flash/Flex. But I'm still not sure which to go with. Does anyone have any advice on which language to use?

Which language has more open source or free tools/libraries? Which one has better performance for a database transaction-heavy game?

A few notes: I'm intending it to be a 2D, isometric game with cartoony graphics. Nothing necessarily intense on the graphics front. I've heard of JMonkeyEngine, but that's 3D. The only other thing I've found that's good for 2D is LWJGL. One thing I don't like about Flash/Flex is that it can't create a direct connection to the database. Is that also true for a Java-based game?

Essentially, I would like to know how to approach the development of an MMO. What tools/libraries should I use? I'm hoping that there are open source/free options.

Thank you for your time.

\$\endgroup\$
6
  • \$\begingroup\$ Java has no trouble making direct database connections (as per JDBC), and can also perform direct socket I/O (which is very useful for your custom game protocol). The last time I checked into this (many years ago), Flash didn't have direct socket I/O support and Macromedia told me that I'd have to use XML (does anyone know if Flash supports direct socket I/O nowadays?). \$\endgroup\$ Commented Jul 14, 2011 at 4:39
  • \$\begingroup\$ I would go with flash considering that I didn't develop anything using neither flash or java. I just have the idea that developing a 2D game is much more easier job using flash. and I guess for an MMO game you have to redesigned your game structure if you worry about heavy database transitions. otherwise there has to be some way to implement connections since there are many MMO flash games like club penguin \$\endgroup\$
    – Ali1S232
    Commented Jul 14, 2011 at 5:09
  • 2
    \$\begingroup\$ Flash does have binary sockets, see here \$\endgroup\$
    – mpnk121
    Commented Jul 14, 2011 at 5:42
  • 5
    \$\begingroup\$ I don't see why you'd need to make database connections from the client if you're making an MMO. \$\endgroup\$ Commented Jul 14, 2011 at 7:55
  • \$\begingroup\$ @mpnk121: That's excellent (+1), thanks for the link. \$\endgroup\$ Commented Jul 14, 2011 at 8:40

1 Answer 1

4
\$\begingroup\$

You'll have to write client- and a server-software for an MMO. Your client won't establish a direct database connection (which would be way too risky), but rather communicate with the server-software that handles all DB transactions.

You can program your backend in Java, Rails, Python, PHP or similar. For the client I suggest you use Flash. It is ubiquitous (except iOS devices, but Java won't run there either) and you'll find lots of libraries/tools for Flash. You can also develop Flash games using free software. See this question.

If your client is going to be rather simple, you could also look into a pure HTML/JavaScript client.

\$\endgroup\$
9
  • \$\begingroup\$ Thanks for your answer. When you say the client won't establish a direct database connection, is that regardless of the programming language? Could you explain more about why it's risky and what I can do about it? Also, I realize Flash may be easier to use for designing, but I'm more familiar with coding. Is Flash still a good idea? Also, how big can a game get in terms of megabytes/gigabytes before it's no longer a good idea to use Flash? \$\endgroup\$ Commented Jul 14, 2011 at 15:11
  • 1
    \$\begingroup\$ @Jack Smartie: Because you should never trust the client. If your client can directly manipulate the DB, that means everybody can directly manipulate your DB... When I say Flash I don't mean "Flash Professional" (the software). If you're more familiar with coding, use FlashDevelop or Flash Builder software. Your Game client should be rather small (say, MegaBytes, not GigaBytes). But you can still stream lots of data (potentially GigaBytes).. that's where bandwidth concerns will arise though. \$\endgroup\$
    – bummzack
    Commented Jul 14, 2011 at 15:28
  • \$\begingroup\$ Thanks, I'll keep in mind that I need to have a middleman for database access between client and server. I guess I still have to figure out how big a game I want to have. I was interested in using Facebook to distribute the game, but I was also interested in basing my game on other MMO's like Eve Online and Goonzu, which have fairly large clients in terms of gigabytes. \$\endgroup\$ Commented Jul 14, 2011 at 16:57
  • 1
    \$\begingroup\$ The unstated backdrop to all this is that traditional MMO clients are very simple, they are nothing but playback shells with very little brains of their own. The servers, those are complex and can be architected in many different ways. \$\endgroup\$ Commented Jul 14, 2011 at 17:49
  • 1
    \$\begingroup\$ @Randolf Richardson, I would up-vote your comment and the answer, but I'm too new on this section of stackexchange. But thanks for the link and information. I'll look into it. \$\endgroup\$ Commented Jul 15, 2011 at 22:15

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .