google app engine for extremely demanding multiplayer browser game

83 views
Skip to first unread message

Karel Crombecq

unread,
Sep 12, 2011, 10:00:02 AM9/12/11
to google-a...@googlegroups.com
Hey guys,

I am currently investigating possibilities for writing a sequel to the popular text-based browser game that I released in 2001 called Castle Quest 2 (http://www.castlequest.be). One of the options I am considering is developing the game in GWT, and running it on app engine. But I am not sure whether app engine will be able to scale to the degree needed for my game.

CQ2 at its peak generated easily 3 million page views per day (90 million per month!), with bandwidth usage of 2.5GB each month. The database grew to a size of about 1GB. There were at least 250 sql queries each second. And it is expected that CQ3, with the advent of social networks and social gaming, will reach multiples of these numbers.

Now I don't really know how big the sites are that are hosted by Google app engine, as information is rather scarce on that part. So my question to the Google team is: do you think (know?) if app engine can handle this kind of pressure from one app? Will the data store hold up, and will it scale well?

It is extremely important that I have trustworthy information about this. If I decide to go with app engine and the system doesn't hold up, a massive money and time investment will be lost.

Thanks in advance,
Kind regards,
Karel Crombecq

chris

unread,
Sep 12, 2011, 5:40:00 PM9/12/11
to Google App Engine
Hello Karel,

Here's some initial responses to your question on using App Engine as
a gaming back end..

> About 1500 active users cause on average 3 million page views each day (90 million each month), for a bandwidth usage of 2,5GB per month.

This should not be a problem..


>About 250 SQL queries are executed each second, and the database is slightly less than 1 GB large, with hundreds of tables. Can this be handled by a nonSQL db? Or is a relational DB a definite requirement?

The GAE Datastore can definitely scale to 250 qps. There's no
effective limit to datastore qps, given that access patterns are
sufficiently distributed. We currently have customers doing tens of
thousands of qps.


>Is GWT and app engine with the data store a viable platform for a game with these specifications?

It should be, although having GWT in the mix is not a requirement. You
could also code your app directly in HTML5, or you could also look
into using the new multi-platform game development platform:
"PlayN" (http://code.google.com/p/playn/)

What might be helpful is to create a small prototype app on App
Engine, and see if this environment will work for you. Once you're
more familiar with App Engine, you'd be in a much better position to
make the call. You can always post further questions to this group,
(or the PlayN group..)

Hope this helps!
-Chris

Brandon Wirtz

unread,
Sep 12, 2011, 6:55:26 PM9/12/11
to google-a...@googlegroups.com

Karel,

 

I would inch in to it with some testing so you can get a sense of price, scale, and performance.

 

Consider using GAE as a Proxy, for your game first. You might round robin a portion of the traffic off to it with load balancing at the DNS level. (this would be good to figure out anyway, since you are going to lose your China, (and based on my experience some of Korea) audience do to export, firewall, and other rules)

 

Once you have a proxy in place on Appengine, you can get a sense of the Bandwidth and scaling costs, with minimal work converting the game code.  If these costs are inline with your expectations, then start looking at some of your common SQL calls and how they map to GQL to see if those costs and speed will be with in your tolerances.

 

-Brandon

 

 

Brandon Wirtz
BlackWaterOps: President / Lead Mercenary

Description: http://www.linkedin.com/img/signature/bg_slate_385x42.jpg

Work: 510-992-6548
Toll Free: 866-400-4536

IM: dra...@gmail.com (Google Talk)
Skype: drakegreene

BlackWater Ops

--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/OAB-cvkIXMYJ.
To post to this group, send email to google-a...@googlegroups.com.
To unsubscribe from this group, send email to google-appengi...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.

image001.jpg

Karel Crombecq

unread,
Sep 13, 2011, 5:26:49 AM9/13/11
to google-a...@googlegroups.com
Thank you. I already made several apps and games using GWT and a java backend as prototypes and I am very satisfied with the result. I have also watched the relevant Google IO talks on scaling, proper app design for scalability, and so on, and I believe I have enough information to invest time into building a prototype based on GWT/app engine (with possibly PlayN on top).

Apologies for the double post by the way. My first post stayed away for half a day, so I assumed I forgot to press "post" and made a new one. Now I figured it was passed on to the dev team (who were sleeping :)). If possible, these can be merged. Thanks!

Jean-Marc Truillet

unread,
Sep 13, 2011, 5:34:17 AM9/13/11
to Google App Engine
Hi Karel,

Another advantage of GAE for a multiplayer game like yours is the
channel API. It is a Comet-like push system that avoids you polling
the server (and the DataStore) to retrieve the actions of the other
players.
Have also a look at www.ovh.com. They propose (virtual) dedicated
servers and PaaS solutions. Their datacenter is located in Lille
(Rijsel), in your area.

JM
Reply all
Reply to author
Forward
0 new messages