SpiffyTriffid wrote: Wed Dec 19, 2018 2:28 am
Nobody is asking to "ban tech" and it's intellectually dishonest to claim anyone is.
I had the impression, that Nightinggale was strongly against the possibility of mods controlling the camera. But maybe he just wanted what you want: A setting to prevet mods from taking over the camera.
SpiffyTriffid wrote: Wed Dec 19, 2018 2:28 am
The correct response is to add a toggle in the game menu that disables the use of this API.
I don't disagree on this. I like options.
Nightinggale wrote: Wed Dec 19, 2018 3:04 am
In Factorio 0.16 we can trust Factorio to avoid the problem by not providing the API to the modders.
You can partially emulate the new cutscene controller by using player.set_controller(defines.controllers.ghost) and then use player.teleport to move him around. Could maybe even be as smooth as the new cutscene controller if you call teleport every tick. You would need to calculate the intermediate positions between start end target position yourself though. It should definitely work well for the common screen shake.
Nightinggale wrote: Wed Dec 19, 2018 3:04 am
You already stated that modders are already poor at providing descriptions and now you say we should trust modders.
So if you used other people's mods before, you implicitely already trusted them to not do screen shakes. You just didn't knew.
And yes, most descriptions are non-existing or pretty incomplete. But you have no other choice apart from just not using other people's mods.
So the second best way to avoid the All-Nauseating Screen Shake of Puke™ would probably be SpiffyTriffid's option to disable camera control stealing. It would need to make player objects ignore controller type changes and prevent the teleport function from doing anything. It obviously would break mods using the affected functionality - and would prevent joining multiplayer games where the server setting is more permissive (because the game is not fully able to know whether lua scripts will eventually use the affected functionality as LUA supports access of properties and functions with runtime-generated names).
A partial solution to the social problem might be to require mods to mention feture sets that they want to use in their info.json . That way, mods would explicitly have to mention that they need control over player controllers or the teleport function. The mod portal could list the required feature sets and prevent enabling of mods that require feature sets that collide with the user's game settings. That way you could still play on most modded servers with the camera stealing prevention enabled.
But Wube would have to look at the API and identify potentially harmfull functionality. And there should be a lot of that as the API is pretty huge. An example for a potentially harmfull feature is the ability to define custom sprite animations - you could have a flickering explosion very much like in that pokemon episode and that might trigger epilepsy seizures.
Also that would obviously not prevent or warn against phobia stuff like giant spiders (or whatever people might fear) and "inappropriate" content (but there probably is none anyway).
Educating modders woudl still be needed. But yes, Wube could be the first game studio to implement partial solutions for some of the most problematic things. I just doubt, that they will spend the developer time needed for something that only a tiny fraction (players severely affected by some mod API features) of a minority (players that use mods) really need.
Nightinggale wrote: Wed Dec 19, 2018 3:04 am
What should we do if somebody fails to provide a proper warning? Kick out the mod? Track the modder down and knock on his/her door?
Obviously, you would need to nuke them from orbit.
No, there would probably still be no consequences for just not writing a proper description. Intentionally malicious mods are pretty unlikely to happen and would probably just get deleted and the author would eventually get banned from uploading new mods if insisting to do prank mods.
Nightinggale wrote: Wed Dec 19, 2018 3:04 am
What if it is a bug, where the mod works and then an unlucky update adds shaking if some other mod is also loaded?
The bug will probably get reported and the author will probably fix it.
Nightinggale wrote: Wed Dec 19, 2018 3:04 am
The core of the issue is if screen shaking is added to the modding API, mods can intentionally or by accident trigger screen shaking for players. We always risk buggy mods, potentially game breaking, but so far the worst that can happen is crashing the game. This is completely different. This can actually harm the player and is not fixed by restarting the game.
You will never be able to eliminate all the ordinary risks of life. You could join a multiplayer game and the server bugs out sending the client the same game state sequence repeatedly - so that you repeatedly see you character running somewhere, teleporting back and running there again. That could be like a screen shake and in case of a bug in the engine it could loop forever.
So you will have to endure the bugs or stop playing. The presence of that risk is nothing anyone can change as it is literally impossible to prove the absence of bugs in complex software like a game engine.
Nightinggale wrote: Wed Dec 19, 2018 3:04 am
Speaking of which, it would be nice to be able to turn screen flashing off in settings, like when you get hurt.
Yes, that might be something, some epileptic players might want to turn off. Like with the camera control stealing prevention, there should be an option to disable screen flashing.