Monday, May 18, 2009

Download Accesslogs from Appengine

We're using the incredibly cool Google Appengine for the dynamic server backend of TowerMadness. Since it's a rather new technology with many interesting twists and quirks, I decided to write down what I've found.

One interesting bit is downloading the access logs. Initially, I did not even realize that it's possible to download them using the appengine, but I stumbled upon it when (re-)reading the appengine docs (for the n-th time :-) ). It's actually quite convenient, but there was one issue that was giving me a headache:

We've three separate appengine deployments: The production environment, the development staging environment and the beta-testing environment. All three are deployed from the same code by simply updating the app.yaml file. It's normally set to development, only sometimes to beta and almost never to production. Now here is the catch:

When downloading the logs using appcfg.py, you have to specify the path of your app. All it does is reading the app name from app.yaml and then download the corresponding log files. However, in our case we can't really use the source directory, because it points to the development stuff 99% of the time. And accesslogs from the development server are usually quite boring.

To fix this, you can create fake app directories, only containing the app.yaml file, adjusted to the different deployment names. So we have 3 directories "fake_beta", "fake_dev", "fake_prod", each just containing the app.yaml with a different "application: ..." line. Now all we need to do is create a small shellscript that calls
appcfg.py -e $email --passin -n 0 -a request_logs fake_$name tm_$name.log < $password
for each of the deployments, where $name is its name, $email and $password are the corresponding gmail account. This can then be stuffed into a cronjob and it will download all accesslog entries ever produced, and then regularly append new ones, not re-downloading all.

Now you can stick the result into your favourite log analyzer -- or just use python and write your own :-P

-- Volker


Friday, May 15, 2009

Toucharcade

We've been featured on Toucharcade!


*drool*

First public gameplay movies of TowerMadness

We've just released two gameplay movies teasing the easy and medium difficulty of TowerMadness:


Expect more stuff soon.

-- Volker

Thursday, May 14, 2009

TowerMadness gone gold!


Welcome to my new blog!

I've got the exciting fortune to open the blog with great news:

Our first iP* game, TowerMadness, gone gold yesterday!

Here is one of my favorite pictures:

It's a great feeling to release your baby into the wild after 6 month of development. We've written about 50,000 lines of code, 2000 commits to the code server, 600 tickets in our trac.

After all, due to a great many of optimizations, we produced a pretty small binary package, only about 4.5MiB. Looking at current state of the art iP* games at similar quality, that's about half the amount of space.

On this blog I'll write more about the development process and the cool features we added, such as replays, superfast rendering engine and the meticulously polished gameplay, so stay tuned! And go grab a copy of TowerMadness :-P

-- Volker