image ©Maxim Nikolaev
Interview with CMAugust 2024-05-12 - jvoisin

Good morning, who are you, and have you always been a month?

Only for a little while. My previous moniker was CMTuesday, or was it?

When did you join the project and why?

I first heard of OpenMW in late 2015, around the release of 0.37.0. The MrOpenMW Release Commentaries hadn’t caught up by that point, but the FAQ video successfully piqued my interest in a clean-room reverse engineered engine that could run Morrowind better than the original. I had bounced off of Morrowind in my first attempts to play it, but after the release of Skyrim ignited my interest in The Elder Scrolls like never before, I was ready to try it again in this new engine. And believe it or not, that was the first time I finished Morrowind’s main quest.

It was already a very playable experience in OpenMW even then, but there were some minor visual and UI hiccups along the way – these I documented and submitted as bug reports, which were promptly fixed by scrawl, who was still working like a machine after moving the engine from OGRE to OSG for 0.37.0. Seeing that level of responsiveness encouraged me, and thanks to the ease of being able to download a fixed build the next day, the testing process was in a sense more satisfying than if I had just played the game and moved on. Of course I played some more, and noticed some more oddities, and opened more issues on the tracker. And I basically never stopped.

I’ve been told you’re part of the “OpenMW Public Relations And Assorted Propaganda cabal”, is that so?

It’s news to me, but maybe I haven’t been let in on the joke! First and foremost my role in OpenMW has been as a tester, giving feedback to identify any bugs, issues, or features that will help to improve the user experience. I generally interact more within the OpenMW team than outside it – or to put it another way, if I’m pestering anyone, it’s the devs themselves. Of course, I do regularly wade over to the various Discord servers such as Morrowind Modding Community as well as the big projects like Tamriel Rebuilt to see what’s being worked on there, and occasionally I put in my two cents when certain topics like rendering performance are being discussed. That topic comes up fairly often with a game as CPU-intensive as Morrowind, and mods are constantly hitting that performance ceiling. I don’t care to do any preaching or propaganda for more users to pick up OpenMW, because as far as I’m concerned the engine speaks for itself with each new version that’s released. It’s good enough for me to know that the OpenMW team itself is in great shape, with a community Discord server that’s friendly and focused on the business at hand.

Out of all your time playing OpenMW and looking for bugs, which issues have been the most satisfying to see resolved?

For me it probably has to be the visual side of things, as in rendering. For a long time particles weren’t lit correctly, at least according to how Morrowind originally rendered them. Particle effects are usually the thing that brings the most “pizazz” to any game, and Morrowind’s effects aren’t great to begin with, so it irked me that they looked a bit worse in certain lighting conditions. I was also bothered by the light rendering in general, since while OpenMW faithfully replicated Morrowind’s fixed function lighting, the lighting in Morrowind is just hideous. Quite apart from the infamous 8 lights limit, the attenuation model used was so whack1 that it produced lighting seams and unsightly blinking everywhere you looked. Cleaning all this stuff up and replacing it with something better was not for the faint of heart, requiring knowledge of not just rendering but the many rules and quirks of OSG and OpenMW engine itself, and there was more than one attempt by different developers over the years with several false starts. To my eternal gratitude, all of this was finally resolved by wazabear in 0.47.0 and 0.48.0, with some further tweaks by Capo and wareya to end up in 0.49.0, and all with such finesse that OpenMW now has a direct upgrade path to clustered shading2 at a future date.

How come you know literally everything about OpenMW graphics even though you never wrote a single line of its code?

“Talk is cheap. Ask questions. You don’t ask, you never learn.”

When I notice something about Morrowind that looks broken, or runs slow, or is simply not as pretty as other games, I ask why. The OpenMW team is after all stuffed with people knowledgeable about such things, and more often than not a guru like AnyOldName3 or wazabear will explain it to me. Or, on the occasion they can’t recall off the top of their head like a Zen master, they might do some investigation of their own, in which case we both end up learning something.

