I am currently developing a real-time multiplayer game, and have been
evaluating various cloud-based hosting solutions. I am unsure whether
App Engine fits my needs, and would be grateful for any feedback.

In essence, I want the system to work like this: Player A calculates
round n, and generates a hash out of the game state at the end of that
round. He then sends his commands for that round, and the hash, as a
http POST to the server. Player B does the same thing, in parallel.

The server, while handling the POST from a player, first writes the
received hash code to the memcache. If the hash from the other player
is not yet in the memcache, it waits and periodically checks the
memcache for the other players hash. As soon as both hashes are in the
memcache, it compares them for equality. If they are equal, the server
sends the commands of each player to the respectively other one as the
http response.

A round like that should last around half a second, meaning two
requests per player per second.

Of course, this way of doing it will only work if there are at least
two instances of the application running, as two requests must be
dealt with in parallel. Also, the memory cache must be consistent over
all instances, be fairly reliable, and update immediately.

Is there a way to enforce that two instances of the app are always
running? Are there glaringly obvious flaws in my design? Do you think
an architecture like this might work on App Engine? If not, what could
based solution would you suggest?

I have also posted this question to StackOverflow[1]

Thank you very much for your feedback.

[1]http://stackoverflow.com/questions/5045329/is-a-real-time-
multiplayer-game-using-google-app-engine-feasible

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to