Deployment, community

Atmosphir Logo

It's finaly here

So, it finally happened: Yesterday the first batch of Atmosphir closed beta invites went down the tubes to some lucky people who get to play the game before anyone else. If you received your invite then congratulations, and if you didn’t, don’t panic! There’s enough game for everyone, I’m sure it’s just a matter of time :)

Just like any other developer, I’m very happy to see this project finally getting to the players. It’s just the begginning, but knowing that there’s a bunch of people having fun with something you worked on feels just great. On a sidenote, Mazes of Fate DS is also waiting for you in the shelves, so if you want to make me feel even happier you can also give that a try.

But, as always, I digress. Today’s topic is about a few bumps I ran into while putting together the GNU/Linux binaries/installer of this game, an EPIC FAIL and how the community came to my rescue.

Hit the jump for the details.

The challenge

As much as I like GNU/Linux, deploying closed-source apps to a random GNU/Linux (Screw this, just Linux from now on) has always been tricky for a a few reasons:

1) An insanely heterogenous ecosystem. Even though each distro is more or less the same than any other, each one is almost a universe in itself at the same time. There’s no way to be sure what libraries the target system will have or what version of that linbraries you app will be running on. Since Atmosphir relies in a few third-party libs, I had to do my best to make sure the users would be able to just download, install and run. Sure, one can try to link everything statically, but in this case it was impossible for the following reason.

2) Licensing. Some of the third-party libs Atmosphir depends on are licensed under the terms of the GNU Lesser General Public License. I don’t want to get into details regarding this, telling you that I couldn’t just bundle everything into the binary. It was possible, however to distribute those libs as external objects (Which I finally did).

3) If something fails, the only way to know what’s going on is to drop to the freaking command line and watch the output provided by the game starts up. That is, unless you write platform-specific code to handle that and pop up some kind of message box. In the Linux case, this was impossible without adding yet another dependency (GTK or QT, both massive).

The epic fail

So, I managed to get things working. It isn’t magic, I just bundled the required libraries into the installer package including their respective licenses. Unfortunately, due to a stupid mistake I made, the game erroneously asked for libpq (the PostgreSQL library) rendering the game non-functional because of a library it didn’t even need. Fortunately, I was saved by…

The community

Yes, I bet that if you ever heard about Linux, you’ve heard about the so-called community. It’s a bunch of people that write code, write documentation or simple help users in need. I know it sounds cheesy, but they’ve saved my many, many times whenever I ran into some kind of issue with free (as in free speech, not free beer) software.

Regarding Atmosphir for Linux, two users helped us. The first one went so far to ever run the game through a debugger (yes, your eyes are working well) to provide us more information about the incident. We’re already looking into it, by the way.

The second one ran into some problems with dependencies (he found out about my libpq screw up), solved them and then decided to write a tutorial on how to get the game running (he also solved another dependency problem which didn’t arise during my tests). Kudos to you Jalada, and many thanks :)

Having all this info at hand will allow us to address the issues faster and better.

Conclusion

Even though it ended up being a little more difficult than I expected, I think that releasing the Linux version was the right idea. Not only it adds a few more players to the Atmosphir playerbase, but this is our little grain of sand towards gaming on alternative platforms.

And this also shows how important and useful are communities. It’s not about deploying a box and countng money anymore, we have to encourage participation and, between some boundaries, drive our efforts towards the direction our players point.

After all, it’s always been about the players, hasn’t it?

One Response to “Deployment, community”

  1. Jalada 4 October 2008 at 5:29 am #

    Glad to have helped! Really enjoying Atmosphir on my Linux box :)


Leave a Reply