desura / Desurium

Free online games platform (juegos gratis), with an open source client. LGPL repo for Desura client. Potentially out of date. See https://github.com/desura/desura-app for newest (LGPL) client.
https://www.desura.com/es
GNU General Public License v3.0
270 stars 42 forks source link

Use appdata/home folder to hold games and config #80

Closed Jookia closed 12 years ago

Jookia commented 12 years ago

That way Desurium would just be an executable, and avoid security issues. Oh, and piracy. I don't see this happening for a while, this is just a note.

TheSiege commented 12 years ago

I want to second that notion and add a few arguments: Desurium is installed without an auto-updater therefore having only one executable helps to bring it to major distributions through the package-manager, this would also help with install-deps messiness. It would help port the application to Mac as they have a much stricter seperation.

ssokolow commented 12 years ago

@Jookia What does any of this have to do with piracy?

Jookia commented 12 years ago

Well, assuming you're in a multiuser system, other users won't have access to your games assuming your have your home folder locked down.

ssokolow commented 12 years ago

So it's not really piracy it's preventing. It's just preventing naughty siblings from swiping your CD-key because they got theirs banned.

Aside from that use case, I'm not sure I've every known someone who was anything but annoyed by how hard Steam makes it to share games with your siblings.

karolherbst commented 12 years ago

but steam games need a shared lib from steam to run (which will check your account). On Desura there is not something like that.

But I think it's important for security that not every user is allowed to write system wide binaries (change binaries to annoy the big brother would be funny, but putting maleware there instead, would not).

Jookia commented 12 years ago

Ironically I've been pretty pissed at Steam for not letting my rip my Doom files for emulation.

ssokolow commented 12 years ago

@karolherbst Ahh. I hadn't thought of that because my Desura is in ~/opt/desura and the default Ubuntu umask and group settings render them readable by other users but not writable by them.

Protektor-Desura commented 12 years ago

Just as a side note. Eventually Desura is going to offer the option to validate installs on the game side to make sure the user actually bought the game. It will be like what Steam offers. It isn't going to happen for awhile but you might want to keep it in mind. Personally I will push for less DRM but for some developers without this option it is a deal killer.

ssokolow commented 12 years ago

As long as games with DRM are clearly marked and the DRM blobs are in the games rather than the client, I'm fine with that.

