This doesn't make sense. Scripting is intertwined with the game engine somehow; otherwise it would be useless. You can't completely separate them.
You wouldn't want untrusted mods with direct file access. In the same way, wouldn't it be nicer instead of crashing the game with an unstoppable infinite loop, possible hanging other parts of your system in the process you could just laugh, go back to the main menu, delete the mod and load the game again?
:shrug: I guess I'm incompetent then.
Maybe. The issue with that is that desktop computers aren't hard realtime singletask machines and hickups happen. For really rough timer based puzzles I guess you have to take that risk. But cinematic sequences with tight timing?
But this is not the only sort of situation that can cause synchronization problems. It's just the easiest example I could think of.
Fair enough. I think some systems solve this with proper API design. In smaller games you'd probably get away with only giving certain actors certain APIs or not having many actors to begin with. In bigger games there probably is the risk, but given that most scripted events that aren't put to hold with a latent function still run almost in an instant - hickups included - it's not a big risk.
If I understood your proposal correctly, and please tell me if I'm wrong, you're proposing for the script interpreter to stop interpreting, arbitrarily, outside the scripter's control, after a certain amount of instructions or time, and then continuing what the game engine wants to do (effectively, advancing a frame) before continuing with the next couple lines or whatever of the script.
You're correct. The script interpreter would execute a handful of instructions each game tick, unless stopped by some function call that tells the game not to update the interpreter until X happens.
when simple parallelization would be much more reliable, simple, and have all the same problems.
If by parallelization you mean OS threads, those aren't much more reliable, simple, but they come with fancy new problems. For example, when I wrote about headaches of killing threads I vaguely remembered something bad about that. Now, that I looked it up, it turns out that is basically impossible to properly kill a thread from the outside.
Look, if it was only Bethesda using this technique, I'd probably agree with you and shrug it off as just another example of poor craftmanship from their side, but some of the games with the least bugs I encountered use it as well, so there must be some point to it.