Oblivion Support in OpenMW: Organisation and Planning

Anything related to PR, release planning and any other non-technical idea how to move the project forward should be discussed here.
Roncon
Posts: 4
Joined: 22 Jan 2019, 23:46

Oblivion Support in OpenMW: Organisation and Planning

Post by Roncon »

Hey, everyone.

So, basically the reason I'm writing this post is because I have an interest in helping to create Oblivion support for OpenMW and then supporting OpenOB in TES3MP.

I've been poking around and I see that work on this has already started with this merge request.

I guess my starting question is, is there any sort of roadmap for this? Are there any issues with the current version of OpenMW that need to be fixed before work can start? Is there a known group of developers already working on this?

I am, of course, very new to the codebase and architecture of OpenMW, and as such I don't expect to begin contributing right away, but with a clear roadmap it becomes a lot easier to breakdown things into small tasks that even a beginner can start looking into. After that it's just trial and error and lots of feedback from more seasoned developers.
User avatar
Ravenwing
Posts: 335
Joined: 02 Jan 2016, 02:51

Re: OpenOB Organisation and Planning

Post by Ravenwing »

Not to rain on your parade, because enthusiasm for making OpenMW better is certainly always appreciated, but this may be a bit premature. I am not a dev, so feel free to take everything I say with a grain of salt, but at this stage, I think the best way to make OpenOB happen is to help OpenMW reach 1.0 and get dehardcoded. Oblivion's mechanics are by and large similar to Morrowind's, and much of these could be fairly easily taken care of post-dehardcoding by just tweaking some of the attributes/skills and how they work. Roadmap-wise, this is also when the project will be much more open to merging significantly new features. Let me share some more of my thoughts on this by answering your questions.
Roncon wrote: 23 Jan 2019, 00:05 I guess my starting question is, is there any sort of roadmap for this? Are there any issues with the current version of OpenMW that need to be fixed before work can start? Is there a known group of developers already working on this?
No. Yes. And kind of. Implementing Oblivion in OpenMW is not part of any of the project's official goals/existing roadmap. That is not to say it has never been discussed, as obviously it has, but supporting Oblivion is so far removed from our current set of goals, it has not seriously been thought through by the main devs as far as I know.
This implies that there are in fact significant issues with the current version. Devs would be better able to answer this in a refined way, but basically, if we can't play and mod Morrowind yet, then we obviously can't do that with Oblivion.
The only known devs working on this would be cc9cii, and he isn't exactly one of the main devs of OpenMW as far as I know (not that his work isn't great).

In terms of roadmap, generally we have a few milestones. First, full reimplementation of Morrowind and a fully functional CS are our 1.0 goalposts. This is significant because we can't really make most of the proper post-1.0 advancements until the CS is working enough to take advantage of them. Immediate post-1.0 is laid out in Zini's design document (linked for your viewing pleasure). General goals for post-1.0 include dehardcoding, so that more of the basic mechanics can be easily and fundamentally changed by modders, and adding a scripting language, so that modders can access more of the engine's inner workings for more powerful and stable scripts. A probable goal that has been mentioned for the 2.0 milestone is to merge TES3MP into the main codebase.

As you state that one of your eventual goals for OpenOB is to utilize TES3MP, it seems prudent to hold off on some of this until the 2.0 mark happens. Admittedly this is far far into the future, so it may not be realistic to wait that long, but I have a few more thoughts in response to the next bit.
Roncon wrote: 23 Jan 2019, 00:05 I am, of course, very new to the codebase and architecture of OpenMW, and as such I don't expect to begin contributing right away, but with a clear roadmap it becomes a lot easier to breakdown things into small tasks that even a beginner can start looking into. After that it's just trial and error and lots of feedback from more seasoned developers.
Enough people are excited about Oblivion in OpenMW that waiting until post-2.0 is probably not realistic or entirely necessary, that just makes merging with multiplayer functionality potentially smoother. However, many parts of the Oblivion engine are things many of us would like to see in OpenMW. Real-time ragdoll physics, "radiant"-AI, skill perks at level-up, horses/mounts, character model customization, an actor voicing system, are all things that would be fun to implement in OpenMW as we move closer to the goal of being a general purpose engine. As you are not familiar with the code base, working on current OpenMW goals would put you in a much better place for eventually focusing on one of these once the time arises. I see no reason why most of these wouldn't be enthusiastically merged post-1.0, and keeping future TES titles in mind while developing these I think would generally be regarded as a smart move.

There are some other thoughts I have about some of the more difficult to reconcile features of Oblivion and Morrowind as well as trying to load Skyrim into OpenMW, but I'll wait for them to be brought up before discussing further. This should hopefully help you get an idea of where things stand.
User avatar
cc9cii
Posts: 523
Joined: 28 Mar 2013, 04:01

Re: OpenOB Organisation and Planning

Post by cc9cii »

I don't believe there's any real co-ordination for Oblivion development and of course getting OpenMW 1.0 is (and should be) the focus of the devs.

Having said that I'm experimenting with an old version (0.36) to get various stuff working. I view that as proof-of-concept rather than production quality code. Lots of things are working and even more things are not working. I'm hoping that I can release the NIF code soon and see what happens thereafter.
User avatar
psi29a
Posts: 5355
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: OpenOB Organisation and Planning