"Clearly marked" because, even now, I still buy most of my games from GOG.com or Humble Bundles because I worry about accidentally buying something off Desura which requires a CD key for more than creating an account on the online matchmaking service. (For example, with GOG.com, the worst that'll happen is that I won't buy a game because the message doesn't confirm that LAN play is exempt from the multiplayer key system.)

"DRM blobs in the games only" because I have a very strict policy about closed-source code on my system. Only games, Flash, Opera, and my nVidia binary drivers get exceptions.

(Games get an exception because I recognize that "disposable code" like games has yet to develop a viable business model based on open-source development. Opera is used only to test my creations. Flash was grandfathered in prior to Apple taking a stand against it. The "nouveau" reverse-engineered drivers don't yet do decent 3D and TwinView dual-head on my GPU.)

This policy is actually why I became a member so long after discovering Desura with the release of Humble Bundle 2. I dropped by your site, noticed the client was closed source, and put you out of my mind until the Desurium announcement.

Protektor-Desura commented 12 years ago

DRM is something that Desura really doesn't have a say about. We can only suggest to developers to use as little DRM as possible but it is up to them how much DRM they end up using.

ssokolow commented 12 years ago

I understand that. I'm just saying that I don't want to accidentally break my DRM boycott because Desura didn't warn me clearly enough about what I was buying.

Protektor-Desura commented 12 years ago

I will say right now the only things we have allowed on the system are no-DRM or CD-Key/Serial-Number DRM with one exception. The exception we didn't know about until after the game was launched and has since been addressed.

I don't have a problem with the binary running from the system dirs and installing everything under the user's home directory. My only issue is for the non-community version it needs to be able to update itself rather than rely on package managers/volunteers to update the client. The exception to this might be if Desura could run RPM and DEB repositories and some how get them added automatically or easily to the system list of repos so it would stay updated.

ssokolow commented 12 years ago

I know that, on Ubuntu, adding a repository to the system package manager is as simple as dropping a file into /etc/apt/sources.list.d and running a command to add your signing key to the keyring.

As for doing all that as part of installing the .deb you want to keep up to date, Google Chrome's .deb was doing that last I checked, so you could unpack it and look at its install scripts.

naryl commented 12 years ago

Protektor, you can add one more field which will list restrictions forced by game's developers. Only three options needed: free/open-source (no restrictions), proprietary (restricted modification), DRM (restricted copying).

And of course Desura should allow filtering games by this field. It will make it more comfortable to use but may put off some DRM-fans among developers.

Protektor-Desura commented 12 years ago

If it is free doesn't automatically make it open source so that category doesn't really work. I would think "No DRM" and "DRM Key" and "DRM Auth" would be the only things needed with "DRM Auth" not available from Desura right now. You could put any games that "phone home" so to speak under the "DRM Auth". Games that require an account on dev login server for multiplayer I would think "DRM Key" would be enough or you could use "DRM Auth". All of this also assumes that the higher ups at Desura would add a DRM field.

Now we are way off topic of the discussion of directories.

naryl commented 12 years ago

Protektor, The first category means "modification and copying allowed". It doesn't have anything to do with cost.

EDIT: Right, it's offtopic. Create another issue?

ssokolow commented 12 years ago

@naryl I think Protektor's point is that it should be "libre/open-source", "proprietary" and "DRM". The word "free" doesn't distinguish between freedom and cost and, in the current Desura UI, is already in use to mean "gratis".

Protektor-Desura commented 12 years ago

I'm opening a new ticket for DRM discussions

ssokolow commented 12 years ago

@naryl: That would be issue #93.

Jookia commented 12 years ago

Back on topic: Should we try and move Desurium to store things in home directories and whatnot instead of a central location?

TheSiege commented 12 years ago

Yes, yes please! If you don't like it please give us at least a build/run-time option to do so. This is a very major problem for me, as the distribution I have (gentoo) already has a good working ebuild which just has this problem with the central location. If done I belive major distributions would not have a big problem (that is because the port to cmake works very well on linux) to get it into their repositories.

ssokolow commented 12 years ago

I think so. The current behaviour makes sense for manual installs to somewhere like my ~/opt but doesn't really make sense for system-wide install.

(I was surprised when I heard that Desura installs into Program Files on Windows, given the current state of this bug and how Unix-like the Windows filesystem layout has become in recent versions.)

Protektor-Desura commented 12 years ago

I'm not sure I would put the downloaded games under a . directory though. I think ~/desura/ should be the default location for all per-user games. It would make it so much easier for new Linux users to find things if they want to setup "shortcuts" or whatever.

ssokolow commented 12 years ago

For the love of god, please don't force me to either wrap yet another program in a script which lies about $HOME or maintain my own build.

It's bad enough that SOFA Statistics, Crayon Physics Deluxe, and StepMania try to clutter up my home directory with folders I don't want to see.

Even the current situation of having all of Desura in a single folder I can squirrel away wherever I want is preferable to that.

karolherbst commented 12 years ago

that's a general point I miss under Linux: where to put configurations and other stuff. Because I came from Mac OS X I'm a bit accustomed to find all these stuff in ~/Library/Application Support/{AppName}/ (for runtime and user specific things such as skins or databases) and ~/Library/Preferences/{domain shortcut like org.desurium.plist} (for settings).

Anyway for the Mac OS X port this will be necessary, because otherwise it would be "bad style".

On Mac OS X Steam puts all the game data in ~/Library/Application Support/Steam/ not in the steam application as it is on windows.

naryl commented 12 years ago

karolherbst, there's a Freedesktop.org standard for it. And a library. http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html

EDIT: Removed some rant about Desurium not following XDG.

Jookia commented 12 years ago

Desurium implements the XDG basedir spec for configuration files and cache/temp files.

ssokolow commented 12 years ago

Ahh. I'd wondered how OSX did it but never got around to looking it up.

The big thing I'm not sure about is whether it'd be better to count downloaded games as user data or cached data. It's a bit tricky:

That basically leaves these options:

If you do go with that last option, just keep in mind two things:

Jookia commented 12 years ago

On my branch (https://github.com/Jookia/Desurium/tree/80) I've done the XDG-route, with XDG_DATA_HOME, XDG_CONFIG_HOME and XDG_CACHE_HOME for respective purposes.

karolherbst commented 12 years ago

nice :)

Jookia commented 12 years ago

Fixed.

ssokolow commented 12 years ago

Is there any kind of script or guide for moving pre-GPL data files to their new locations? I'd really rather not have to manually re-add all the non-Desura games I've got in my Play list.

...or re-download the Desura-provided ones. (Last I checked, Desura wouldn't automatically resume the install process after a crash or accidental quit the way I've seen my brothers' Steam clients do.)

Jookia commented 12 years ago

The guide is to dump the desura/data and desura/bin folder contents in to the desura folder, and move the desura/.settings folder in to ~/.desura, or ~/.config/desura if you're using the XDG thing, or desura/config if you're using the portable thing. Games go in ~/.desura/games or ~/.local/share/desura or desura/games.