Elder-scrolls IV Oblivion

Feedback on past, current, and future development.
User avatar
AnyOldName3
Posts: 1729
Joined: 26 Nov 2015, 03:25

Re: Elder-scrolls IV Oblivion

Post by AnyOldName3 » 23 Mar 2020, 23:54

We suspect that the original MWScript compiler did dumb stuff like read uninitialised memory, which means it's technically not even guaranteed to produce the same output if run twice on the same code. That's not even something that can be expressed by a formal grammar (although I guess you could argue that it's just an ambiguous language and multiple parse trees are valid for the same input without specifying which you'll get when).

Oblivion is probably better than MWScript. By the time they got to Skyrim, they used Bison, and Bethesda using an external tool or library is usually a sign that something's gone horribly wrong.
AnyOldName3, Master of Shadows

1Zero
Posts: 20
Joined: 09 Feb 2020, 18:44

Re: Elder-scrolls IV Oblivion

Post by 1Zero » 24 Mar 2020, 15:02

AnyOldName3 wrote:
23 Mar 2020, 23:54
We suspect that the original MWScript compiler did dumb stuff like read uninitialised memory, which means it's technically not even guaranteed to produce the same output if run twice on the same code. That's not even something that can be expressed by a formal grammar (although I guess you could argue that it's just an ambiguous language and multiple parse trees are valid for the same input without specifying which you'll get when).
The size of the set of of possible strings in memory is 2^(Memory Size), an astronomic value for modern memory sizes. The set it recursively numerable (You can write an algorithm listing all possible finite strings), however not necessarily a recursive set.
Well, based on your description, MWScript really sounds like a hack job on BGS part.
Oblivion is probably better than MWScript. By the time they got to Skyrim, they used Bison, and Bethesda using an external tool or library is usually a sign that something's gone horribly wrong.
They used Bison? Nice, Bethesda ascending.
I hope Oblivion scripting engine does not access random memory addresses, we want out compilers to be nice and deterministic. I expect it to be implementable with a common parser generator, which wont be necessary if the OpenMW parser can be sufficiently easily adapted to parse Oblivion.
I have a plan.

Post Reply