Moreover, one of the nice things about identifying problems for open development is that you get to see the solutions. I read every issue and merge request that comes through on the tracker at least once, which usually conveys the gist of what was wrong and what was changed even if I don’t understand a lick of code. I also read each message that comes through the Discord, and each new post on the OpenMW forum before that. To sum it up, eventually some of that knowledge soaks through. But I certainly don’t know it all, and any day can bring new surprises.

Has OpenMW lived up to what you expected when you first discovered the project so far?

Looking back, I’d say OpenMW has nearly fulfilled all my original hopes from when it first caught my attention. At that time there was no distant land, object paging, groundcover, shadows, fancy shaders… and while all the Morrowind essentials were more or less in its place, not all the thousands of little pieces that make up the game fit quite right. Things are much further along today. OpenMW has reached parity with vanilla Morrowind in nearly every conceivable way, and for a stickler like me, that’s saying something. Out of all those original expectations, the only thing that still falls short is the dehardcoding of all relevant systems, and that is now well underway with the Lua API. But that’s not the end of the story, because completing the various features doesn’t simply close chapters of the OpenMW book – it opens new ones.

What’s the current or next big thing you’re hyped about?

Bindless textures3 will be a huge deal if it lands, and because one is related to the other, clustered shading* is likely to come with it. Aside from the advent of Vulkan, this is likely to be the biggest leap in rendering performance OpenMW will ever see. When that happens, there is suddenly scope for huge (and expensive) leaps in visual fidelity such as point light shadows. In addition, we could soon have a native physically based rendering path4 and support for its materials to go with it. Altogether, there’s a lot to be excited about in OpenMW’s future.

Any favourite mods?

When I’m not testing stuff, I run a fairly light setup, mostly related to fixes like Morrowind Optimization Patch and Patch for Purists. I think my favorite mods haven’t been invented yet. If I had to describe it, I think I’m most inclined towards mods that provide glimpses of a Morrowind that is less clumsy and more refined in every respect, polished and fun from end to end.

If you could change one thing about OpenMW, what would it be?

Giving it the power to dispense good luck and motivation to its many talented developers, so it can be developed still further.

  1. Morrowind’s whack attenuation model: CMAugust refers to Morrowind’s suboptimal use of the traditional lighting calculations. Unlike in most modern games and later Bethesda games, Morrowind’s light sources fade according to inverse-linear law rather than according to the physically accurate inverse-square law which means that it can take a while for the produced lighting to “disappear”. Due to Morrowind’s low light source limit this often results in it getting cut off prematurely. In OpenMW’s shader lighting, the used formula is tweaked to let lights fade earlier, preventing most apparent instances of lighting seams and pop-in. This does mean the game becomes darker overall. In 0.49.0, shader lighting will be further adjusted to minimize the resulting differences. ↩︎
  2. Clustered shading: another shader pipeline technique where light sources are bound to small segments of the screen (clusters) rather than objects. It allows to significantly increase the light source limit without running into the act’s usual performance penalties. ↩︎
  3. Bindless textures: a shader pipeline technique that makes it possible to use textures without binding them to the scene. This allows to significantly reduce the number of draw calls and thus the CPU load, similar to atlasing but avoiding its usual drawbacks. ↩︎
  4. Physically based rendering (PBR): the rendering approach often employed in modern video games in which texturing defines the object’s optic properties in a standardised way consistent with real physics. ↩︎
2024-05-12 - jvoisin - No pingbacks so far.
Interview with psi29a 2024-04-11 - jvoisin

Hello and who are you?

Resident cat herder, metaphorically speaking and a dad, literally speaking. I, in fact, have no cats but it seems that I’m in charge of 3 children, a few teams at work and other teams spread all around the planet who work on FOSS stuff. An ex-patriot who settled in Europe and rebuilt his life. When there is free time, I do in fact play games, but I like hacking, tinkering and travelling more.

When did you join the project and why?

