image ©Maxim Nikolaev
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.
Interview with Urm 2024-02-23 - jvoisin

Who are you, and why do you have such a cool nickname? Does it stand for Universal Reimplementation of Morrowind?

I’ve had this nickname for quite a long time, probably since I was 11 or so. As you might have noticed from my GitLab account, my surname is Uramer. Urm is a shortened version of that.

My avatar has a somewhat more interesting story. It’s the character Urm the Mad from a comic book by Philippe Druillet, which I’ve only become aware of after having the nickname for over a decade. He’s wearing the Papal Tiara, which was photoshopped on by a member of the Mortal Online forums. I’m still not sure why, but I rolled with it.

When did you join the project and why?

This is surprisingly difficult to answer. Technically, my first merged PR was in February 2018, 5 years go – but it was a small fix entirely guided by Greatness7 mesh research. I’ve been added to AUTHORS.md for some minor contribution in March 2019, but at that time I was more interested in TES3MP.  I would say I properly joined the OpenMW team with the Lua UI API merge 3 years ago.

Originally I got interested in contributing through playing TES3MP — with its many rough edges — and wanting to improve the experience. In some sense that’s still ultimately my goal – to arrive at a more polished multiplayer experience, but currently I mostly see OpenMW as a great learning experience. OpenMW has a strong review culture, and I’ve become a much better programmer through it.

You’re mentioning Lua, and I think you’re one of the members of the OpenMW Cabal. Why contribute to this area instead of some other? 

I might even be its current mastermind, hence the Papal Tiara obviously, but don’t tell anyone I said that.

Initially, I saw Lua as a natural step in the long road of merging TES3MP into OpenMW. However now it’s the most exciting and feature-rich part of OpenMW’s development, and the answer to many of the project’s goals. It is also the area of the engine where my skillset is most directly applicable.

What’s your opinion on MWSE? Any plans to have some kind of Lua-powered OpenMWSE implementation?

I’ve not really used MWSE much myself, so I can’t say I have an opinion. It seems to meet most of its goals, meaning it’s good :) OpenMW Lua design goals are quite different, meaning that an OpenMWSE of some kind is rather unlikely. Many fundamental parts of both MWSE and OpenMW Lua designs make it impossible. MWSE exposes too much of the original engine’s internals – which OpenMW could not feasibly replicate, while OpenMW Lua is designed with multiplayer compatibility in mind, which is not compatible with the highly synchronous design of the MWSE API.

Ironically, implementing a subset of OpenMW Lua in MWSE would be more doable, although there are limitations there too. For example, OpenMW has the navigation mesh, and some API related to that – that would be very challenging to add to MWSE. UI implementation is also radically different between MWSE and OpenMW, and so on.

One idea that’s been tossed around is some kind of simple common Lua API, similar to MWScript (but less cursed) to make it easier for modders to pick up. That’s definitely possible, just needs design and implementation work put into it. Of course, you’re more than welcome to come help make this happen :)

What have you been working on recently?

Recently I’ve been finishing menu scripts, started by ptmikheev. They enable lots of cool features, like autosave scripts, meta-mods that affect multiple game saves, and so on. The long term plan is to dehardcode the main menu almost entirely, which will enable elaborate main menu mods, or complete replacements for games made with OpenMW.

Any cool things you plan to implement that you haven’t already started working on?

The next step for me probably going to be a Lua input binding menu. For now we just have a simple single-button key binder available. I would like to replace it with something very ambitious, Steam Input style. That would allow players to create control schemes as complicated (or simple) as they like, and for Lua scripts to support all input methods that OpenMW supports now and in the future – keyboard, mouse, controllers – including touchpads and gyro, and eventually touchscreens, maybe even natively support Steam Deck controls. Another important input type are VR controllers – it would be a shame if Lua mods didn’t just work out of the box when VR is finally merged.

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

My first experience with OpenMW was between 0.44 and 0.45 releases. At the time the only real expectation I had was to be a more stable and easy to use vanilla experience, and OpenMW mostly delivered that even back then. Nowadays I have massively more ambitious expectations of OpenMW – but now it is also up to me if it will live up to such.

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

