Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

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.

share|improve this question
    
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?). –  Randolf Richardson Jul 14 '11 at 4:39
    
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 –  Ali.S Jul 14 '11 at 5:09
2  
Flash does have binary sockets, see here –  mpnk121 Jul 14 '11 at 5:42
5  
I don't see why you'd need to make database connections from the client if you're making an MMO. –  CiscoIPPhone Jul 14 '11 at 7:55
    
@mpnk121: That's excellent (+1), thanks for the link. –  Randolf Richardson Jul 14 '11 at 8:40

1 Answer 1

up vote 4 down vote accepted

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.

share|improve this answer
    
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? –  Jack Smartie Jul 14 '11 at 15:11
1  
@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. –  bummzack Jul 14 '11 at 15:28
    
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. –  Jack Smartie Jul 14 '11 at 16:57
1  
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. –  Patrick Hughes Jul 14 '11 at 17:49
1  
@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. –  Jack Smartie Jul 15 '11 at 22:15

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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