Post by psi29a »

OpenMW has a lot of long term goals, in the following priority:
* OpenMW 1.0 == Morrowind support
* OpenM-CS 1.0 == A bare-bones toolkit way to make OpenMW compatible games and mods
* OpenMW-MP == merging the long running TES3MP fork into OpenMW for multiplayer-support
* Post-1.0 dehardcoding
* Support for other games: TES4, TES5 (and related engines/games).

So if people would like to contribute to ANY of these goals, great, and we'll support and guide you into getting these all into OpenMW. That being said, the OpenMW core-devs are focused on priority issues.

This is not to discourage you! If you feel a tickle and want to work on something you think is neat and interesting or beneficial to OpenMW, please do!

OpenOB, if that ever happens, should behave just like the TES3MP fork, with the intention of being merged back into OpenMW.

If this is something you want to push forward, please take up that torch and coordinate with us. cc9cii has been doing the lion's share of experimenting, testing and work. Part of that work is recently been merged back into OpenMW proper thanks to the massaging hands of Azdul! So thank them both and perhaps you guys can coordinate here for further development.

I believe the next step is to forward port cc9cii's work on NIF reading and changes to openmw-cs.
User avatar
Azdul
Posts: 12
Joined: 28 Dec 2018, 13:44

Re: OpenOB Organisation and Planning

Post by Azdul »

There are already projects attempting to create open source engine for Fallout 3 / New Vegas (SugarBombEngine), or even open source engine for all Elder Scrolls and Fallout games (OpenNuka).

All those projects need similar features to OpenOB to start off the ground:
- SpeedTree equivalent
- FaceGen equivalent
- RadiantAI equivalent
- reading new versions of file formats already used in OpenMW
- unit tests / automatic testing of common engine functions
- Oblivion-like physics

It does not really matter in which order those preliminary features are implemented. Or in which repository, as long as repository is kept up-to-date with main line OpenMW. Most features can be implemented without making assumptions how final OpenOB architecture will differ from OpenMW.

IMO due to all volunteer nature of all these projects, it is quite hard to make concrete plans and roadmaps at early stage. However, if one of those features will be implemented, working, with functionality covered by unit tests, and released to the public with appropriate license - active open source projects will pick it up, and the feature will bring us one step closer to having one day fully open source Oblivion engine.

BTW. https://github.com/cc9cii/ branch is much further ahead with Oblivion integration if you want to try to implement SpeedTree or FaceGen. As far as I know no one even attempted to implement it, and it seems to be fairly independent from other features. However, those are definitely not easy beginners tasks ...
Last edited by Azdul on 23 Jan 2019, 15:26, edited 2 times in total.
User avatar
psi29a
Posts: 5355
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: OpenOB Organisation and Planning

Post by psi29a »

Have a look at the result of one OpenMW branch (by cc9cii)

https://www.youtube.com/watch?v=5R2mwGgwKbM

https://www.youtube.com/watch?v=ab1NTlm4JTg

Roncon
Posts: 4
Joined: 22 Jan 2019, 23:46

Re: OpenOB Organisation and Planning

Post by Roncon »

First of all, I want to thank you all for your replies. Now I feel like I have a much better picture of the project's status and it's goals. I really appreciate that you were honest and realistic while still encouraging me to try my hand at contributing to the project.

Now that I better understand the current situation, I would be just as excited to get OpenMW to version 1.0 since I have never worked on a game engine source code before (always sounded terrifying). I think it could be a fantastic learning opportunity for me and it would give me a chance to give back to the open source community after all it has helped me throughout the years.

I would imagine the best place to start would be at the Join the Team forum, explain my skills and then you guys can help to point me in the right direction where I might be able to start contributing?
User avatar
lysol
Posts: 1513
Joined: 26 Mar 2013, 01:48
Location: Sweden

Re: OpenOB Organisation and Planning

Post by lysol »

Sure, do that!
User avatar
psi29a
Posts: 5355
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: Oblivion Support in OpenMW: Organisation and Planning

Post by psi29a »

That's wonderful to hear. :)

I modified the topic title to read:
Oblivion Support in OpenMW: Organisation and Planning

This could be a great place to do exactly that.

If you're interested in extending OpenMW's NIF support to load in later versions of the format (Oblivion, Skyrim, Fallout3, NV, Fallout4, etc.), cc9cii has been leading the charge here. This also opens up the ability for tools to be used from these later games to create assets that would work in OpenMW (and of course, ultimately Morrowind) with no porting between formats!

I mean using later Blender, Maya3D, 3DStudio Max versions for Oblivion, Skyrim, whatever to create NIFs that can be used inside OpenMW and OpenMW-CS.

Then we're not longer ham-stringed by using super old Morrowind plugins only supported by Blender 2.48b...
User avatar
psi29a
Posts: 5355
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: Oblivion Support in OpenMW: Organisation and Planning

Post by psi29a »

More progress from cc9cii:

https://www.youtube.com/watch?v=QEobWGJm0ss

creature idle animations and walkthrough oblivion plane, a hellish landscape with crystal clear morrowind sky :P
Post Reply