Compatibility with later BGS games

General discussion regarding the OpenMW project.
For technical support, please use the Support subforum.
Post Reply
Hydrolox
Posts: 1
Joined: 01 Jan 2020, 13:13

Compatibility with later BGS games

Post by Hydrolox »

Okay, now this may not be the correct place to post this, but what exactly are the remaining challenges for (usable) support for later BGS games (TES4,TES5,FO3,FNV,FO4)?
User avatar
Capostrophic
Posts: 794
Joined: 22 Feb 2016, 20:32

Re: Compatibility with later BGS games

Post by Capostrophic »

Oh, lots of exciting stuff, though it also depends on your definition of "usable". It's not impossible to make OpenMW a barebones world viewer, as demonstrated in cc9cii's videos.

On a basic level, OpenMW is an asset parser (it usually needs assets to work with and work in general) in the same way as the original executables are. There are a few kinds of assets it needs to parse:
1. Content files (excluding scripts), or so-called plugins. This is the main thing, the one that defines the game worlds of Bethesda, the one with the information about the quests, dialogue, NPCs, locations and so on. OpenMW's current ESM reader is very basic and only supports reading (and saving) Morrowind-like ESP and ESM files. You'd need to add all the record definitions and new capabilities of newer ESM formats to this ESM reader.
2. Textures. Image information. It's one thing that fortunately didn't change in a while since Morrowind. OpenMW should be able to load all textures from Morrowind up to Skyrim (2011). However, SkyrimSE and Fallout 4 which are based on DirectX11 introduce the support for newer texture formats (BC6, BC7 and more) which OpenSceneGraph - the libraries behind OpenMW's rendering and scene graph system - doesn't support at the moment. It shouldn't be too difficult to add them however as the support is there in OpenGL and all of your video cards. It can be an issue.
3. Sounds. These are tangled with lip sync information in newer games. While FFmpeg can load any audio file in principle, in Skyrim and later they are fused with lip files. These need to be read.
4. Scripts. Something should happen in the game and that something must not be determined by the engine programmer. Oblivion, Fallout 3 and New Vegas extend the scripting language used in Morrowind a lot while Skyrim replaces it with a new scripting system based on Papyrus (used in Fallout 4 as well). Of course script parser needs to be updated as well to cover the new scripts.
5. Meshes. Models and animations. Something that is being covered in mentioned textures and the building blocks of the game worlds. OpenMW's current NIF loader only supports 4.0.0.2 NIF version files, which are used in Morrowind, while newer games include meshes that are using much more recent NIF files which OpenMW can't load. So NIF loader needs to be extended to later versions. Also they define Havok physics properties of objects in later games, and OpenMW currently struggles with repliicating Morrowind's primitive physics system.
6. Finally, archives, or BSAs. OpenMW 0.46.0 builds could load the BSA archives from Morrowind up to Skyrim (2011), in Fallout 4 the format has changed a lot, e.g. for BA2s texture streaming was introduced, which is a really serious optimization of texture loading process (in basic terms, textures are stored in a way that different mip map levels of different textures are only loaded when they need to be, depending on the distance of an object to the player). SkyrimSE meanwhile while isn't very different from Skyrim has the BSA files compressed differently.

That disregards the need to replicate the gameplay of the more recent games. Shouts, anyone?

I'm working on 5 albeit very slowly, so far there's some very limited support for Oblivion (and... Civilization IV) meshes in my fork. cc9cii introduced 1 and 5 to an ancient revision of OpenMW, but that work isn't fully published and can't be ported easily to the newer OpenMW. As mentioned, 6 is partially finished (because a part of cc9cii's work was in fact ported), but it's not very useful without 1 and 5. 2 and 3 are probably not really a concern atm. 4 isn't necessary for a world viewer, but is a must for a "usable" support. All in all it'll most likely take decades to get to the point where early 21st century games can all be reasonably "played".

Also there's one concern that it would be possible to load assets from later games in different games and on non-desktop platforms much more easily, leading to problems with Bethesda if we decide to advertise that. But we'll see.
User avatar
akortunov
Posts: 899
Joined: 13 Mar 2017, 13:49
Location: Samara, Russian Federation

Re: Compatibility with later BGS games

Post by akortunov »

Hydrolox wrote: 01 Jan 2020, 13:33 what exactly are the remaining challenges for (usable) support for later BGS games (TES4,TES5,FO3,FNV,FO4)?
The short answer - everything.

Also Capostrophic forgot about UI and game mechanics.
User avatar
Sslaxx
Posts: 233
Joined: 12 Aug 2011, 18:59
Location: Malvern, UK
Contact:

Re: Compatibility with later BGS games

Post by Sslaxx »

akortunov wrote: 02 Jan 2020, 10:02
Hydrolox wrote: 01 Jan 2020, 13:33 what exactly are the remaining challenges for (usable) support for later BGS games (TES4,TES5,FO3,FNV,FO4)?
The short answer - everything.

Also Capostrophic forgot about UI and game mechanics.
And third party dependencies - Havok, Speedtree, Facegen and so on. Skyrim's UI uses Flash, too.
Post Reply