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!

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!