Recognizing $XDG_GAMES_DIR

Jerome Leclanche adys.wh at gmail.com
Fri Dec 20 00:43:15 PST 2013


On Fri, Dec 20, 2013 at 8:03 AM, Robert Qualls <robert at robertqualls.com> wrote:
>> It's a bit analogous to windows'  "My Games" / "Saved Games" folder.
>> Wine in fact needs it (currently its always using "<My Documents aka
>> $HOME>/my games"), though it can do without. Steam is in the same
>> situation (Steam on Windows saves to My Games and Steam's online
>> service).
>
> I guess fighting what wine has chosen is probably pointless, but I'm
> not super crazy about all these directories at the top level of home.
> What's worse than "my games" is that some developers just put their
> individual folders at the top level, even for wine. For example Mass
> Effect 2 just creates ~/Bioware. Naturally, none of these get removed
> when the games are uninstalled, so if you want a clean home, you end
> up playing musical game save folders to hang on to the saves.

The polluting of $HOME by Wine apps is a side effect of "My Documents"
being $HOME by default. It can be changed in winecfg (Desktop
Integration tab).

>
>> So there's also the option of defaulting it in
>> ~/.local/share/gamesaves or ~/.local/games or something and not have
>> it localized by xdg-user-dirs, which is more unixy/linuxy and in which
>> case it wouldn't be managed by xdg-user-dirs at all. This comes down
>> to "Does game save data need to be user-facing?".
>
> Although something like ~/.local/share/gamesaves is more descriptive,
> these directories also have configuration files in them. Some even
> seem to have content packs. On the one hand, I don't think the user
> needs to "see" game saves, since these take up little space and can be
> managed by the games themselves. But the user might want to tinker
> with configuration manually, in which case putting that stuff in a
> non-obvious place / under a non-obvious name might be bad. I guess I
> like ~/.local/share/games because it's consistent. Right now my
> ~/.local/share is cluttered with native game config folders, so they
> could go in there.

Config and save data is very different of course. I'm not suggesting
putting *all* the program data from a game in XDG_GAMES_DIR. Programs
still should adhere to the current xdg standards; only game data
should go in that folder.
Graphics settings and resolution is config and goes in ~/.config.
Saves, scores, etc and what have you is game data and would currently
go in ~/.local/share, and is what I'm suggesting moving to
$XDG_GAMES_DIR.
>From a games dev point of view, what the application needs is:
 - A place for the game's binaries (this is handled by the package manager)
 - A place for the game's data files (this is either handled by the
package manager of the game itself. At the user level it usually goes
in ~/.local/share)
 - Game configuration (~/.config)
 - Logs (usually end up in ~/.local/share), caches (~/.cache)
 - Addons/customizations (~/.local/share)

And for the game-specific data:
 - World data
 - Saves, scores, progression, achievements, ...
 - Screenshots (arguable)

>
> Then again, if developers refuse to use anything other than "my
> games," putting a "proper" folder somewhere else would just cause more
> confusion. And then there's having both a wine and native version
> installed simultaneously, overwriting each other's stuff through some
> subtle inconsistency...

As far as Wine goes, it's developers using the Windows "games" API. If
Wine decided to integrate with the aforementioned xdg variable, those
issues would go away immediately.
To be clear: Wine apps (almost) never touch anything in $HOME, as it's
only accessible as the Z: drive (unless sandboxed). All of the files
go in $WINEPREFIX, which happens to have a few symlinks to $HOME by
default (such as My Documents).

>
> Robert Qualls.
>
> On Thu, Dec 19, 2013 at 10:44 PM, Jerome Leclanche <adys.wh at gmail.com> wrote:
>> Thoughts on recognizing and managing $XDG_GAMES_DIR, and possibly
>> translating it in xdg-user-dirs?
>> (http://www.freedesktop.org/wiki/Software/xdg-user-dirs/)
>>
>> It's a bit analogous to windows'  "My Games" / "Saved Games" folder.
>> Wine in fact needs it (currently its always using "<My Documents aka
>> $HOME>/my games"), though it can do without. Steam is in the same
>> situation (Steam on Windows saves to My Games and Steam's online
>> service).
>>
>> On Windows, the folder contains saves, scores, player data etc for
>> specifically games applications.
>> This has been on the back of my mind for a little while now. There's
>> the obvious answer of using ~/.local/share for game saves (in fact
>> thats pretty much what that is for), but there's also obvious
>> advantages to having saved games in their own folders.
>>
>> So there's also the option of defaulting it in
>> ~/.local/share/gamesaves or ~/.local/games or something and not have
>> it localized by xdg-user-dirs, which is more unixy/linuxy and in which
>> case it wouldn't be managed by xdg-user-dirs at all. This comes down
>> to "Does game save data need to be user-facing?".
>>
>> Thoughts?
>>
>> J. Leclanche
>> _______________________________________________
>> xdg mailing list
>> xdg at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/xdg
> _______________________________________________
> xdg mailing list
> xdg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xdg


More information about the xdg mailing list