I’m a little fuzzy on the details, but it was likely around 2011, when 0.11 was released. I provided Debian and Ubuntu packages for the project. At this point, I was operating under the pseudonym BrotherBrick — to keep my work on OpenMW separate from my day job. I’ve had psi29a since the 90s, so once I talked to legal at my work to make sure everything was okay, I switched back to using my old handle. I had lurked around earlier of course because I was totally into finally completing the main quest while running Morrowind natively on Linux. So that was my overriding goal. Years passed, but I’m still putting off completing the main quest, which is probably why I’m still around.

This was my first post on the forum I think, in 2011.

I’ve been told that you’re the one currently wearing the “Benevolent Dictator for Life” hat, and that you’re the third hero to do so. Is that true? And if so, is it heavy?

It is. Not all heroes wear capes. That being said, it’s more like being a glorified cat herder. FOSS developers will do what developers think is cool, neat or interesting to work on. As a hobby project, as Project Lead, one can only give guidance, make suggestions, propose solutions, represent the project to the outside world, remove roadblocks and in the end still get unanimously outvoted, which is fine because the OpenMW doesn’t really need a BDFL in the traditional Linus Torvalds sense. 

Much of the work comes down to coordination and communication between developers, with upstream libraries we use and downstream in distributions. We can and have provided fixes for many of the libraries we use and also provide patches downstreams to fix issues that would prevent OpenMW from running. 

Sometimes I have to put on my dad hat or my therapist hat and help developers suffering from burn out or personal issues. I mean, I’ve known most of the developers for over a decade and bonds form. They are all welcome to the 1.0 release party at my house :)

So you do plan on continuing to lead the project for the foreseeable future?

<_<  >_>

I’m not as involved as I would like to be for such a role. I think I only got here because of how long I’ve been active in the project, not necessarily a master of shadows or a master of lights. If new leadership wants to step forward, I’ll support them. 

What have you been working on recently?

Recently not so much; I had a small break with the project to focus on my family. I can’t express how much I value boundaries, setting them, having a good work life balance for one’s own mental wellness. A few months ago, I reconnected with OpenMW thanks to the positivity of the community and developers which I’d like to think I helped foster. 

While away, I reconnected with an email penpal and worked on vsgopenmw: a fork of OpenMW that runs on Vulkan, specifically VulkanSceneGraph, the successor of OpenSceneGraph which we use as our rendering middleware library. It was nice to collaborate again, even though it was slightly unorthodox. Many patches were sent upstream to VSG and vsgopenmw now also runs on macOS via MoltenVK and Linux.

I guess I’ll let the cat out of the bag here and mention that I’m currently working on the OpenMW 1.0 roadmap. It’s been going on for the past few months and the plan is to release this roadmap sometime after 0.49’s release. Its release will not mean that 0.50 will be the first 1.x release, but it will make it a point that OpenMW is taking a “1.0” release seriously and setting things up for getting the project across this threshold and beyond. It’ll also be the opportunity to make the fabled “1.0 release party” happen.

Has OpenMW lived up to what you expected when you first discovered the project so far?

Absolutely, I feel like OpenMW reached “1.0” for me in 0.46, when it was mentioned to me that I could theoretically complete the main quest line with a reasonable approximation of the original spirit of Morrowind, just without the constant crashing. It’s gone now above and beyond with all sorts of graphical (object paging), scripting (Lua), physics (threaded) enhancements. That it does so on the three major systems is a bonus, because while emotionally I only care about Linux, in practice I have to care about Windows and macOS as well. 

When I first discovered the project, Windows was more of a novelty and most developerss used Linux, no macOS work to speak of. I think I floated around T-posing in a cave for a long time, and exteriors only had buildings with no terrain. So we’ve come a long way.

What’s the current or the next big thing you’re hyped about?

Seeing Lua support maturing is wonderful, however, the next “big thing” I’m hyped about is VSG support. For me, it’s a way of future-proofing Morrowind. OpenGL is dead, it’s not even being maintained and in some cases like macOS, it’s been abstracted away with another layer of bugs upon the existing ones. 

