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'm looking at some ideas of creating a smale scale MMORPG game, based in Java, this is a side/hobby project to help my learning process

I've already had a play with GAE and have put up a simple web app, I'm thinking of using this as my platform for a game

Is this a good idea? Are there any games out there that use such a platform? I can't see any limitations so far, other than Google might be able to "own" it rather than myself

share|improve this question
add comment

2 Answers

It's not exactly an MMO, but here's one article I read recently on using App Engine as a game server back-end:

http://gamesfromwithin.com/google-app-engine-as-back-end-for-iphone-apps

I have used GAE as a back-end for a couple of my projects, none of which was an MMO, but I certainly appreciate it as a strong web development platform that is easy to work with in general, and decidedly cheap to experiment with and bootstrap from.

As @DFectuoso points out, for a real-time MMO you are going to have some issues using any web server, much less App Engine in particular. However, a turn-based and/or social MMO quite possibly could use App Engine as the sole back-end.

Ultimately it does depend on your game architecture. There are strategies for doing near real-time or faking real-time where the main server is a web server like App Engine:

  • You could do real-time communications peer-to-peer, only updating the server at key moments.
  • You could attempt some real-time communication with strategies such as long polling, which is also referred to lately as "comet requests", in which you make requests to the webserver and the server never "finishes" the response which results in very long requests/polling, but allows the webserver to continually push new data as it becomes available. (Deeper comet support is an upcoming feature in App Engine, according to the roadmap.)
  • In App Engine's case, you can also use XMPP/Jabber (an open IM protocol) to communicate quickly (just about real-time) with your game server. It might not be a great place to build a full real-time game, but there are many interesting chat bots written with App Engine's XMPP support.
share|improve this answer
    
This is the issue tracker for the Comet support (since I couldn't embed the link in the actual post just yet-- need more reputation points apparently): code.google.com/p/googleappengine/issues/detail?id=377 –  WorldMaker Sep 21 '10 at 5:13
add comment

Sort of, depends on how much latency/speed you need.

Every http request (to a dedicated server) takes anywhere between 300-600 ms. In the app engine that looks more like 600-900 ms or even more(if you have a lot of queries). At the same time a single connection to the GAE has to last less than 30 secs, so...

What all that means is that you will have to be doing slow polling, which might be good enough for some turn-based, not real time games.

If you want to do a real time game you need to leave HTTP and go to TCP or UDP(especially UDP).

Having said that, if a slow latency/non-real time connection is good enough for your game, GAE scales pretty cheaply, and solves a lot of problems (no limit on the size of the db, no spam problems with large amount of emails, etc)

share|improve this answer
    
TCP is not really an option if you want realtime. –  Lohoris Sep 21 '10 at 10:28
3  
^^^ Common myth –  U62 Sep 22 '10 at 16:22
    
* For different values of realtime. –  DFectuoso Sep 23 '10 at 20:16
1  
TCP handles real-time just fine, if you manage your packets properly. No point in sending 10 packets to the same destination within a few milliseconds, when you can group them together. –  Stephen Belanger Nov 15 '10 at 17:59
    
@Stephen: right. using the right techniques, you can achieve speed & reliability that the only worry left will be connection speed. –  Zippo Jul 15 '11 at 19:24
add comment

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.