A blow by blow update regarding development of Desura for Linux.
Posted by Platima on Jul 27th, 2011
It's been quite a while since I wrote the last blog, but in my defense we've been very busy and have made a lot of progress (Watch this spot!). I decided that since this entry will be quite long, I'd split it into two different sections; news and information for gamers/Desura users, and interesting datums for developers. You might also be interested to know that at the moment it's 8:30pm (+0800 hours GMT), and I'm on a plane to Melbourne to spend the next few weeks in the office with the others to get the Linux port finished and out to you users! At the moment I'm about halfway across the Great Australian Bight, at about 12.5km (7.76mi) altitude, travelling at just under 1100kph (683.5mph) with an outside temperature of about -50 C (-58 F). I was also quite impressed with the food and drink Qantas provide their passengers, except the portions are tiny. My mates rat eats more than this!
Before I get into the actual thick of the blog, I'd like to thank everyone who commented on the previous blogs (here and here). We received lots of new information and constructive feedback, which we really appreciate! Sometimes though, it can be hard to keep up with the comments, so if you have game suggestions, ideas, or relevant information, please PM me. Sometimes it may take me a little while to reply, but every bit helps and we are adding everything to our information bank (trac server).
Ok enough of the ramblings for now, lets start with the news for gamers and Desura users.
Firstly, there's been a lot of discussion in forums and blog comments about how we're going to be handling the Desura Linux distribution, installation, and game installations. At initial release, Desura will simply be a small binary file to download from Desura, which may be compressed, or in some sort of signed package (yet to be decided). You place this binary anywhere on your system that you have write permissions, and when you run it, it will build the Desura folder around itself and download any remaining components. This is the decision we came to that abides by the Linux FSH, doesn't require any admin privileges, doesn't cause SELinux problems, and allows different users to have separate installations if they wish. Disk space is cheap, why note make the most of it?
Now, after download if you have a particularly old system (I'd estimate older than 3 years), or a system with minimal shared libraries, you may also need to install a few extras. The program will do its best to assist you with this, and we're doing everything we can to make it as widely compatible as possible! After the initial website release, we will also be doing what we can to get Desura hosted in any App Stores you can throw at us, such as the Ubuntu Software Center. For now we're also compiling the entire program and it's dependencies as 32bit, but if this proves to be problematic we will do a 64bit release too. As it stands, we can't foresee of any issues but feel free to PM me if you do!
The other major question was how we're going to handle game installations. There was a lot of debate about this as far as patches, user configs, etc, so we just decided that games would be installed into a 'games' folder under the Desura folder. This simplifies everything.
Oh, we're passing by Adelaide and I can see the city lights out the left window. You may not care, but I really do love plane trips! Less than an hour until arrival, so I should probably hurry up with this blog.
A particularly big discussion topic was theming. Personally I'd love for Desura to support the widget set/window manager theme, but we are also on a tight deadline. For the time being, we decided that we're sticking with native borders and title bars as you've seen, but the custom Desura theming for the application interface. I added a trac ticket though to add support for system themes down the track. I don't see it being too hard to achieve, and before then one of you users may even manage to write a hacked up Desura theme that tricks it into using the system theme. -nudge nudge-
I was also wanting to thank Liam Dawe from Gaming on Linux who I did a 3 part interview with recently (see here for the links). The questions were fantastic, and he was very patient with my delayed replies. It also put a lot of information out there for users and other interested people.
Next onto the more Desura development related stuff. We've done a lot in the Desura Linux port over the last few weeks, so heres a quick breakdown. Bugs:
- Game icons now load
- No longer crashes in Offline Mode
- Program now exits cleanly
- Chromium Embedded Framework is now actually embedded and functioning
- Buttons and tabs load correctly
- Changelog dialog shows correct title
- and more
- Games download
- Games install
- Settings page no longer shows Windows & Steam settings
- Builds successfully in 32bit mode
- The backend (mostly) supports Linux games (props to Scott)
- Desura updates itself
- Crash reporting works
- CEF context menus work
- and more
I also have made a lot of changes to our build and testing process, including our build script which now supports all sorts of nifty developer features like multithreaded building, compiling with LLVM/Clang, Release and Debug mode (this was mostly Mark), building only specific projects, etc. And for those of you interested, we are using GYP and our custom script as opposed to cmake, scons, bakefile or any others.
And now the last geeky/developer point: I decided to write the bootloader (more 'bootstrapper', but this is the name we've been using) all using Xlib. This was remarkably painful, but it means that any graphical Linux system should be able to download and run the initial Desura binary, which will then hopefully do the rest of the checks and download the remaining components.
I'm out for now. Take care everyone, and hopefully I'll get a chance to do another blog entry soon! At the end of this post will be some recent screenshots to keep you all excited!
Linux Engineer / NPC
Quote of the week, this time from a close friend and fellow Linux user and developer aihtdikh. Some of you may get this, some may not, either way it had me laughing with tears in my eyes and has stuck with me since, so I decided to share it with everyone:
[on Gtalk] "OMG PWNIES!"
PS: While moving house, I found my blow up Tux. Yes, I'm that much of a Linux geek! Haha.