Page 1 of 1

Has anyone ever use the Google App engine?

Posted: Fri Nov 25, 2011 12:32 pm
by Cayle
I'm toying with porting Angela to Google's app engine in order to build the server for a game idea that I've been toying with. Mostly, this means refactoring Angela’s DNA module to move from Python dicts to the datastore. Since that module has 6000 lines of code, this is not a small task, but the payoff would (hopefully) come in terms of scalability. Interestingly, I expect this to be LESS effort than refactoring it to use SQL, but this might be a naïve expectation.

Does anyone here have experience with the app engine?

Re: Has anyone ever use the Google App engine?

Posted: Tue Dec 06, 2011 3:38 pm
by hallsofvallhalla
Sorry I missed this post.

As I posted on the mmorpgmakers forums

I am currently using the google maps app for a game

Image

Google has done a great job of making their apps/plugins easy to use.

Just got to watch their limitations like the 25k queries a day for the map app. Make sure their are no limitations on the google side before proceeding. Google has a huge user base so porting it could definitely open some doors. To be honest it might be easier to port towards MySQL and it would definitely make it more usable as quite a lot of people use MySQL for their games as well as open some avenues for a web based solution.

Re: Has anyone ever use the Google App engine?

Posted: Tue Dec 06, 2011 7:02 pm
by Jackolantern
I have not used it myself, and generally know little about it. However, I think that your app is developed and hosted in their services. Do you know if that is true, and is there any way to get it back should they ever decide to cancel the service? I have just always been concerned about putting serious development into applications that I don't control the source code of.

Re: Has anyone ever use the Google App engine?

Posted: Tue Dec 06, 2011 8:13 pm
by Cayle
Yeah, Jack, you might be right; but I reckon that a bigger risk by far is my never finishing. From my perusing, it looks like the App engine involves the least amount of work on getting Angie ready; and by a couple of orders of magnitude. The app engine survived Larry Page’s axe, so I presume that its making google money. Its closest competitor is Amazon’s EC2.

You develop your code locally, using an eclipse plugin and a local server, which emulates the app engine. When you are ready for beta testing, you deploy it to the sandbox in the actual cloud. All in all, it’s a pretty slick setup.

Re: Has anyone ever use the Google App engine?

Posted: Tue Dec 06, 2011 8:16 pm
by Cayle
Halls, the App engine looks like it’s a perfect fit for a few reasons.
  • Angela is written in pure, vanilla Python. I always resisted using libraries, because I was afraid of dependencies.
  • I’m a late adopter of Python 3 and Angela is on Python 2.7. Again, that works out well.
  • The runtime datastore in Angela is dict based. The app engine’s db objects work a lot like Python dicts; which makes the refactoring a breeze.
  • Every template (I call them memes) has its own schema and there is no enforced consistency of attributes between different memes. In game terms, this means that an orc may have a completely different set of attributes from a space monster. In practice, orcs and space monsters will probably share mostly the same attribute “columns”, but there may be differing data at the margins. In a relational database, this means that every template would need to be its own table, or I’d have to use blobs. If I did the latter, I’m essentially using an SQL database just like my dicts, but adding the overhead of pickling everything.
  • Map-Reduce!!! A couple of years ago, I had the foresight to design Angela around using map-reduce wherever possible. On a single CPU, it does not help any and adds development complexity, but I was worried about scaling even then. The app engine is a map-reduce paradise!
  • The only thing that Angela is missing is connectivity and the main reason there has been that I’ve just used RPC-XML and put off proper web service connectivity as I did not want to deal with authentication and there are no “clean” web service libraries for Python.. I’ll have to write the connectivity modules in any case, but there are easy to use libraries for the app engine. As a bonus, there are libraries for easy integration of iOS and Android devices with the app engine.

Since I’m working on what could best be described as “augmented reality meets text mud”, this last point is a big sell!

Re: Has anyone ever use the Google App engine?

Posted: Wed Dec 07, 2011 2:07 am
by Jackolantern
Just for the record, Halls, you are referring to Google web services, whereas Cayle is referring to the Google App Engine.

Re: Has anyone ever use the Google App engine?

Posted: Wed Dec 07, 2011 4:50 am
by hallsofvallhalla
Yeah after reading more into it I see the difference. :) Regardless of the difference the setup from google is always clean from what I have seen. I would trust anything from google. Especially hosted material. they are not going anywhere soon and their setups are going to be nice.

Re: Has anyone ever use the Google App engine?

Posted: Thu Dec 08, 2011 1:25 am
by Jackolantern
They aren't going anywhere, but they have discontinued a slew of products already, some of which were programming-related with existing communities.

However, this one appears to have a lot of traction, and even has a big handful of books written on the topic, so it would likely be a safe bet that this one is not going away. My only real complaints with what I have seen so far is that it looks like there are some foundational differences between App Engine with Python and with Java, and that it is only for Python and Java. But I have not used it, and it is likely pretty low on my to-learn list, but I may get around to it sometime. It does look fairly interesting.