I’m excited about spellcasting dehardcoding: that will allow many cool mods on its own, and it paves the way for combat dehardcoding, which will enable so many amazing mods! I feel like this is an area where OpenMW Lua could achieve much more than MWSE mods have so far.

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

This is a somewhat unfair question – one should strive to be the change they want to see in the world. However, if I could magically change one thing – it would be the CS part of OpenMW getting more contributor attention.

Any cool things you’re working on that aren’t OpenMW-related?

In the last half a year I’ve picked up a new hobby – music, specifically playing Ocarina (no, I’m not a Zelda fan). I’m working on a related mod for Morrowind, but I don’t have anything specific to announce yet.

So what you’re saying is that you working on making it possible to use an ocarina as a controller in OpenMW?

That would be a funny mod, and it’s been done for Zelda, so time to work on the microphone Lua API I guess! However, what I had in mind was writing some music to the in-game book lyrics, to be played when the player reads one of those books.

Anything else you’d like to add?

I would like to encourage anyone interested to try their hand at contributing to OpenMW. We have lots of low hanging fruit with the Lua API rapidly advancing, and it’s very satisfying to see a change you’ve made for a game you love.

2024-02-23 - jvoisin - No pingbacks so far.
Interview with Lysol 2024-02-15 - jvoisin

Who are you, and is it true that you’re killing 99.9% of viruses and bacterias?

It’s true! It’s not very impressive either, since a small area can have like hundreds of billions of either which means there would still be millions left. I should never be allowed at a hospital. Weird that I actually do work at a hospital.

For real though, the name Lysol does in fact not have anything to do with the cleaning agent with the same name (it’s not even available where I live as far as I know). Well, it does indirectly, but that’s because a really heavy album by the weird band Melvins was named after said cleaning agent. And *my name* was taken from that album because I was a fanboy of that band in my teens.

My actual name is Joakim and I work as a radiographer (or radiology technologist, if the reader is from the US) at a hospital here in Sweden. My developing skills are limited to HTML, CSS and editing existing code of javascript and PHP. Truly impressive.

When did you join the project and why?

I found out about OpenMW when 0.18.0 was released if I recall correctly. There were no animations, no combat, no menus, and executing the engine simply launched you directly into a cave with clipping disabled. For some reason I thought this was the most exciting gaming-related thing I had ever seen. So I started hanging around. A lot. I did some modding. Then one day I ended up volunteering to write a news post on the official blog.

Are you one of those reasonable people who learned C++ to contribute to OpenMW?

What? No? I’m not that smart. I learned how to generate somewhat decent normal maps because of OpenMW, but that’s it. Never did any coding and most likely never will.

Ok, but while you didn’t contribute code, you’ve spent a lot of time making it easier for people to use OpenMW, mainly by working on the documentation and translations.

I did do some of that, yeah. The documentation I did was mainly the guide on how to convert normal maps made for Morrowind Code Patch or MGE XE to OpenMW. I now realize I almost forgot I did this and should probably re-read it to see if I wrote something stupid. I probably did some more documentation as well.

Regarding the translations… Yeah, well, when OpenMW got its translation system implemented, I reacted the same way I did when the normal mapping feature was implemented: “neat, gotta try this out”. So now, pretty much everything* in OpenMW that can be translated is translated to Swedish. A language literally no one will ever ask for to get OpenMW translated into. But it was fun! I learned a lot of new Swedish words, ironically.

*everything as in “everything until Andrei Kortunov decided to make the entire launcher translatable”.

You’re the Head of Public Relations And Assorted Propaganda, how do you feel about this?

I can’t talk about that.

Seriously though, it’s been fun. I did quite a few news posts on the main page back in the day but then kids happened and I started having less and less time to do such things. So I rather feel like a femur than a head to be honest. I still hang around the Discord-channel though and try to be helpful whenever I find the time for it.

I’ve been told that you’re also an avid modder on both Oldwind and OpenMW, is that true?

Well, not that much specifically on Oldwind really. I don’t think I ever released a Morrowind-mod pre-OpenMW actually. But I did *play* Morrowind a lot before OpenMW. I also did a lot of modding during that era, but for other games. During my late teens in the late 00s, I did a lot of modelling and texturing for Warcraft III and Rome: Total War (yes, the first one). I won’t say which project I took part in because the work I did back then is horrible. I’ve changed the username since, so you can’t backtrack me, stalkers.