There are many other things to be hyped about as well including VR that exists in another long-lived fork, and multiplayer, TES3MP. That being said, with the amount of work going into de-hardcoding for Lua, I’m waiting to see what cool stuff the community comes up with.

Speaking of Lua, what’s your opinion on MWSE, and also MGE XE? Shall we expect them to be ported one way or the other unto OpenMW?

MWSE and MGE XE are a great bit of kit; it’s great for extending Morrowind.exe and giving modders an amazing amount of freedom. I believe there continues to be value in continuing work on MWSE, specifically in addressing the stability issues. Hooking into parts of Morrowind.exe that are prone to failure and rewriting it to be more failure resistant would go a long way in addressing one of the largest pain points of playing Morrowind on the original engine. Major thanks to all involved in these two projects, those who work on them have also indirectly helped OpenMW with research.

Saying that Lua is similar across MWSE and OpenMW is a misnomer; what’s been done is that we have a Domain Specific Language (DSL) tailored to each engine. There is no way to reconcile this as the underlying engines are not the same, which is good from a legal standpoint as it proves to Bethesda that OpenMW is a clean-room reverse engineering effort. This might not be a good thing to hear to end users who really don’t care, but this is very important to us to keep the project in a safe legal position.

Some of the work done for both MWSE and OpenMW can be bridged though, as we could sit down and define higher-level API that modders can use that in turn would make platform-specific calls to either MWSE or OpenMW. In theory a determined modder or group of modders can already build off what both projects have done and create the common API. I think both projects would support this endeavour and help provide support. 

As the saying goes, don’t let your dreams be dreams.

Any favourite mods?

Oh gosh, the original one that got me into OpenMW was Zini‘s ambitious Ultima Total Convertion which originally used Morrowind.exe to remake Ultima 9 with the original script/ideas. Ultima IX: Redemption is what brought Zini to OpenMW as it was clear that Morrowind.exe couldn’t handle the vision. You can hear more about this with Zini’s interview with DarkElfGuy here. This was also why he was adamant about having OpenMW-CS, our editor. 

So while the project was abandoned, the assets were released and I contacted as many modders as I could find and got their permission to release a ‘libre edition’ that allows anyone to use the assets based on the CC-BY or even CC0 licences. You can download them here.

I also want to throw out how much I respect the Tamriel Rebuilt team and all the blood, sweat and tears they’ve poured into their labour of love. Same goes for the MWSE and MGE XE contributors.

If you could change one thing about OpenMW, what would it be?

Nothing… really, well, maybe the ability to “play” other TES games and Fallout. ;)

2024-04-11 - jvoisin - No pingbacks so far.

To eliminate any potential confusion, this post was originally published on the 1st of April, and Unity is terrible. If you must use an engine other than OpenMW for your next project, why not try an open-source alternative such as Godot?

Original article below:

As technology surges forward, video games are becoming more visually stunning and performant than ever before. To keep pace, OpenMW must evolve. With OpenGL being phased out in favor of Vulkan, GPUs gaining more muscle, and CPUs packing an increasing number of cores, we must either adapt or risk obsolescence.

This is why we’re making a bold move and switching our main engine once again. In the past, we’ve transitioned from OGRE to OpenSceneGraph. And now, the time has come to embrace the future and choose Unity. 

Why Unity?

Unity is not just something that will dramatically alter the course of our progress — it is also a platform that aligns more closely with our values. Despite being closed-source, Unity boasts several advantages over our current engine: solid leadership, first-class mobile support, a healthy enterprise culture, generative AI integration, publicly traded status, and a rock-solid reputation in the industry.

Exciting Prospects

We’re thrilled about the possibilities that this move opens up for us. For one, it means that we will finally be able to transpose OpenMW from C++ to D♭. Also, while we currently only target the niche operating systems Windows, macOS and GNU/Linux, the switch will let us effortlessly provide OpenMW builds for mainstream platforms such as Google Stadia, modern BlackBerries and Samsung TV. Furthermore, Unity’s advanced high-performance graphical capabilities will open the door to cutting-edge rendering techniques like ray-tracing, ray-coloring, ray-scribbling and ray-watercolor-painting.

