Zini wrote:Consistency? We are replicating the behaviour of MW, unless there is a very strong contrary indicator.
The game allows objects to be scaled outside of the 0.5-2.0 range and it runs fine with it. On load, however, the scale gets clamped, so the object gets the incorrect scale when loaded. This is clearly a bug in the vanilla engine (either it should never allow it to go outside that range, or it should handle the scale beyond that range correctly). AFAIK we're not replicating bugs unnecessarily, and indeed, one of our stated goals is to avoid recreating bugs the vanilla engine suffers from whenever possible. I've yet to hear a valid reason why this bug needs to be replicated, particularly with the issues* and security holes** it introduces.
* Issues:
1) Objects that want to be outside the 0.5...2.0 scale now have to have a constantly-running script, which does nothing but check the object's scale every frame on the off-chance the user reloaded a save, to work around the bug. Either that or set a GMST, which just puts us right where we should've been in the first place (and hope nothing else tries to set the GMST back).
2) It makes modding the object (via another mod) difficult since the scale is set via an active script rather than a record that can be edited. Depending on the script and the author's wishes, this can make it impossible to supply an edited script whose only difference is the scale value.
3) Makes it harder for content creators since the object's Scale field may not accurately reflect the actual scale of the object in game.
4) Makes it harder to batch, since objects that get modified at run-time are are more difficult to batch properly.
** Security hole:
1) Allows scripts to detect a state they have no business knowing. This in turns allows them to screw around with the player's saves, doing things that may not be immediately obvious and cause problems that can be attributed to the engine.
And for all that, I can't name anything useful it enables.
You can have large and small scaled objects in MW. It just takes a tiny bit of scripting.
Scripting objects in MW isn't the best thing in the world, given how each object can only have one script attached to it. If something is already scripted, it causes more unnecessary work for the modder.
But yes, it is completely up to the content developers which features they use. And it is also up them to consider the resulting compatibility problems.
So the fewer compatibility problems we create, the better.
The less difference we have in the behaviour between OpenMW and MW, the better, especially if it costs us nothing.
Except it does cost us. The relevant engine code may be small, but the potential issues aren't. The added work content developers may have to do, the possible issues they have to watch for, the possible bug reports we have to handle, the extra resource strain on the engine... there's more to it than a simple flag in the loading function.