But anyway, when OpenMW became a thing in my life, I returned to modding again, this time being in my 20’s instead. Then kids happened (stay away from it if you want to be a modder for the rest of your life) and I have barely done any modding since.

You were one of the first modders to create mods with normal and specular maps for OpenMW. Do you want to tell us a bit more about them?

That’s likely correct, yes. In 2016, our lord and fallen hero scrawl implemented normal, specular and parallax mapping into the then freshly baked OSG-version of OpenMW. I got really really hyped and pretty much started F5’ing Nexusmods to see the flood of sweet normal mapped texture mods coming out. Except they didn’t. Texture mod after texture mod came out and no one cared about normal maps.

So I went “fine, I’ll do it myself” and started to re-learn photoshop and teaching myself how to best use diffuse-to-normal map-generating software. So this old thread happened, which later became this thread. Yes, I had to dig deep to find this piece of Lysol history, be grateful.

So, I really just wanted to see how Morrowind would look with 2010 technology. For those that don’t know, normal maps are textures with specific colors that instruct the engine how light should fall on an object, to be able to “fake” a complex shape that wasn’t actually there on the model. You can in other words have a flat modelled surface but still have the light fall on it as if the surface was bumpy and detailed. This gives better looks, but with a lower performance hit than if you would have modelled the shape in 3D instead.

This banner here for example is completely flat, but the normal map makes it look like it is a bit wavy.

With your modder hats on, what is OpenMW doing right, and what is terrible (and should be fixed)?

Right:

Terrible:

Speaking of mods, what’s your favourite one(s)?

This one. Anyone still using my imperial towns-mod is an idiot. This was done by someone with actual skill and not only motivated by “no one else is doing this”.

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

Oh boy. I got hyped when animations got implemented. Then I got hyped when support for the start scene in the boat got implemented. Then I got hyped when melee combat was implemented. You know, I think OpenMW surpassed my expectations like two hundred times by now.

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

I would like to say “the sum of all the de-hardcoding-related Lua merge requests lately”, but that would be boring. But I guess wazabears upcoming clustered shading is pretty hype-worthy.

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

Change the scripting language from Lua to JavaScript.

Seriously though. Getting the VulkanSceneGraph port done and merged with the project, to bring OpenMW into the future, from OSG to VSG, from OpenGL to Vulkan! But that is being worked on slowly, so we’ll hopefully get there one day.

Anything else you’d like to add?

A big thanks to all of the people, still active or now inactive, that have been part of making OpenMW what it is today. You’ve all been a big inspiration and I’ve had so much fun hanging around with you on the internet. I never thought I would be part of a community like this for more than ten years and still find the project fascinating!

2024-02-15 - jvoisin - No pingbacks so far.
Interview with Evil Eye 2024-02-09 - jvoisin

Who are you and are you really an eye? What’s your villain origin story? Why do you have so many names? Are you really the Batman?

I’m Evil Eye, or Assumeru when that name isn’t available. My contract says I’m a devops engineer, but I’m really a detached eyeball with psionic powers who types by blinking. Using a computer is bit of a hassle, but overall I’d rate being me 8/10; would recommend. I am not Batman, although that is something Bruce Wayne would say. As for my dank and secret past, it all began when I was but a mere pupil…

Okay, jokes aside, I first saw Morrowind over at a friend’s in 2005 or 2006 – summer, I think. I got a small tour: a look at character creation, a bit of the world, and a cliff racer. It was a case of love at first sight for me and I ended up ordering the game from eBay when I got home. Fast forward a bit and I’m messing around with mods and the Construction Set. At this point in time I didn’t know anything about 3D modeling other than how to use NifSkope and I’d look at the models added by whatever mods I’d download and try to use them in different ways. One such mod, I think it was Abu’s Retreat, added some sort of wooden wall decoration that looked vaguely like an eye. I tried to set it up as a creature. Obviously that failed as it had no animations whatsoever, nevermind creature animations, but the name stuck and I used it when I registered my account on the (now defunct) Bethesda Game Studios Forums. As for the other name, Assumeru was a character I played. A glass armor wearing, Trueflame wielding dunmer who I first completed the main quest with, as well as Tribunal’s main quest, a good number of faction quests, and some of Tamriel Rebuilt‘s Telvanni content. I ended up joining TR shortly after, in 2009.

When did you join the project and why?

OpenMW first crossed my screen in the form of a thread on the aforementioned Bethesda forums. I thought it was interesting in much the same way I thought the MCPMGE, TR, and S:HotN threads were interesting so I watched it for updates. The project wasn’t really a game at that stage, more of a tech demo, but it was progressing rapidly. You can still see the videos from 2012 on the YouTube channel.

For the next few years I’d download the latest version once in a while, play it, and report whatever bugs I ran into. In 2014 I reported #1138, by 2016 it still hadn’t been fixed so I decided to take matters into my own hands and, with copious help from scrawl, fixed the issue. Then I fixed a handful of other minor issues until I got back into TR development in 2019 (after doing next to nothing for the project in the intervening ten years.) I was working on a quest (that finally got released in last year’s Andaram release) and I’d written some scripts that didn’t work in OpenMW due to #2311. I wasn’t about to roll over and accept that and, well, you could say things got out of hand.

So to actually answer the question, I joined the project because OpenMW was doing things that annoyed me. And my only C++ knowledge being a Tic-Tac-Toe program I wrote when I was 13 or so wasn’t going to stop me from changing that.

So you’re ones of those completely reasonable people who learned C++ to work on OpenMW?

I wasn’t going to defend my sanity! I did have a little C and PHP5 experience, the latter being an embarrassingly thin wrapper around its C and C++ roots sometimes.

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

I’d say it’s done better than I expected. Of course when you consider that the Bethesda forums and a good number of interesting projects that posted there have gone the way of the dodo since then, my expectations might not have been that high to begin with.

You’re the resident bug-fixer in chief of the project, what’s so exciting about fixing all those obscure edge-cases?

I don’t know about exciting, but it’s gratifying to see the reduction in people complaining about OpenMW compatibility. In the non-MWSE sense that is. It (mostly) just works now.

Speaking of MWSE, what’s your opinion on it in the context of OpenMW?

In that context I suppose its functionality is something to strive for in OpenMW, but it’s not something I give much thought to. It’s too broad a subject, really.

What have you been working on recently?

I started the 0.49 development cycle with a good amount of partial dehardcoding. As we get closer to branching, I’m trying to get in more minor issues that are easy enough to resolve. Thanks to Capo and Abdu I’m also playing some ancient mods of dubious quality in an attempt to find more bugs.

What was the most exciting thing for you to work on? Oh, and since you’re fixing so many bugs, what’s your favourite one?

I had fun figuring out how Cortex’s transformation scripts and GCD’s levelling scripts worked for #3905 and #2036, respectively. Bug fixing has led to me playing lots of mods I otherwise never would have. Some of them very impressive, a lot of them pretty bad, but all interesting enough for someone to have reported a bug.

My favourite fixed bug is #4414, at least for today. How we could have ever lived without NPCs redressing themselves is beyond me.

Any cool things you plan to implement that you haven’t already started working on?

Technically I’ve already laid some groundwork by starting that partial dehardcoding mentioned earlier, but I want to dehardcode magic. Having rewritten a large part of the magic code not that long ago, it’s a daunting prospect, but I want those new summon icons we have in Tamriel Data to show up in OpenMW already! Other than that I’m not a big planner; I just do whatever I feel like doing.

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

Just one? Guess I’ll have to close my open merge requests.

Any cool things you’re working on that aren’t OpenMW-related?

The province mods are pretty cool… and always looking for more hands. So if you don’t feel like you can contribute to OpenMW, try there. How’s that for a segue? I promise it’s not a pyramid scheme! Not since the Necrom pyramid got removed anyway…

Anything else you’d like to add?

A very general shout-out to anyone involved in any of the things mentioned above. A much less general observation that mwscript is deeply cursed. And last but not least, please keep the bug reports coming, folks!

2024-02-09 - jvoisin - No pingbacks so far.