Friday Facts #273 - Cutscene controller & Localisation plan

Regular reports on Factorio development.
User avatar
Oktokolo
Filter Inserter
Filter Inserter
Posts: 883
Joined: Wed Jul 12, 2017 5:45 pm
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by Oktokolo »

Nightinggale wrote: ↑
Tue Dec 18, 2018 7:31 am
Oktokolo wrote: ↑
Mon Dec 17, 2018 10:39 pm
screenshakes (earthquakes, impacts...)
Multiple people complain about the screen movements causing motion sickness, yet now it's proposed that the screen should shake even more. This is precisely why I wrote something about NOT giving completely free access for modders to control screen movements. As much as I prefer modding freedom, I'm against providing modders with the tool to actually harm other players.
Not every mod has to be for everyone. There are people out there that like their abombs shake the screen. Don't like it? Don't use it!
Nightinggale wrote: ↑
Tue Dec 18, 2018 5:28 pm
I don't have a problem with whatever people do on their own computers. The problem is when people can gain the ability to do something on computers of other people.
Say person A makes a mod, which unannounced has a feature, which shakes the screen really badly. Next person B downloads the mod without knowing this and is then exposed to it against his/her will.
Banning tech is obviously the wrong solution for this purely social issue about having insufficient information in mod descriptions (and yes, most mod descriptions are pretty lacking - often they do not even mention the purpose of the mod).
The right solution is informing modders, that they should include proper information about the use of camera/screen movement (and flicker/strobe) effects (or common phobia triggers like spiders) in their mods' description.
Wube could add reminders to the documentation of the functions that are likely used for such effects. Also good places might be the modding tutorial in the Wiki, a pinned modding introduction post in the modding forum, and a paragraph in the mod upload form.
Nightinggale wrote: ↑
Tue Dec 18, 2018 7:31 am
Back in the day when sailing ships were the main mean of transportation, seasickness was a real concern.
If humans puke for days, they dehydrate because they can't keep what they drink. That was probably the main cause of seasickness deaths.
But modern medication can stop the vomiting allowing affected people to rehydrate. Seasickness is not deadly anymore. And Seasickness that you can always stop by stopping using a mod never was and never will be. Animated GIFs on the other hand...

SpiffyTriffid
Inserter
Inserter
Posts: 26
Joined: Tue May 15, 2018 8:40 pm

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by SpiffyTriffid »

Not every mod has to be for everyone. There are people out there that like their abombs shake the screen. Don't like it? Don't use it!
-snip-
Banning tech is obviously the wrong solution for this purely social issue about having insufficient information in mod descriptions (and yes, most mod descriptions are pretty lacking - often they do not even mention the purpose of the mod).
The right solution is informing modders, that they should include proper information about the use of camera/screen movement (and flicker/strobe) effects (or common phobia triggers like spiders) in their mods' description.
This is the wrong way to think about a feature. Nobody is asking to "ban tech" and it's intellectually dishonest to claim anyone is. All people are asking for is the ability to prevent mods from doing a thing that makes them nauseated. The correct response is to add a toggle in the game menu that disables the use of this API.

There's a difference between
  1. oh, this mod adds an irritating noise that I don't like, I'll remove the mod
  2. oh, this mod just triggered nausea that will last for half an hour, I'll remove the mod
Adding an option to ignore mod (and campaign) control of the player's camera is the most middle-of-the-road option to fix this issue. Games that have bobbing UIs or viewcameras that can make people sick often come with a "motion sickness" toggle that disables the bobbing view or UI - this isn't "banning tech". I think it would be helpful to consider just how sick this can make people feel if a mod uses it improperly (or even properly if one is extra sensitive). "Banning tech" would be removing the feature outright, "screwing over people who get motion sick" would be doing nothing, and "doing the rational thing and adding a toggle that people can set to their preferences to ensure everyone can be happy" is doing exactly that.

SpiffyTriffid
Inserter
Inserter
Posts: 26
Joined: Tue May 15, 2018 8:40 pm

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by SpiffyTriffid »

wheybags wrote: ↑
Sun Dec 16, 2018 8:21 pm
SpiffyTriffid wrote: ↑
Sun Dec 16, 2018 6:40 am
Love the cheeky paper on the whiteboard btw

