Thinking of leaving the App Engine

A topic built around all the best posts and information from the site. It includes informative posts, links to resources, tips, tricks, ect... Do not post here unless it will become a resource based post.
Post Reply
Cayle
Posts: 272
Joined: Fri Jul 03, 2009 4:45 am

Thinking of leaving the App Engine

Post by Cayle »

I started on the google app engine for Magicus Occultus largely because I was coming from the background of having written Angela, which uses an object datastore and is not relational. At the time, the GAE seemed like a nice alternatice to Amazon Web services, Rackspace, etc. First off, I had to drop Angela as my core engine, which runs a continuous loop (actually several. It's highly multithreaded), because GAE can only respond to web requests and has a two second cutoff. I went with some Angela patterns and reckoned that I'd simplify my architecture anyway.

Now, I'm starting to think differently. Magivus Occultus is fundamentally a sandbox game and carries over some of the "cool" features that I designed for in Angela. For instance, it has object assemblies. Angela was basically designed around supporting object assemblies. Except that now as I understand the app engine better, the performance might be ok and the scalability great (a big reason why I went with GAE), the monetary runtime cost might just be too high when your character starts to look like a social graph. Also, I do not like having to resort to geohashing for determine distances between entities; especially as filtering by distance is such a critical "central engine service". A direct point to point distance calculation is possible and I wrote a library method for determing the distance between any two geo coordinates; bit this can get expensive.

Anyway, I'm thinking of leaving the GAE behind and moving to another cloud computing platform (which I won't name yet) that would allow me to run Angela (though in modified form, using a relational datastore), while using a high performance columnar database which incorporates R (at least in the on premises version, I have to double check on the cloud version) into SQL statements. I might look into what kind of refactoring and re-architecturing that I'd need to do to get Magicus Occultus running on Angela in Jython on this framework. :oops:
User avatar
Jackolantern
Posts: 10891
Joined: Wed Jul 01, 2009 11:00 pm

Re: Thinking of leaving the App Engine

Post by Jackolantern »

Maybe it is time to step back from cloud platforms and some of the limitations they enforce (like the cutoff you mention). A possibly alternative could be node.js. Socket communication is dead easy. The only downside is that asynchronous patterns are par for the course. Continuous loops could be a tiny challenge since it is 100% evented, but you can always fork() the process, create a loop there, and then use events for communication between the daemon and loop (I believe this is how most MMO servers are made in Node). Node also excels at working with document or object data stores.

Also if you aren't that against .NET, C# is one of the most flexible languages out there. You can SignalR if you want websocket support, you can code async and sync, etc. You can use document or object data stores with .NET as well. Just download a data provider. You can also get the benefits of .NET with Iron Python, the Python built on .NET.

Both of these would basically include getting a virtual or dedicated server or simply hosting it yourself. If you want to stay with Python, there are plenty of Python hosts as well. The answer is probably regular server hosting (either commercial or self-hosting) so you can do whatever you want.
The indelible lord of tl;dr
Cayle
Posts: 272
Joined: Fri Jul 03, 2009 4:45 am

Re: Thinking of leaving the App Engine

Post by Cayle »

The platform I'm thinking of could be used as a cloud platform in a couple of different ways (pure cloud with only http access, hosting style with an instance on Amazon Web Services and odbc/jdbc access) or as a box under the desk; though this last option makes Hero look inexpensive.

Oh I'll just come right out with it instead of being coy about the platform! :mrgreen:

The platform involved in SAP HANA, an in memory, columnar database. The operative buzzwords here are "realtime, big data". The difference between row oriented relational databases and column oriented relational databases is deeply technical, but in a nutshell, the column orientation puts all attributes on a table together, rather than grouping by record. Columnar databases are not so great for retrieving individual records, but are awesome for pulling down mass amounts of data; say for things like determining the relative distance between every entity in an MMO on every heartbeat tick.

Now I work for SAP and this week, we had an annual developer convention, where a lot of the newer capabilities of HANA were discussed (such as a scripting language that when compiled, runs massively parallel and a new embedded HTML5 web server). It was in a couple of these talks where the thought rolled through my mind... "GAE kind of sucks... I wonder if I can move Magicus Occultus back to Angela and run it on HANA...". Prior to a few months ago, this would not have been possible as a HANA licence costs 160k bucks and needs to run on a server blade costing about 60k usd. I have my own HANA instance at work and I do have a variant of Angela running against it, using Angie as an app engine for an work related proof of concept; but that's inside the corporate firewall and no Magicus Occultus stuff ever touches my work laptop. But now we (as in my company) have two cloud based alternative ways targeted at giving startups access to HANA, I can give this a spin.

I'm reluctant to say "hey everyone, try this out" and it can be a bit of a pita to get started and I'd like to actually try porting MO to it before telling anyone to try it out. Also, as an employee, I've got access to some goodies that are not publicly available yet.
User avatar
Jackolantern
Posts: 10891
Joined: Wed Jul 01, 2009 11:00 pm

Re: Thinking of leaving the App Engine

Post by Jackolantern »

Definitely sounds interesting :) I am not sure what I would need a columnar database for, but always interested in new platforms :)
The indelible lord of tl;dr
User avatar
Jackolantern
Posts: 10891
Joined: Wed Jul 01, 2009 11:00 pm

Re: Thinking of leaving the App Engine

Post by Jackolantern »

Oroton wrote:I'm just putting it out there. I have no idea what you are talking about lmao ;)
Cayle sometimes has the tendency to leave us mere Earthlings in the dust. I can usually follow about 80 - 90% of it ;)
The indelible lord of tl;dr
Post Reply

Return to “Resources”