So, the other day something rather extraordinary happened for me. I received a message from Elektroshokker, the developer maintaining the Linux port of the Adventure Game Studio runtime. As some of you know, AGS is my tool of choice when it comes to working on retro-styled adventure games, but the editor is largely Windows-only. (It works wonderfully in Wine, however).
Progress has been made with both a Mac and a Linux port of the game runtime, which means anyone can technically take an AGS game and, following the instructions, port it to run in Mac or Linux very easily thanks to the Allegro library dependencies. There is, however, one very crucial problem with the Linux version, however: it was impossible to put into a distribution package and have it work!
The problem itself derives from the way AGS games save and load files. For the longest time, the default behaviour was that the AGS executable would save or load files directly in the folder of the executable itself. Every time the game is launched, it creates a “temporary” save file to start the game at the very beginning.
Now, this is all fine and dandy if you’re running it in an isolated folder that you have access to, but it will not save and load files if it’s in a directory with root permissions under, say,
/usr/share/games/$gamename, because it doesn’t have access to save or load files there without creating a huge security hole in the permissions system. The game will not even start, which also means that it will be impractical to package in, say, a .deb package file. Why package a game that cannot run under standard directories, and why package a game that can run, but each user has to install it on a multi-user operating system?
The solution I proposed was a relatively simple one, and I’m overly happy that it was implemented: now, AGS executables will use the standard place most Linux applications save and load configuration files and other data: under the home directory.
So, with the game binary installed under
/usr/share/games/$gamename, the game itself will save files to
/home/Username/ ./$gamename, meaning everyone wins.
This is particularly important because in a few months, Canonical (the backers of the Ubuntu project) will be opening up the Ubuntu Software Center to third party developers. With the hundreds upon hundreds of great independent titles out in the AGS community, I think this could definitely give a great boost to game development on Linux, and it’ll give users some great titles. Furthermore, the USC is implementing a model in which developers can be paid for their applications, meaning that all of the people doing commercial AGS games can make a quick buck off of Linux users, too.