It’s pretty safe to assume most gamers have played Frozenbyte’s fantasy side-scroller, Trine and Trine 2 on Xbox Live, PC, or Mac. But, now, open-source gamers can get it on the physics-based platforming experience too. Frozenbyte released Trine 2 for Linux in early April of this year, online co-op included! With the recent release of the Linux version, I was curious as to how the whole porting experience went for the staff at Frozenbyte. Jukka Kokkonen (Lead Linux Coder) and Mikael Haveri (PR) were kind enough to answer some questions for the FCM community.
How does your mindset differ when working with Linux as opposed to other platforms? Jukka Kokkonen, Lead Linux Coder (JK)
There probably isn’t that much of a difference when working for Linux as opposed to other platforms. But there perhaps is some level of thought present that Linux probably isn’t the usual gaming platform, and, as such, we’re more likely to encounter various issues along the way. Despite how well we get it working on the development computers, there are probably going to be much more of those random cases, where the game refuses to work properly for some player – so more support requirement for the Linux version was to be expected. However, we are also hopeful that the Linux community is probably quite adept in solving these kind of issues, and thus we expected this to balance out the issues to some extent.
We would really have hoped to get it working “out-of-the-box” as much as possible for every Linux user – but a bit sceptical that it would be a feasible target. At least my personal experiences with Linux are that it still requires a little bit of do-it-yourself attitude – much less than it used to be 10 years ago, though.
A good example of these unforeseen issues is that the disk and network performance of my Linux work computer kept randomly going totally down to the muds. Kernel logs helped pinpoint the issue a bit, but I never figured out the exact reason, it was either a hardware issue or a Linux kernel issue. And after some Googling, I found a kernel workaround for it. Unfortunately, it would have required compiling a custom kernel. Now, I’ve done that before, nothing new there, but this time I felt a bit lazy and decided that just rebooting the computer every time it glitched was the easier way around. This just goes to show, that even today, one can expect to encounter some unexpected issues on Linux, but also, the solutions to the issues can often be found, as someone has already come across it and figured it out.
When and how was the decision made to work on the Linux version? Mikael Haveri, PR (MH)
We teamed up with the Humble Bundle guys for the first-ever company specific bundle, which was very well received. This also strengthened our belief in the Linux community, and made us realize that there is a definite market that we should cater to. Since we had to have Linux versions for the bundle, at first it was our priority just to create them for the campaign. Now, after that experience, I’m pretty sure the Linux versions of all the future games will follow more closely after the releases on other platforms.
How was the overall process porting the game? (JK)
On specific parts, it was quite easy. On some parts, there were little surprises, like not having the audio middleware available on Linux. The fact that we already had the code in a basically compile-ready condition for the gcc toolchain made things easier. So we didn’t have to start fixing some compile issue trivialities. Also, because we had the Mac OS X port done, which also used things like SDL and OpenGL, the transition from that implementation to the Linux implementation was quite easy. For example, the base OpenGL renderer port on Linux was up and running in about a day or two when we used the Mac OpenGL renderer as a base. Of course there were some bugs to iron out, and tweaking to be done, etc, so it took much more than those few days to get the whole thing ready for release.
Was there anything that really surprised you guys while working with this port? (JK)
There were no major surprises, I think. A little bit of a surprise was how little time porting of some things took (such as the OpenGL renderer or some other parts of the code), mainly since those could be easily converted from the existing Mac port. But then again, there were some surprises that had the opposite effect on the time for porting, like the audio middleware not being available on Linux. If we would have had to do some code modules for the port from the scratch, like the OpenGL renderer, things might have been different.
Then there was, of course, all the random issues caused by different Linux distributions having a little bit of different libraries, window managers, etc. But, these didn’t really surprise us. Though we perhaps couldn’t anticipate what all of those little issues would be, we did know that there would be such. So far, the initial reports from users already show that there certainly are all kinds of small issues, mostly focused on the issues caused by the differences between the desktop window managers – but luckily, we’ve had no major issues so far. There’s been nothing that we couldn’t fix – or at least somehow have a workaround past the issues, with the helpful hints from the other Linux users who have already figured out how to apply some workaround.
What were your personal experiences with Linux prior to Trine 2’s port? (JK)
Personally, my experiences with Linux before the Trine 2 port were that I do have a Linux server running at my home, but I’m not really using it as my primary desktop computer. I’ve also worked for a couple of years on web portal technology back in the day, and that was basically all Linux development. I’ve also done some minimal freeware games, some of which I also ported to Linux – but this was more than 10 years ago. For the rest of the programmers who were involved in the Linux port, most of them I think have had at least some level of contact with Linux or other Unix systems during their university studies.
Are you guys planning on releasing your future games on Linux as well? (JK + MH)
From a technical point of view, I see no problem here. As we already have the engine ported on Linux, and assuming we’ll continue to use our own engine for the next games, most of the porting work has already been done regarding Linux. (So I guess it mostly comes to the the expected sales and economics on the platform really.)
It is great fun to port to Linux from the perspective that it is such a proactive community – making our efforts easier and more fun. But, from an economic perspective, it all depends on the amount of Linux copies we sell and how the market grows. Although everything is looking good so far, it is yet to be seen how far the Linux game market will grow.
You can get Trine 2 for Linux at http://www.trine2.com. The standard edition, which includes a Steam key, is available for $14.99. For $10 more you can get the collector’s edition, with some nice bonus items such as a digital artbook and original soundtrack. A huge thanks to Jukka and Mikael for their time!