Fueling the Ambitions

Unfortunately, embracing Unity means we’ll need to gather funds to cover its embracing fees. Since OpenMW as a whole does not accept donations, we’ll fund the project tentatively codenamed “Tribunity” through three primary avenues:

We can’t wait to release Tribunity and for you to enjoy it with us!

  1.  terms and conditions may apply ↩︎
2024-04-01 - jvoisin - No pingbacks so far.
Interview with jvoisin 2024-03-23 - jvoisin

Who are you?

I’m jvoisin, a security engineer by trade. I’m involved in way too many projects and software, and ramble write on a regular basis on dustri.org

Where did you get your avatar from, and are you actually a beaver?

Every time someone asks me this question, it’s a different animal: beaver, rat, shrew, otter, mouse, ermine, but it’s none of them! It’s the bear from I want my hat back from Jon Klassen. And yes, it’s me, I’m the bear from the book. I’m happy I got my hat back, and I’m more careful with it now.

When did you join the project and why?

I think I’m a bit the Tom Bombadil of OpenMW: I’ve been there since the beginning, and I will likely be there at the end, always in the background. I “joined” the project around mid-2008, when Nicolay Korslund announced OpenMW. Back in the day, it was written in D, used OGRE, Audiere, OIS and Monster, and lived on openmw.snaptoad.com.

I’ve been following it on the Google group, on openmw.net and finally on openmw.org. I survived the transition from D to C++, from OGRE to OpenSceneGraph, from GitHub to GitLab and a couple of project leader changes.

I joined the project because Morrowind is one of my favourite games. I remember going to my local multimedia library, and seeing this yellow/brown-ish video game box on the shelf. The computer we had at home couldn’t display the game at first, since it couldn’t handle the 640×480 resolution, but the booklet fascinated me. When we got a better screen, I could finally play, and it was so impressive at the time: you could do whatever you wanted: follow the main quest, talk to anyone, hunt, fight, become a wizard, a warrior… it was incredible. A couple of years later, in 2008, I was looking to make it run on a Linux machine, and stumbled upon this new project of complete re-implementation. The rest is history.

I guess I should write a blog post here about the history of OpenMW at some point.

So what have you been doing/working on this whole time?

In the beginning I didn’t do much. And now that I think about it, I never did much to be honest. I started by joining the PR team, doing blog posts and translations. I know C, so I can read some C++, and thus contributed a bit to the codebase, but never did anything major or groundbreaking, mostly fixing bugs and trying to make contributing to OpenMW easier and the code better. I ended up becoming the main system administrator, taking care of our server, website, wiki and so on. Nowadays, I mostly do sysadmin, code reviews and taking care of this very blog, as the amount of time I can dedicate to the project has shrunk significantly lately.

Any particularly cool things you’ve worked on?

I had a lot of fun writing fuzzers for OpenMW. They found some bugs, but I think the best part is that it led me to profile OpenMW to make things run faster, resulting in a better OpenMW for everyone. It also improved its robustness against all kinds of weird mods people are coming up with.

What have you been working on recently?

I’ve been interviewing various people from the core team, hence the surge of activity on this very blog. I find it fascinating that random people from all around the world, with different backgrounds and interests, are spending their time trying to work together on OpenMW, a custom engine for a ~22 years old game. It’s incredible really, when you think about it!

Has OpenMW lived up to what you expected when you first discovered the project so far?

I think so. Heck, when I discovered the project, it could render some statics… and that was pretty much it. When OpenMW was able to handle and render some parts of the terrain, everyone was so excited! Now we have Lua bindings for most of the mechanisms, and some gorgeous shaders that I wouldn’t have dreamt of, a prototype for multiplayer, and so much more!

What’s the current or next big thing you’re hyped about?

Everyone is raving about Lua support, but I think that the future move from OpenSceneGraph to VulkanSceneGraph will bring a lot of great things, if it happens: performance improvements, portability, easier eye-candy…

Any favourite mods?

Tough question. I spent hours on Wiwiland, the French Morrowind modding community, downloading and playing so many of them. I think that my favourite small mod is Maison du voyageur, a hut near Seyda Neen. As for bigger mods, I’m always impressed by how big and well-done Tamriel Rebuilt is, of course. Maybe one day they’ll ship with OpenMW by default, who knows?

If you could change one thing about OpenMW, what would it be?

I would love to have it written in a different language. Even though C++ a popular language, it has so many drawbacks: mistakes are easy to make, compilation times are abysmal, so many subtleties everywhere…

In that case, what language would you rather be used?

No no no, I’m a security engineer, I only point out things I don’t like, I’m not here to provide actual actionable solutions.

More seriously, I don’t think there are good choices in 2024. Some might say Rust, but it comes with its own set of problems, and porting the project to a new language would be a monstrously large effort anyway. I think the best we can do is to working on making our C++ as less awful as possible, with things like modules to reduce compilation time for example, or leveraging modern tooling to make contributors’ lives less dreadful: sanitizers, our glorious continuous integration, our growing test suite… 

It feels like an uphill battle, but to be fair, this is how most interactions with computers feel anyway.

Anything else you’d like to add?

I’d recommend anyone who likes Morrowind look into OpenMW, and if you’ve got some free time, contributions in any form or shape are always welcome!

2024-03-23 - jvoisin - No pingbacks so far.
Interview with Foal 2024-03-04 - jvoisin

Who are you, and for how long have you been a horsie?

I am and have always been a little horse. Neigh.

When did you join the project and why?

2020. I was dabbling in VR at the time and thought it would be cool to play Morrowind in VR. I was aware of the OpenMW project since a couple years prior and decided to implement it myself. For a while I was hardly a member of the project, just working on my VR fork occasionally asking questions in the Discord. I don’t remember exactly when I ended up being an actual team member though.

What have you been working on recently?

Dehardcoding combat. Recently my Lua API for animations and skill progression were merged which were a big roadblock to dehardcoding combat. The goal is to dehardcode combat entirely, so that the entirety of combat can be modded in any way. For example, to allow implementing Oblivion/Skyrim style combat, or VR “realistic” combat, as mods rather than as engine hacks.

So you’re part of the OpenMW Lua cabal ‽

I don’t know about any cabal. I am just dehardcoding the things I need to be dehardcoded to meet my ultimate goal, which is to do VR as a mod instead of as a fork full of engine hacks.

Keep your secrets, it’s ok. Any cool things you plan to implement that you haven’t already started working on?

Once dehardcoding spellcasting is in review/merged I’ll begin to dehardcode weapon combat. After that I don’t have anything non-VR planned, so I’ll be off to bring the VR fork up to date with .49 and port as much of it as I can to Lua.

Has OpenMW lived up to what you expected when you first discovered the project so far?

I’m not sure I had much in the way of expectations. When I first found the project I was stunned that someone had gone so far in writing an open-source engine able to play Morrowind, it wasn’t something I would have expected to ever see! So at the time I was simply happy to find a way to play Morrowind that didn’t crash at every turn. I’ve never been the kind of purist who needs every detail to be exactly like the original game, I considered its current state as fully playable at the time, probably in 2018.

What’s the current or next big thing you’re hyped about?

The Lua API for RTT viewports. This will hopefully allow me to move some of the VR-related RTT to Lua mods, and as this API will include scene graph manipulation it might let me do VR-related manipulations of the scene graph too. Especially, pointer geometries and body tracking. Although this might still need some additions/tweaks to allow same-frame modifications, which is required for VR.

What’s your favourite OpenMW mods?

Tamriel Rebuilt is an easy favorite, and I always play with a leveling mod like NCGD.

If you could change one thing about OpenMW, what would it be?

Assuming I could just wave a wand and have it: porting OpenMW from OpenGL to Vulkan of course!

2024-03-04 - jvoisin - No pingbacks so far.