So the *first* major change affecting the Linux client is here, and it concerns how we handle a games dependencies. The old method had each library included with the content, which as you can imagine is problematic when a library is missing. It also causes conflicts when the same library is already on the system.
The new method allows easy selection of libraries from the administration panel and the client handles these in a much smarter manner. It first scans your system to make sure that you don't already have the library and if its missing it downloads and sets the library up for the game.
This new method also allows better handling of dependences like Java, Mono and Air which comes with a improved prompt that offers help if they are missing.
Another feature that was requested was the ability to set a different binary to launch games via and this has now been added to settings along with an option to add global launch arguments.
The issue with forms not being tall enough to press the buttons should be fixed along with Desura not saving relative paths so you are free to move Desura around where ever you please.
Due to the massive changes in the way games work some games might not work correctly as we are still in the process of testing them all and as always please report bugs on the forums. This change will also mean you are prompted to restart the client after the next auto-update.
Once we are happy with this change, we shall be exiting beta and focusing on content! So more games are on their way
That's fantastic to hear! Congratulations to all of you and good luck with the launch :)
I should add, Cheese wrote an AWESOME article about Desura on linux. Very comprehensive a must read for gamers and developers alike: Twolofbees.com
That's so awesome! Keep it up (-:
Awesome work! Good to hear we can expect new titles :)
How great is sounds in my heard :) You've done a great work! Thanks!!
Great update! thnx for your work
Nice additions. How with game engine libraries? Are they also going to be handled like this or always included with the distribution?
After the update, non of my games are listed as ready in the client even though they are still in the desura folder on my HDD.
Ubuntu 11.04 64Bit
settings are reset.
I can't find the GUI part where I can add already-installed games anymore.
In fact, menu entries for "Tools > Activate Game CD key or Gift" and "Tools > Add Games Installed" bring the same GUI up.
Did that functionality get removed? Any CLI way of doing this?
Awesome! My congratulations for your work.
Good to hear you guys are plugging away at this. Looking forward to see what new content gets added.
Nice!
Thanks, the improved library management is great news. Sounds like the first Truly Linux game distribution network -- instead of a Windows application that was retrofitted to "mostly work" on Linux.
I do wonder whether this may clash with distribution-customized libraries though. They don't customize them much, but preconfigured path (e.g. configuration files, socket paths, etc) may differ between distributions.
Awesome, I needed the library changes pretty badly. The only thing left between you and perfection is now the addition of custom launchers for non-Desura games.
Thanks a ton for your work and dedication :)
I think the team is really working hard to make the linux port as good as possible, rarely linux receives this massive amounts of love. Good work desura team!
Just installed the update! You're all doing an amazing job with keeping the updates coming! Glad to be here!
Many thanks for all your work!
Let's test games and see what comes out ;)
Nice... I'm amazed my request was added so fast.
Good job, thank you.
How would we use the launch games via this launcher option? I want to run the command "optirun" on all games.
just goto settings and type the full path to it in the first box (do "which optirun" in console to find the full path)
hi guys after update to this final release all my games are gone from the list of ready games. do i need to reintsall them???i saw all of them exist in the common folder
how i can fix that ??
Nice work. Thanks!
Fantastic work, am really impressed with the linux client :) Works great here on Arch.
Was mentioned in the post that settings/cache would be reset. Just double click the game and it will reinstall it (make sure you select validate local files)
the thing when i double click it the desura will hang and i will wait for hours then it crash when i cancel the gathering information window
Double-clicking on the game re-downloads it all.
After gathering information it proceeds verifying files and then just goes on downloading.
side note: after clicking on the "Cancel" button on next try console pops up reporting "Failed to save item to db: database is locked". Install/download process doesn't change though.
moving games from common/games/ in to common/ fixed my situation
now double-clicking on a game I already had installed finds old files and asks me what to to: choosing to verify old files and install missing ones does what I would expect and in a few moments the game is back in "Ready" status
Problem is that for me it seems when i close it - it resets again, i installed Osmos a night ago after deleting all my /common after this update, now on boot up it doesnt find it again...needs a little tweaking i thinks.
If you deleted everything in common then you will need to reinstall it, unless you mean Osmos is no longer listed in your account. The client after it logs in and you go to games should download a list of your games from the server.
Actually if you check the linux bugs forum it's a big issue, games keep saying they are not ready even when they are, Osmos being one of them.
I finally got Desura installed on Linux... I must say, I have been waiting for someting like this on Linux for a long time. Thanks for the hard work guys!
The global game launch binary can be thought of, for example of using "nice" to give all games top priority so they run well and interrupts are minimised. Someone mentioned optirun and that is another example of the global game launch binary.
I hope that helps explain that feature.
Can we use multiple ones? So to use nice and optirun?
This is a mistake. It sounds good in theory, but in practice, every game has different library requirements, depending on specific versions or features, or even complex interdependencies between libraries that only manifest themselves in very specific cases. This is why the most compatible Linux games always ship their own libraries, and don't depend on distro versions (except for stuff like glibc and OpenGL)
With the old (correct) system, developers could use libraries that are tested and verified to work with their game, or even optimized for that particular game's needs. Missing libraries could happen, but that'd just be a bug, and easy to fix. Just add the library and you're done. Setting RPATH or LD_LIBRARY_PATH properly will ensure that the correct libraries are used.
With the new system, the libraries may change and break games at any time. If Desura replaces a library to fix a problem with one game, this may easily break another game. Users will have games randomly break for no apparent reason. Even if this DOESN'T happen for an update, there's no way to know unless you retest all games that depend on some library every time it's updated (or its dependencies are updated, etc). That's a lot of extra work.
Please rethink this.
You are in theory correct, however it is not the issue you think it might be. Developers can still include any libraries they want with their games. There are however about 15-20 libraries that games use and are the exact same version that aren't installed by default on some distributions. Perfect example of this is SDL. It is very standard there is the current version of API that everyone uses so adding that to a common set of libraries only makes sense. The same with OpenAL. For certain libraries it only makes sense to offer a set of common ones to developers. Take a look at the screen shot and see which libraries are being offered. You should also note that very specific versions are being offer with specific interface versions. They are also libraries that developers are not including because they assume they are installed on the user's system when in fact they are not always installed for all users.
You guys are definitely on the right track. Thanks for taking the Linux port seriously. Desura is exactly what Linux needed to help solve the "chicken and egg" problem with games on Linux. I've made a few purchases already, and look forward to many more.
I should also note that client has some smarts about libraries. If you have that library already installed on your system then it will not download a version to use. Instead it will symlink to the version you have installed and add the lib directory to the lib path to make sure that the libraries are picked up properly.
This is actually even worse. Distros like to apply their own patches to everything, and that's broken stuff before. At least with Desura's versions, you have some degree of control.
You say it's not as bad as I think it is, but that's not my experience -- I've personally run into exactly this kind of problem even with big libraries like SDL (overly restrictive surface restrictions in one version, audio issues), SDL_mixer (missing format support), SDL_ttf (incompatibilites with certain versions of Freetype for some specific font/setting combinations), Freetype itself (different rendering of fonts in Windows and Linux versions depending on settings), random crashes for who knows what reason, and that's just some of it. All bugs reported that were magically fixed when the reporter admitted to having overridden or removed the included libraries for some reason, and asked to try putting them back first. I mean, this sort of thing doesn't happen *often*, but when it does it's unpredictable and it's great not to have to worry about it! The only thing you have to worry about when you include everything is if eg a new audio API is introduced and you have to update SDL to support it (like happened with pulseaudio), but that's even more rare and at least you get to know about it in advance.
Anyway, it's good that you still allow games to provide their own versions of libraries, at least.
Well if some obscure distros think they need to apply patches to their libs,
in order to break anything they'd have to make major changes like that of the ABI, right?
So they would really go out of their way to patch every single program that relies on
that lib to not break? Seems kind of unrealistic to me.
(btw I've always symlinked my game libs on Fedora if possible, nothing ever went wrong)
No, ABI breakage isn't much of a problem. It doesn't happen a lot, and when it does, it's usually deliberate with new major version numbers and such. It also usually prevents stuff from loading at all because of unresolved symbols, making the problem immediately obvious (unless the breakage is limited to structs or function signatures or something, but that's fortunately very rare).
Most issues are much more subtle than that. The SDL bug I mentioned before is a very simple example: For technical reasons, surfaces in SDL 1.2 are limited to 16383 pixels in width and between 32767-65535 pixels in height (depending on needs). Prior to SDL 1.2.8, SDL didn't check that the surface sizes were within this range, with buggy behavior as a result. That was fixed in SDL 1.2.8 by adding a check at surface creation; if the width or height was not less than 16384, surface creation failed. The problem there of course was that the surface HEIGHT could be larger than 16383 and still be perfectly valid, and some games happened to depend on this. It was just a simple bugfix, hardly even worth mentioning, but it actually broke compatibility with those games! This was fixed in SDL 1.2.9, but by the time that came out, SDL 1.2.8 had been out for a long time, and had been included in a bunch of distros that wouldn't get the fixed version for months
As for distro patches, distros like to backport individual patches like that buggy 1.2.8 check to previous versions sometimes (before they know it's buggy, of course). I don't know if it happened in that particular case though.
This is great move by you guys to allow develoeprs to pick which libraries are required. One of the major hurdles in supporting a linux release is making sure that proper audio libraries are installed and setup! Removed a huge problem from developer side by doing this and we thank you! :)
I just started testing Desura on an old machine running Mageia 1 32bit. I have tried to install one or two games and I get this error come up:
There was an error during the validation process and it has been stopped.
Couldn't open the file [ ] in mode 2 [9.0]
Anyone know what the problem might be? Bug in the client or something else?
Is the client installed in to your home directory some where? If it is not then that is your problem. You need to install it somewhere that you have write access.
The client is installed in the home folder. I noticed however that when I needed to install the client I had to have root access. Would not seem to work otherwise. I would say that could be the problem. Would I have to run Desura as root in order to install the games on that system (prefer not to run it as root however)?
Should never need root to run Desura. Sounds like you are trying to run it from a folder with out write permissions for a normal user
I'll check the write permissions for the folder later this week and see if that is the culprit (good chance it is).
It was not the permissions in the end, but I downloaded and installed the latest version of the Desura client and all is working fine now. Thanks for all the work you guys are putting in.