It's not DNS
There's no way it's DNS
It was DNS
Damn man, how can you read that? :D
2048Γ—1080 and a zoom hotkey for chrome

Nightinggale
Fast Inserter
Fast Inserter
Posts: 120
Joined: Sun May 14, 2017 12:01 pm
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by Nightinggale »

Oktokolo wrote: ↑
Tue Dec 18, 2018 9:32 pm
Banning tech is obviously the wrong solution for this purely social issue about having insufficient information in mod descriptions (and yes, most mod descriptions are pretty lacking - often they do not even mention the purpose of the mod).
The right solution is informing modders, that they should include proper information about the use of camera/screen movement (and flicker/strobe) effects (or common phobia triggers like spiders) in their mods' description.
Wube could add reminders to the documentation of the functions that are likely used for such effects. Also good places might be the modding tutorial in the Wiki, a pinned modding introduction post in the modding forum, and a paragraph in the mod upload form.
While I agree that would be an ideal solution, at the same time you seem to be missing the point. In Factorio 0.16 we can trust Factorio to avoid the problem by not providing the API to the modders. In 0.17 we have to trust unknown modders to follow the guidelines. You already stated that modders are already poor at providing descriptions and now you say we should trust modders. 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?

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 modder didn't test that combo, meaning it's unknown until some user happens to load both mods.

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.

Since we can't trust modders to handle this with the care needed, the trust in all mods are lost unless Wube makes something to prevent this from happening, be it completely ban or some game setting, which the mods can't overwrite. Something like disabling certain calls in the API as in just adding a return and do nothing when asked to move/shake the screen.

I'm not against people shaking their own screens if they want to. What's important for me is that modders will not have a way to shake my screen, even by accident.
Oktokolo wrote: ↑
Tue Dec 18, 2018 9:32 pm
The right solution is informing modders, that they should include proper information about the use of camera/screen movement (and flicker/strobe) effects (or common phobia triggers like spiders) in their mods' description.
Speaking of which, it would be nice to be able to turn screen flashing off in settings, like when you get hurt. Usually when you get hurt, you know. There is no need to flash the screen, particularly not if you don't want the screen to flash repeatably while fighting biters. This goes for both vanilla and modded screen flashing.

User avatar
Nova
Filter Inserter
Filter Inserter
Posts: 947
Joined: Mon Mar 04, 2013 12:13 am
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by Nova »

Nightinggale wrote: ↑
Tue Dec 18, 2018 5:28 pm
Say person A makes a mod, which unannounced has a feature, which shakes the screen really badly. Next person B downloads the mod without knowing this and is then exposed to it against his/her will.
Then person B closes the game, deletes the mod, and done. It's that easy.
If even extremely short exposition causes problems: Sorry, are you sure you can play the game? Or most computer games at all? I mean, it's really easy to accidentally cause such screen movements. I understand if you still want to play and therefore to reduce the amount of accidental exposure, but we can't just remove anything that could harm: not even allowing features because an extremely small subset of players can't tolerate it sounds not very practical.

Looks like my post was misinterpretable: I wanted to to say that it's a difference if people get triggered by visual stimuli (like a shaking screen) or by kinetic stimuli (like a shaking ground / chair). NeXuS' example did sound more like the latter, but I wanted to ask to make sure - kinetic stimuli would have no connection to Factorio.

Regarding "banning tech" - I interpreted your post as asking to not create API for camera movement for mods, but that was wrong from me. You instead said modders should not have a FREE access to that, which is acceptable in my opinion. An option toggle sounds like an easy fix for that problem. :)

Nightinggale, you have to realize one important thing: You can never trust mods. Not with 0.17, not with 0.16. Nothing stops me from just creating some shaking pictures and displaying them in Factorio as a mod, for whatever reason. You can't even trust Factorio itself / Wube in that regard because there are enough ways to shake the screen / do similar stuff with unmodded Factorio, on accident or not. You can't prevent that. Wanting to reduce the risk is okay, so... just a toggle for the options, done. :)
Hell, you can't even trust this forum. Here's a nice small feature to embed images in posts. Nothings prevents me from embedding a shaking picture. Sure, moderators could delete it, but you could see it before any moderators, or I just send it to you per PM. No way to prevent that, you just have to accept the risk for using this forum.
Greetings, Nova.
Factorio is one of the greatest games I ever played, with one of the best developers I ever heard of.

