Page 36 of 38

Re: Elder-scrolls IV Oblivion

Posted: 26 Feb 2020, 19:37
by Capostrophic
Some basic Fallout 3/New Vegas format mesh loading there.
Image

Re: Elder-scrolls IV Oblivion

Posted: 26 Feb 2020, 20:38
by silentthief
EXCELLENT - I've always wanted to bust a cap in fargoth :D :D :D

ST
ps, in all seriousness, it is good that this is progressing.

Re: Elder-scrolls IV Oblivion

Posted: 28 Feb 2020, 14:10
by psi29a
We should really think about pimping out this forum with some like buttons and such...

Re: Elder-scrolls IV Oblivion

Posted: 21 Mar 2020, 00:14
by 1Zero
@cc9cii

I would highly appreciate if you could release your progress on loading into Oblivion. This would allow me to actually integrate my own work on the scripting system into yours. Of course, as a software architect, I absolutely understand the need and the feeling to only release well implemented code and don't want to share any "experimental stage" code, so on the other end: take all the time you need. I just don't want to do anything redundant (I would fail at any attempts to reimplement physics either way) and will just wait.

Re: Elder-scrolls IV Oblivion

Posted: 21 Mar 2020, 04:18
by cc9cii
I am working on it ;)

As far as the OpenMW code is concerned, whatever I've done must be considered not much more than just a test framework. Most of my focus has been on the various libraries so far, be it ESM/ESP, FaceGen or NIF. So I don't really think there will be overlap with what you're doing. (especially since all my stuff is done with Ogre)

I'm more and more inclined to simply push whatever I currently have, anyway, even if they are subject to a wholesale change at a whim.

Re: Elder-scrolls IV Oblivion

Posted: 21 Mar 2020, 19:56
by 1Zero
Your work so far as I have seen it in your youtube uploads is impressive and I can see the tedious reverse engineering that had to be done to achieve this. Based upon your release, I intend to replace the MW vanilla lexer first with a automatically generated table driven DFA, compile. Then the parser, codegen and finally the Bytecode Interpreter. For the sake of getting results quickly I will likely skip an own codegen and just load vanilla compiler generated bytecode so that I can start with necessary Oblivion adaptions to the interpreter right away to finish the compiler later. It needs 100% compatibility with vanilla scripts either way. My goal for this year in terms of OpenMW is to get some Oblivion scripting and game logic running, based on your fork.

Re: Elder-scrolls IV Oblivion

Posted: 23 Mar 2020, 22:05
by AnyOldName3
MWScript is an unrestricted grammar due to the original parser being written without consulting anyone who'd ever been involved with anything similar before. You're going to have a bad time if you try and use off-the-shelf parsing techniques.

Re: Elder-scrolls IV Oblivion

Posted: 23 Mar 2020, 22:42
by 1Zero
With MWScript you refer to OpenMW's parser or Morrowind original parser? (I strongly assume the latter) Either way, Morrowind and Oblivion's scripting are fairly similar looking.
Do you have any theoretical argument for parsing Oblivion being Typ-0? Obviously the scripting system itself is equivalent to a linear bounded TM but parsing it should be Typ-1. Checking on Morrowind Scripting closer (Which I never used) it appears to be grammatically basically identically to Oblivion - in which case there would be no need to replace the parser).

Re: Elder-scrolls IV Oblivion

Posted: 23 Mar 2020, 23:10
by AnyOldName3
I'm referring specifically to the original parser. It had bugs, and that made parsing sensitive to things that aren't neatly expressable with a formal grammar, but we have to support them because content relies on them. Sometimes it's people's workarounds to the bugs and other times its someone with no idea what they're doing just pushing buttons until the compiler spat something out.

Re: Elder-scrolls IV Oblivion

Posted: 23 Mar 2020, 23:21
by 1Zero
Ohh yes I was sure there are some horrors hidden in MWScript with things not always being quite straightforward when parsing the language, especially such a relatively niche language. This alone doesn't imply a grammar is unrestricted.
I don't see any feature of Oblivion Scripting that would require Typ-0 parsing. C++ parsing is turing complete because at compile time, it is possible to embed any turing machine, or more elegant a universal TM given the description of an arbitrary TM as input, in a template https://netvor.tk/~umage/docs/3rdparty/ ... 02003).pdf
making it impossible to predict whether compilation of a C++ source code ever terminates (... without the help of super-turing computation (like a Zeno machine), which we don't know the real universe supports).
That's one of the reasons why there is no complete formal definition for C++, it would be enormously huge.
Still, I have to determine whether the original parser can be used for Oblivion without major adaptions (Obv. new Game functions were added), which would be nice, saves work. Still, I would replace the lexer with a table driven DFA once cc9cii released his fork.