Hacker News new | past | comments | ask | show | jobs | submit login

For games, I think it's even worse on GNU/Linux systems, since most game developers mainly target Windows and sometimes completely ignore conventions for other platforms (possibly since some game engines have that "Build for Linux" button).

This also applies to game engines and their own conventions. For example Unity has Application::persistentDataPath[1], which uses $XDG_CONFIG_HOME (still a bit meh, since I wouldn't treat savefiles as "config", but at least some convention). However, some games tend to write those into Application::dataPath[1] (or even other random directories they see fit), which is supposed to be read-only and could possibly be outside of $HOME.

Fortunately the single one advantage of antivirus software out there seems to be that the above seems to break with some AV, so developers either tell their players to disable AV or they simply fix the issue. I made countless bug reports on this issue and so far it exclusively got fixed because of AV, so I'm using that as an argument for future reports.

While at least most of the Unity games I've packaged seem to adhere to these conventions, other games and game engines are a mixed bag and I've seen games dumping their stuff into $PWD to games writing to Windows paths (eg. /home/foo/SomeVendor\Somegame).

Patching these games is also very tedious, since some of them tend to get updates, so patching needs to be done in a way to be forward-compatible.

For example here is a patcher I wrote to get Factorio to adhere to XDG:

https://github.com/openlab-aux/vuizvui/blob/4690494feee20a62...

Here is an example for patching a Unity3d game that writes to Application::dataPath:

https://github.com/openlab-aux/vuizvui/blob/4690494feee20a62...

[1]: https://docs.unity3d.com/ScriptReference/Application-persist...

[2]: https://docs.unity3d.com/ScriptReference/Application-dataPat...




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: