[1.2.0] [Linux only] Game files installed in bad location on Linux

Started by harrisclinton, April 04, 2015, 07:17:04 PM

harrisclinton

Please pardon if this has already been pointed out, but it counts as a bug and not a design choice.

And, awesome game by the way! :)

The bug:

Important game data is installed into ~/Documents/AtomicTorchStudio/ on Linux (Ubuntu 14.10 in my case) when installing the game. This behavior is a Windows rule, and violates Linux file system conventions, as only the user may put anything into the ~/Documents directory on Linux. User specific configuration files and other related files created by installed apps must be put into a configuration directory in the user's home directory, and the folder name must begin with a period. For instance:

~/.atomictorchstudios/VoidExpanse/

or

~/.config/AtomicTorchStudios/VoidExpanse/

This may seem like a minor quibble, but it is not. It would be as if the game installed important files directly in the C drive on windows, as in C:/AtomicTorchStudios/ which would, of course, violate Windows file system conventions.

Linux users expect to be in full control of all content in any visible sub directory under ~/, including ~/Documents, ~/Downloads, ~/Pictures, and the like, and the presence of files important to an application's operation, that were not put there by the user, risks their accidental deletion.

Edit: I should also add that there is not even any guarantee that a ~/Documents folder exists on some otherwise perfectly compatible Linux installations (including Ubuntu 13.x and 14.x under certain conditions). Users who hand select the components in their desktop environment and do not install a default collection of packages can sometimes start with mostly empty user folders lacking ~/Documents, ~/Downloads etc.

ai_enabled

Hello!
Thanks for detailed explanation. Recently we've also already received the same suggestion to relocate all data files to the proper folders on Linux.

Our primary idea behind this choice was ability of the user to easily access his game data - savegames, screenshots, mods and settings - in a one place which is accessible with the default file manager from GUI. We done it for Windows, Mac and Linux in the same way.
I agree with you that we should place configs and other data to the ~/.config/AtomicTorchStudios/VoidExpanse/ folder. But do you really think that we need to put savegames, screenshots and mods (and ModsConfig.xml!) to the ~/.config/AtomicTorchStudios/VoidExpanse/ folder? Or we can ask the user if he allow us to placing them into the ~/Documents folder?

I understand that the game should respect Unix standards, but we also want to deliver a user-friendly game.

Regards!

harrisclinton

Hi,

Thanks for the reply!

My thinking on this is that, as a general rule, the vast majority of Linux users who are proficient enough with their operating system to even install and run Steam games (it is not always easy to get things running) are probably aware that application configuration data goes in the various "hidden" folders under ~/.       Steam itself, and all game executables, go under ~/.steam for instance, as you know.

It is true that the (still somewhat controversial) Ubuntu "Unity" interface does go out of its way to hide much from users, as does, for instance, Gnome Shell, where the default file manager does not have an immediately accessible option to visually show hidden folders (anything starting with "."), so as hard as the Linux community tries, it is still difficult to be a Linux user without a certain familiarity with the command line ("ls -a"). And while Ubuntu derivations comprise the greatest percentage of Linux users, not all of them use the default Unity, with distros like Mint rising quickly (uses a very standard OS paradigm with an easy setting to show hidden files in the file manager), and many users opting to use other versions of Ubuntu such as Kubuntu or Lubuntu, all of which are Steam compatible.

Further, I would suggest that anyone who needs physical access to the actual config files, save data, or the mods folder is, by definition, someone who already has knowledge in advance of the average or, out of a desire to tweak the game, someone who is in the process of becoming so. So, for those users, it would not be necessary to add an extra layer of non-standard usability support. The only thing you might want to consider would be a note on the the wiki on where the cofigs/saves/mods folders are located on each operating system.

While those who just switched to Linux from Windows may in fact look for files in the Documents folder, anyone else who has been a Linux user for more than a few months would actually not think to look there.

I myself have used a variety of OSs over the years, and only recently made the full-time switch to Linux, though I've used it off and on for many years. As primarily a (now former) Windows user, even I did not think to look for the mods folder under ~/Documents, and it took me a while to find it.

Finally, other Steam distributed games on Linux appear to follow the standard Linux conventions, such as Crusader Kings II, just as one example of another highly moddable game.

Edit: Failed to answer your question on screenshot location. If I were developing a Linux game, then I'd ask the user where to save screenshots, probably with a config setting for that, whereas all other user specific game data such as saves and mods would go under a hidden folder as per the convention. Or, I bet you could even get away with throwing the screenshots (the actual jpg files or what have you) directly into ~/Pictures. I am pretty sure there are other Linux applications that use purpose-specific media folders that way, but not the more generalist Documents folder. The reasoning there is that  a screenshot is not necessary to the apps operation as config files and mods are.

Lurler

Thank you for such a detailed post.
You have a good point here. Hopefully we can address this with one of the future versions! Currently however we will focus on more on fixing bugs and adding critically important content updates. But we will surely get back to this once we have a little more time!

ai_enabled