Jump to content
  • 0

[issue] Problems of storing information in registry and AppData folders


mutonizer

Question

[issue] Problems of storing information in registry and AppData folders

 

1) Registry

There is NO reason whatsoever to store ANYTHING in the windows registry unless it's low level stuff. Game options are perfectly fine in some random .ini file somewhere and whatnot, plus it makes them much easier to access for casual users should the need arise.

 

 

2) Appdata

Appdata is for IMPORTANT files, files that should be protected against accidental removal. That's why it's hidden and requires privilege to access. Why the hell do you put game information in there?

Windows has for a long time offered various folders for game storage purposes, the main and most obvious one being "My Games", which is designed especially for game information, allowing casual users to easily access and delete these information if needed. EVERYTHING from options to saves to tmp files to override to whatever you're gonna store dynamically should be in there, period.

 

 

On top of that, the "uninstall" function of Steam (basically, Delete Local Content) does NOT clean up Registry information nor does it clean up anything in Appdata (which is not accessible by any non upped user!).

 

 

Solution:

Stop using privilege function of windows for no reason.

Store all options in an easy to access and modify INI file stored in "My Games/Obsidian/PoE" or something alike

Store all saves and other dynamic data in "My Games/Obsidian/PoE" or something alike

 

This product is a game, please code it as such, respecting Windows folder/file structure.

 

Cheerios.

Edited by mutonizer
  • Like 17
Link to comment
Share on other sites

22 answers to this question

Recommended Posts

  • 0

I'm guessing a lot of people don't care/don't know. That's fine, it's not a "huge" deal, especially when they're in crunch mode I'm guessing.

 

I'm just tired of this trend of programming for games (and other software really), where they don't seem to give a damn and leave their stuff hanging everywhere where it doesn't belong, then you're left to clean up the mess once they're gone and wondering where the hell half your hard drive capacity went.

 

No reason to be there (afaik), still time to do it, it's just good practice and overall just shows that you respect the end-user.

  • Like 3
Link to comment
Share on other sites

  • 0

This is something that all my games that use Unity have in common, which makes me think that it is necessary anything that developer chose to do, but what Unity's package handler does at least as default for Windows programs.

Well, Wasteland 2 for example, as far as I know, does this:

- Uses My Games/Wasteland2 folder for all portraits, saves and exports.

- Uses Registry entries for options.

 

For registry, I'm guessing this is based around the default Unity PlayerPref stuff, because it's an easy and fast to use API just for that so basically you don't really have to code anything (which makes you wonder how the hell some options are not saved properly though). Now, registry storing has it's uses sometimes, but at least make sure you're cleaning it up. Otherwise, you're left with junk in a place where most people either cannot even access, don't think to access, don't want to access because it might be dangerous to their system.

 

In comparison, keeping everything in the My Games/sub folders allow for very easy, safe and obvious manipulation, allows for a quick cleanup even for casual users AND allows for really easy backups.

 

All in all, as I said, it's not a "huge deal" and yes everyone does it so why PoE be an exception right?

Well..because! That's why :)

  • Like 1
Link to comment
Share on other sites

  • 0

 

All in all, as I said, it's not a "huge deal" and yes everyone does it so why PoE be an exception right?

Well..because! That's why :)

 

 

With PoE you should take account that beta isn't final product and never will be, as end of beta Obsidian will remove beta from the Steam and publish new product there that is final game, so that people's comments and reviews about beta would not haunt those people that look to buy the final version of the game.  And not using default package handler for such beta product would be in my opinion somewhat waste of resources.

 

I am quite sure that final version of the game will not fir example include default unity launcher, especially with input tab that has control options for things that game don't even use. 

 

So even though this is something that Obsidian should probably take under consideration when they make installers for the final version, it isn't probably something that they should use their time for backer beta version.

Link to comment
Share on other sites

  • 0

While I agree that a normal folder like "My Games" should be used for savegames and an *.ini / *.xml for options and settings, a small correction about Appdata.

 

%appdata% is not a "privileged" folder or anything, it's user dependent and user accessible. I'm on a non-admin account and can access %appdata%, which is C:\Users\<user>\AppData\Roaming, just fine. It is not uncommon nor bad practice for software to store user dependent settings there.

Citizen of a country with a racist, hypocritical majority

Link to comment
Share on other sites

  • 0

"AppData" is meant to used to store data that are not pertinent for the user to ever see or access manually. for example, Google Chrome uses it to store all it's cache and whatnot and that's perfectly fine, Users never really need to access this. He can, sure, but it's not meant to be accessed manually.

 

"My Documents", especially "My Games" or even "My Saves", is meant to store data relevant to games, which can be pertinent for the user to access. This usually includes Mods, Saves, Option files, Custom content and the like.

 

As an example, PoE uses a "Current Game" data storage located in AppData. This seems to only store temporary information during a given session. That's fine, users have no need to access this at any point.

It however also stores Saves in the same location. That's not fine. Users often copy, backup, trade, upload, download, modify saves. They should NOT be asked to go into a hidden folder that should under regular circumstances never be accessed anyway.

And finally it also stores options in the registry, which is also not fine since, again, users should NEVER have to go in the registry manually and options are among the many things that many users edit out of game menus, mainly to try and solve graphical issues (ie: picking a resolution that crashes the game so you cannot even access said menu and need to change it manually).

 

Finally, storing all dynamically generated information (saves, options, etc) in the same, easy to access folders of My Documents, means it's very easy for users to keep track of what is where and manage it. That's how windows folder system is structured.

 

 

Look, as I said, it's not a big deal but it IS bad practice and is totally uncalled for (and when you try to keep your computer clean for years is really annoying). Everything should be stored properly in a My Document folder, as Windows intended. If they can spare the time: great. If they can't, well, too bad.

  • Like 1
Link to comment
Share on other sites

  • 0

[issue] Problems of storing information in registry and AppData folders

 

1) Registry

There is NO reason whatsoever to store ANYTHING in the windows registry unless it's low level stuff. Game options are perfectly fine in some random .ini file somewhere and whatnot, plus it makes them much easier to access for casual users should the need arise.

 

This more then anything.. an argument can be made for privileged calls in the case of anti cheat detection (during run time.. **** you Punkbuster) but I can't agree enough..

 

Register data is a dinosaur.. Let the OS use that.. use the FAT.. I love when I install GoG indie games and all I get is a binary and a configurations / asset folder. I can move it around.. move it to another pc.. no worries.

 

Installers and Register usage needs to die.

 

EDIT:

I was using the term FAT ironically.. before someone gives me a 101 on modern hard drive file allocation.

Edited by Immortalis
  • Like 2

From George Ziets @ http://new.spring.me/#!/user/GZiets/timeline/responses

Didn’t like the fact that I don’t get XP for combat. While this does put more emphasis on solving quests, the lack of rewards for killing creatures makes me want to avoid combat (the core activity of the game) as much as I can.

Link to comment
Share on other sites

  • 0

How most people generally store their files these days is

 

C:\ System & Programs

 

Other Drives:\ - Games, Storage, Media etc

 

storing game data on the C:\ drive usually leads to it getting wiped. I usually back up my documents folder every time I re-install but it's awfully annoying compared to Windows XP.

  • Like 1
Link to comment
Share on other sites

  • 0

I periodically do the image backup of my operative system partition, so the bloating of apps data is unwelcome.

 

I wish games would let me decide where to store their saves, instead of automatically dump them in My Documents. I'd rather keep them in the installation folder. Especially if the mods folder ends up in the same location of the savegames.

I've come to burn your kingdom down

Link to comment
Share on other sites

  • 0

I can't speak for registry stuff at the moment (apparently this is how Unity stores things by default and maybe it can be changed) but I can say that saved game stuff is moving in either the next Backer Beta or the following to %USERPROFILE%\Saved Games\Pillars of Eternity.

 

I'm in agreement myself about Registry-usage and using the "proper" spots for persistent game data - it's just bending Unity's defaults to our will :)

  • Like 5

OBSIDIAN ORDER OF ETERNITY - Officially sponsored most generously by Pierre and SD!

Link to comment
Share on other sites

  • 0

So that is why Windows PCs slow down over time...

 

No wonder they get nothing done, wasting all their time on dice games.

 

 

Still, i prefer the old way of just storing everything local to the game folder(and no, i will not install in the program folder, installer. Get lost.), so i can just move it where ever it displeases me the least.

Link to comment
Share on other sites

×
×
  • Create New...