The Filesystem - A Rant
Posted: Tue Oct 01, 2019 11:34 pm
Incoming Rant.
Theres been something thats been bothering me for a while now, something that really grinds my gears.
Every time I've gone to develop a side tool I've been forced to work *around* the file system.
I understand this was decided a while back but I can't help but feel in my gut that there should be some sort of toggle or flag to
turn it off.
From what I've seen theres a lot of FUD over read/write access in Love2d.
It makes little sense that we should be restricted in file/directory access because a select few POTENTIAL individuals might misuse said tools.
And I've found with most things in life, the desire to protect users from themselves cripples the usefulness of the thing in question.
It goes to the heart of what love2d is supposed to be. Strictly for Games, or can it be for other things, like Tools? After all, isn't tool development an essential part of the history, and practice of game development?
The sky is not in fact falling, contrary to the doomsayers in all the threads making 'helpful' suggestions about read/write access restrictions 'just in case.'
But from my own experience and what other legitimate users have encountered, all it's done is get in the way..constantly. This is what I've consistently encountered, and isn't even a complete list:
Can't write a shape editor tool that allows opening an external image or directory to import an image,
..because of file system restrictions.
Can't write a level editor tool that allows exporting unless I'm doing copytoclipboard serialization which is arguably worse.
..Because of file system restrictions.
Because love2d loads from main and only main, and because I'm too early in development to put a main menu in,
...I can't include tools IN the game folder itself.
I'm not typically an incendiary individual, but the idea that people will misuse anything you give them is fearmongering by a small vocal minority of people who treat others like children. It's not that people won't, it's that it doesn't matter if they do. A tools job isn't to protect it's users from themselves, least of all when it significantly impedes a core element of development: tool creation.
People will always misuse tools, and while some decisions might make it easier for them to do it, making it *harder* for them is a downward spiral which leads to constantly working on further and further defenses against misuse, all while reducing functionality for the intended users.
Because of this, I and others are left with the following kludges when using love2d:
- make a seperate folder for the tool, copy ALL my assets into the tool before using it. Now anyone I share the
tool with will also have to follow this convoluted step.
- while anyone using tools built with love2d have to copy all their assets in, THEY ALSO can't hit any sort of
simple 'save here' or 'export' button. No, instead they have to
- dig up an obscure save folder
- OR take a serialized string of data which the tool copies into their clipboard, go to their assets folder,
create a new file, name it, open it, copy paste, and then save the result.
- alternatively, put a big ugly early menu in the game to host the tools, resulting in them being tied to
my own work and requiring more work to share or reuse elsewhere.
The reality is love2d isn't big enough to worry about anything worse than script kiddies, and more importantly,
any tool made must necessarily be crippled in order to prevent a select few dumb*sses from misusing it, which
holds everyone else, legitimate users, and development, hostage to a select few individuals misuses.
Because of people crying about 'the sky falling' if outside directory access is enabled' the following things have become unnecessarily complicated to make in love2d:
- GUI editors/builders
- Physics editors/collision shape editors
- Tile terrain/editors (tiled does this one competently)
- Any other sort of tool or editor
These things would help the userbase tremendously and people who might develop them are entirely put off
by, as I said, what is essentially fear mongering. This decision, to restrict directory access may have seemed to make sense in
light of a vocal minority calling for it, however well meaning they may have been, but essentially it went through because
not enough people spoke up to say "this is going to stunt the community and tools development."
For the tl;dr crowd - we need external file access if we want to do anything more serious or build on Love. The decision to restrict access should be reversed.
Theres been something thats been bothering me for a while now, something that really grinds my gears.
Every time I've gone to develop a side tool I've been forced to work *around* the file system.
I understand this was decided a while back but I can't help but feel in my gut that there should be some sort of toggle or flag to
turn it off.
From what I've seen theres a lot of FUD over read/write access in Love2d.
It makes little sense that we should be restricted in file/directory access because a select few POTENTIAL individuals might misuse said tools.
And I've found with most things in life, the desire to protect users from themselves cripples the usefulness of the thing in question.
It goes to the heart of what love2d is supposed to be. Strictly for Games, or can it be for other things, like Tools? After all, isn't tool development an essential part of the history, and practice of game development?
The sky is not in fact falling, contrary to the doomsayers in all the threads making 'helpful' suggestions about read/write access restrictions 'just in case.'
But from my own experience and what other legitimate users have encountered, all it's done is get in the way..constantly. This is what I've consistently encountered, and isn't even a complete list:
Can't write a shape editor tool that allows opening an external image or directory to import an image,
..because of file system restrictions.
Can't write a level editor tool that allows exporting unless I'm doing copytoclipboard serialization which is arguably worse.
..Because of file system restrictions.
Because love2d loads from main and only main, and because I'm too early in development to put a main menu in,
...I can't include tools IN the game folder itself.
I'm not typically an incendiary individual, but the idea that people will misuse anything you give them is fearmongering by a small vocal minority of people who treat others like children. It's not that people won't, it's that it doesn't matter if they do. A tools job isn't to protect it's users from themselves, least of all when it significantly impedes a core element of development: tool creation.
People will always misuse tools, and while some decisions might make it easier for them to do it, making it *harder* for them is a downward spiral which leads to constantly working on further and further defenses against misuse, all while reducing functionality for the intended users.
Because of this, I and others are left with the following kludges when using love2d:
- make a seperate folder for the tool, copy ALL my assets into the tool before using it. Now anyone I share the
tool with will also have to follow this convoluted step.
- while anyone using tools built with love2d have to copy all their assets in, THEY ALSO can't hit any sort of
simple 'save here' or 'export' button. No, instead they have to
- dig up an obscure save folder
- OR take a serialized string of data which the tool copies into their clipboard, go to their assets folder,
create a new file, name it, open it, copy paste, and then save the result.
- alternatively, put a big ugly early menu in the game to host the tools, resulting in them being tied to
my own work and requiring more work to share or reuse elsewhere.
The reality is love2d isn't big enough to worry about anything worse than script kiddies, and more importantly,
any tool made must necessarily be crippled in order to prevent a select few dumb*sses from misusing it, which
holds everyone else, legitimate users, and development, hostage to a select few individuals misuses.
Because of people crying about 'the sky falling' if outside directory access is enabled' the following things have become unnecessarily complicated to make in love2d:
- GUI editors/builders
- Physics editors/collision shape editors
- Tile terrain/editors (tiled does this one competently)
- Any other sort of tool or editor
These things would help the userbase tremendously and people who might develop them are entirely put off
by, as I said, what is essentially fear mongering. This decision, to restrict directory access may have seemed to make sense in
light of a vocal minority calling for it, however well meaning they may have been, but essentially it went through because
not enough people spoke up to say "this is going to stunt the community and tools development."
For the tl;dr crowd - we need external file access if we want to do anything more serious or build on Love. The decision to restrict access should be reversed.