Nightinggale
Fast Inserter
Fast Inserter
Posts: 120
Joined: Sun May 14, 2017 12:01 pm
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by Nightinggale »

Nova wrote: ↑
Wed Dec 19, 2018 3:59 am
are you sure you can play the game? Or most computer games at all?
I'm not going to take the bait on this one. I don't think you intended it this way, but it come across as potentially a troll statement, shifting the topic away from Factorio to "you are wrong" and essentially you are banning me from playing games. Or maybe even banning me from using computers. Regardless of what I reply, the next reply is prepared to make it look like I'm a childish person having a fit. I have been on the internet long enough to know whenever a topic shift from the topic towards a single person, it can quickly head in a direction like that. Intentionally or not, such a shift in topic won't benefit the debate about Factorio.

I'm not going to let this be about me personally. Plenty of people have made statements that they don't want shaking screens due to motion sickness issues. Either severe, just feeling bad or perhaps some just find it annoying. Focusing on me specifically because I speak up is shifting the focus away from the real topic.
Nova wrote: ↑
Wed Dec 19, 2018 3:59 am
You can never trust mods. Not with 0.17, not with 0.16. Nothing stops me from just creating some shaking pictures and displaying them in Factorio as a mod, for whatever reason. You can't even trust Factorio itself / Wube in that regard because there are enough ways to shake the screen / do similar stuff with unmodded Factorio, on accident or not. You can't prevent that. Wanting to reduce the risk is okay, so... just a toggle for the options, done. :)
Sure nothing is 100% trustworthy when the trigger condition can be an unknown bug. Also when providing an API for modders, there is always the risk that some modder can get super creative and do something nobody predicted. However there is a huge difference between such accidents and then providing an API, which makes it easy to introduce such issues knowing that some users have already proclaimed they want to use such APIs to shake the screen.

The core of this issue is that multiple people currently playing 0.16 without motion sickness issues have voiced a concern that 0.17 might be heading in a direction where people fear problems with motion sickness. Requesting the motion sickness risk of 0.17 to be no greater than what it is in 0.16 doesn't seem like an unreasonable request. We aren't talking about redesigning the game here, only making sure a new feature doesn't make it worse in an unintended way.
Nova wrote: ↑
Wed Dec 19, 2018 3:59 am
Hell, you can't even trust this forum. Here's a nice small feature to embed images in posts. Nothings prevents me from embedding a shaking picture. Sure, moderators could delete it, but you could see it before any moderators, or I just send it to you per PM. No way to prevent that, you just have to accept the risk for using this forum.
Sure you can be a jerk like that, but it will be clear that Wube will not aid you in doing so. In fact when you created your forum account, you accepted "You agree not to post any abusive, obscene, vulgar, slanderous, hateful, threatening....". If you send such PMs, you can apparently face anything from losing the ability to send PMs to me, send PMs in general, lose account, perm ban your IP, Wube contacting your ISP and so on. Sure that won't prevent you from doing it, but Wube has made clear that you shouldn't do it. It would be abusive to send PMs intended to cause motion sickness. That makes it completely different from Wube adding an API to allow you to make a mod to cause motion sickness.

Henry Loenwind
Long Handed Inserter
Long Handed Inserter
Posts: 52
Joined: Fri Mar 09, 2018 7:33 pm
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by Henry Loenwind »

abregado wrote: ↑
Sat Dec 15, 2018 11:46 am
A big part of the search for a translation company was finding ones that specialize in games,
Um, no. Get a company that (also) has an engineering background. Those terms need to be translated correctly or it will alienate any player who knows the right terms.

User avatar
Nova
Filter Inserter
Filter Inserter
Posts: 947
Joined: Mon Mar 04, 2013 12:13 am
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by Nova »

@Nightinggale:
Not intended as "bait" or trolling at all - I don't mean you personally with "you", but person B. Just someone, whoever that might be - maybe you can be person B, I don't know for sure, but I also don't really care as I try to make my arguments / my viewpoint as neutral as possible. (I surely fail horribly at that, but oh well...)
The thing is just: I don't understand how someone / person B can play a game such as Factorio with enough possible trigger material, but has a problem with an extremly small exposure to a screen shaking effect. I mean, you (read: person B) add a mod, play a bit, notice a screen shaking effect for maybe ~1 second, stop the game, remove the mod and ban the developers from your mod list forever / until they fix it.

Well, you can't expect the game to not change from one version to another, even on negative things. There are enough people not liking some of the changes of 0.17, above all the removed pickaxe. It would be nice to have no negative changes, but requesting that is ... not unreasonable, but you will not have success with that in every case. ^^

I don't even need to be any of these adjectives to post a "harmful" image - for example I could just make a bug report about some flickering / erratically moving GUI window and post a gif for that.

I don't want to attack you, especially because we already have a solution for the problem we both / most players can accept: making a toggle option for motion sickness risky camera movement. So yes, the whole discussion is more for a philosophical point than some real added value, but I like discussing stuff. :D
Greetings, Nova.
Factorio is one of the greatest games I ever played, with one of the best developers I ever heard of.

User avatar
bobingabout
Smart Inserter
Smart Inserter
Posts: 7351
Joined: Fri May 09, 2014 1:01 pm
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by bobingabout »

Well, Like I said earlier, I had to quit playing warframe because of the menu movements, there was, and still is no option to disable that. they did tone it down a fair bit though.
And I have to turn screen shake off when I play Startrek online.

Screenshake is the devil.

screen panning is bad enough, driving a train in factorio can hurt my eyes.
Creator of Bob's mods. Expanding your gameplay since version 0.9.8.
I also have a Patreon.

Nightinggale
Fast Inserter
Fast Inserter
Posts: 120
Joined: Sun May 14, 2017 12:01 pm
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by Nightinggale »

Nova wrote: ↑
Wed Dec 19, 2018 8:06 am
I mean, you (read: person B) add a mod, play a bit, notice a screen shaking effect for maybe ~1 second, stop the game, remove the mod
Sounds fine on paper, but that's just not how it works in real life. You are playing along nicely, settings up more assemblers or whatever, focusing on placing all the buildings according to your plan and suddenly a mod triggers an earthquake. Your screen starts to shake violently and due to the earthquake happening violently without warning, you aren't prepared to even look away and then a second to respond could be rather quick.

Another issue is that pain like touching the flame on a candle will give you instant pain, hence instant instinctive "I want to void this" feeling and quick respond. Motion sickness can show up gradually within a minute or two of the trigger condition, meaning you can't rely on the "let me out of here" instinctive respond, which greatly adds to the respond time regarding avoiding trigger conditions.
Nova wrote: ↑
Wed Dec 19, 2018 8:06 am
Well, you can't expect the game to not change from one version to another, even on negative things. There are enough people not liking some of the changes of 0.17, above all the removed pickaxe.
I agree and it's not unusual to have a change, which makes two camps, one thinking the change is awesome and one thinking the change is horrible. However I have yet to hear about anybody getting to feel so bad that they might feel forced to go to bed due to lack of a pickaxe. That's the major difference.
Nova wrote: ↑
Wed Dec 19, 2018 8:06 am
I don't want to attack you
As I wrote, I suspect it was unintentional, but you managed to design your post in a way that if you had hostile intentions, then you could have a planned reply, which would make me a moron regardless of my reply. I have seen it happen elsewhere online a number of times. Particularly the part about not playing games as I have seen calls for banning people from playing games unless they are native American English speakers because that's the only way to get the correct playing experience and apparently the worst would be British English. Whenever somebody wants to argue anywhere in a direction like that, nothing good can come of it.

Be aware that if somebody tells somebody else online what he/she should be allowed to play or not play, nothing good will come of it. Something like that is used by "professional" fight starters. You know people who get a kick out of upsetting other people. You come across as saying "you know that game you love and play right now. I want the next steam update to render it unplayable for you because I would enjoy that". This is one reason why the art of communication is tricky. It's way too easy to be unaware of sending messages like that, particularly to people with different backgrounds and if people get upset without telling anything other that "what do you think" or similar, then you are left with "what did I do wrong?". This is why I started up with stating that I don't think you did it intentionally, but your message still came across as not very nice reading. This is also the reason why I'm fairly verbose in the reply.
bobingabout wrote: ↑
Wed Dec 19, 2018 9:28 am
screen panning is bad enough, driving a train in factorio can hurt my eyes.
This is a user action. You can choose to not use sine curves when placing tracks and you can choose to not use trains. On top of that you know when you use trains and if you want, you can set the train to go to a certain station and let it handle itself while you aren't looking. I think we have to live with the fact that you can make the screen less motion sickness friendly by applying certain user inputs. Perhaps avoiding a certain action will give you a handicap ingame, but it's usually not game breaking.

The talk about screen movement and shaking is about allowing the game itself to do it without player inputs. This means the player can't do or not do something specific to avoid getting exposed. This means it's far worse than anything currently in the game even if the actual movements aren't worse than something you can get ingame today.

Having said that, I can easily imagine somebody implementing screen shaking for earthquakes in a way, which is far worse than anything available in the game today. This makes it double bad from a motion sickness avoidance point of view.

User avatar
Oktokolo
Filter Inserter
Filter Inserter
Posts: 883
Joined: Wed Jul 12, 2017 5:45 pm
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by Oktokolo »

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.

User avatar
featherwinglove
Filter Inserter
Filter Inserter
Posts: 579
Joined: Sat Jun 25, 2016 6:14 am
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by featherwinglove »

bobingabout wrote: ↑
Wed Dec 19, 2018 9:28 am
Screenshake is the devil.
Okay, so I haven't read all of this, but I caught the jist of it, and someone remembering the infamous Pokemon incident. (I was surprised when I read about that, a significant number of seizures were caused by episode samples in the news broadcasts reporting on the original broadcast seizures.) My proposed solution:

1. Mod control of player controlled camera point relative motion (shake and tilt) in the API doesn't have cutscene controller signal (letterbox or whatever.)

2. Full cutscene controller in API, cutscene controller signal can't be turned off by mods when it is in use.

3. Player controlled relative motion can be turned down or off globally, and there is no way for mods to override the setting. This way, there is no way for a modder to use the feature to harass a player who has it turned off except, possibly, by social engineering dialogue or readme files to get the player to turn it off, and I don't think anyone dumb enough to fall for that is playing Factorio.

4. Full cutscene controller panning and zooming speeds can be adjusted globally, possibly including changes to the cutscene controller signal effect, and the mods can't touch these settings. One option might be to have the game, instead of panning and zooming, fade to black and then fade back in after an instantaneous move to the new camera position.

We especially get step 4 out of the way now if we want to do this because it could seriously affect scenario logic, i.e. mods' control.lua and called files may need to wait, and possibly stop the game clock while waiting, for the cutscene controller camera action to finish.

SpiffyTriffid
Inserter
Inserter
Posts: 26
Joined: Tue May 15, 2018 8:40 pm

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by SpiffyTriffid »

Solution presents itself - the toggle causes the screen to fade to black and then fade back in at the new location in the same time it takes the camera to move to that position, such that the initial and final position and timing are indistinguishable. Then, simply don't allow mods to query the current position of the camera during a cutscene. That doesn't seem like too much of a loss, since the mod should be able to calculate approximately where the player's view should be in lua if they really need it for whatever reason. Lua-state-wise the end result should be the same thing, and as a bonus this should prevent desyncs due to toggle differences - if the state is never exposed then there is no possibility for a state desync. Prevent Lua from triggering a cutscene during a cutscene, and that will (as far as I can napkin-debug) prevent the state of the cutscene from ever being required beyond "is a cutscene currently running" and "is it mine". @factorio-devs, any thoughts on this? I feel that this would solve the issue of desync due to a toggle, but I have no idea how hard that would be to implement.

User avatar
featherwinglove
Filter Inserter
Filter Inserter
Posts: 579
Joined: Sat Jun 25, 2016 6:14 am
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by featherwinglove »

I had assumed that the camera position would not be part of saved and server communicated game data, only when a camera move is called, and an event thrown when it is finished. The engine should then be able to interpolate the camera move to fit between those times. The only problem is that, if the camera would move too fast, the movement will need to either ignore the installation's camera movement settings or pause/slow the replay to allow the camera movement to complete within the global movement setting limitations - might put a toggle for that in advanced settings for the camera. Also, having the camera move during a fade is really annoying. I used to direct video for a church and the retiring camera operator would often start slewing about before a crossfade transition finished, and I would start hanging upside down from the control room ceiling in cringe. An instantaneous move while faded to black is a non-issue; I have no idea why you'd suggest otherwise.

User avatar
Oktokolo
Filter Inserter
Filter Inserter
Posts: 883
Joined: Wed Jul 12, 2017 5:45 pm
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by Oktokolo »

featherwinglove wrote: ↑
Wed Dec 19, 2018 11:39 pm
This way, there is no way for a modder to use the feature to harass a player who has it turned off except, possibly, by social engineering dialogue or readme files to get the player to turn it off, and I don't think anyone dumb enough to fall for that is playing Factorio.
As soon, as malicious intent is considered, you have to think about more esotheric stuff, only a griefer would do:
Spawning an invisible car and somehow getting the player character inside it before moving it around.
"blitting" the map by copying every tile except the player to an offset position, so the player stands still but the world around moves.
Remove all deposits of one resource after N ticks (probably multiple hours or days and not for every game session).
Deliberately cripple UPS every random amount of ticks for N ticks making animations and movement stutter wich would probably cause nausea on sensitive persons too (i read somewhere about a player who can feel single frame drops - not a joke).
There is an unlimited amount of ways to grief unsuspecting players at least once.
There also is no technical solution to the griefing problem. It is impossible to solve by throwing tech at it.

I would just ignore the grief modder problem and concentrate on a solution that works in absence of malicious intent. Opt-out settings and the ability to discover feature availability by clearly documented API calls before using such features in mod code would be a nice solution to the nauseating camera movement problem. Let the ban hammer handle the griefers - if there will ever be one.

User avatar
featherwinglove
Filter Inserter
Filter Inserter
Posts: 579
Joined: Sat Jun 25, 2016 6:14 am
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by featherwinglove »

Oktokolo wrote: ↑
Thu Dec 20, 2018 4:22 am
featherwinglove wrote: ↑
Wed Dec 19, 2018 11:39 pm
This way, there is no way for a modder to use the feature to harass a player who has it turned off except, possibly, by social engineering dialogue or readme files to get the player to turn it off, and I don't think anyone dumb enough to fall for that is playing Factorio.
As soon, as malicious intent is considered, you have to think about more esotheric stuff, only a griefer would do:
Spawning an invisible car and somehow getting the player character inside it before moving it around.
"blitting" the map by copying every tile except the player to an offset position, so the player stands still but the world around moves.
Don't be absurd. That's how the camera controller works ;)

User avatar
Oktokolo
Filter Inserter
Filter Inserter
Posts: 883
Joined: Wed Jul 12, 2017 5:45 pm
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by Oktokolo »

featherwinglove wrote: ↑
Thu Dec 20, 2018 4:26 am
Oktokolo wrote: ↑
Thu Dec 20, 2018 4:22 am
featherwinglove wrote: ↑
Wed Dec 19, 2018 11:39 pm
This way, there is no way for a modder to use the feature to harass a player who has it turned off except, possibly, by social engineering dialogue or readme files to get the player to turn it off, and I don't think anyone dumb enough to fall for that is playing Factorio.
As soon, as malicious intent is considered, you have to think about more esotheric stuff, only a griefer would do:
Spawning an invisible car and somehow getting the player character inside it before moving it around.
"blitting" the map by copying every tile except the player to an offset position, so the player stands still but the world around moves.
Don't be absurd. That's how the camera controller works ;)
No, the camera controller spawns an invisible locomotive with accurately calculated acceleration, decelleration and max speed on an invisible track terminated by an invisible train stop and swaps it with the player avatar - wich is stored in the secret cow level located on layer -1 as long as the locomotive needs to travel. ;)

Nightinggale
Fast Inserter
Fast Inserter
Posts: 120
Joined: Sun May 14, 2017 12:01 pm
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by Nightinggale »

Oktokolo wrote: ↑
Thu Dec 20, 2018 4:22 am
As soon, as malicious intent is considered, you have to think about more esotheric stuff, only a griefer would do:
I'm starting to worry about you. You keep arguing against making the modding API at least consider ill side effects and you come up with all sorts of ways to harass players in creative ways, which nobody else have come up with.

There are two goals towards making a protective API. The primary is to make an API, which tries to prevent people getting issues with mods where the mod creator genuinely goes "oh, I didn't think of that". This is particularly important when it's something like causing motion sickness in some people and not in other people. Unaffected people are actually likely to be unaware of what they are doing.

The other group is the downright troll mods, intended to attack other people. If somebody is set to make such a mod and willing to spend days or even weeks doing so, then yes the only way to be sure they can't is to shut down the modding API and nobody wants that. What we can do is to ensure the non-creative approaches doesn't work.

This means a proper solution is like I proposed: make an API for screen movement/shaking and make it controllable in game settings. Modders can then safely use the API knowing that the game itself takes care of the motion sickness issue. Providing an easy to use API with the problem solved will also have the benefit that if somebody decides to be creative and work around the intended API usage, it becomes much easier to call them out as troll mods and act accordingly. It more or less completely eliminates the accidental ill effects from mods.

How should the game handle screen movements in "motion sickness protection mode". Fade to black is a decent option. The controlled speed and acceleration is also a valid option, particularly for short distances. Adding a timer to set a minimum time between movements will help prevent the shaking even if movements are allowed. Ignoring camera movements is also an option. Combos like ignoring short movements and fade to black for long movements also seems doable.

What all those options have in common is that it allows modders to mod freely while Factorio itself (not the mod) allows the players to turn off motions they don't want to see for whatever reason.

User avatar
Oktokolo
Filter Inserter
Filter Inserter
Posts: 883
Joined: Wed Jul 12, 2017 5:45 pm
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by Oktokolo »

Nightinggale wrote: ↑
Sat Dec 22, 2018 5:52 pm
Oktokolo wrote: ↑
Thu Dec 20, 2018 4:22 am
As soon, as malicious intent is considered, you have to think about more esotheric stuff, only a griefer would do:
I'm starting to worry about you. You keep arguing against making the modding API at least consider ill side effects and you come up with all sorts of ways to harass players in creative ways, which nobody else have come up with.
I like to think about attack vectors and how to defend against them. It is an occupational habit i guess.
And i am actually pro some API hardening against non-intentional misuse (because that is feasible). Maybe, your motion sickness protection mode makes it into the game.
Would just like to have better mod descriptions in general too.

User avatar
featherwinglove
Filter Inserter
Filter Inserter
Posts: 579
Joined: Sat Jun 25, 2016 6:14 am
Contact:

Re: Friday Facts #273 - Cutscene controller & Localisation plan

Post by featherwinglove »

Nightinggale wrote: ↑
Wed Dec 19, 2018 3:04 am
Oktokolo wrote: ↑
Tue Dec 18, 2018 9:32 pm
Banning tech is obviously the wrong solution for this purely social issue about having insufficient information in mod descriptions (and yes, most mod descriptions are pretty lacking - often they do not even mention the purpose of the mod).
The right solution is informing modders, that they should include proper information about the use of camera/screen movement (and flicker/strobe) effects (or common phobia triggers like spiders) in their mods' description.
Wube could add reminders to the documentation of the functions that are likely used for such effects. Also good places might be the modding tutorial in the Wiki, a pinned modding introduction post in the modding forum, and a paragraph in the mod upload form.
While I agree that would be an ideal solution, at the same time you seem to be missing the point. In Factorio 0.16 we can trust Factorio to avoid the problem by not providing the API to the modders. In 0.17 we have to trust unknown modders to follow the guidelines.
Can't we trust the user to make the right decision in his Options menu as to whether his game will respond to such script/scenario instructions? I've said this before, and I'm sure it won't be the last time, just because something isn't right for one or a few people (or even the majority IMHO), everyone else should not be denied the choice.

(Please don't format unlinked text in a manner similar to a link; it's confusing and annoying.)

Post Reply

Return to β€œNews”