The OpenMW team is proud to announce the release of version 0.48.0 of our open-source game engine! Grab it from our Downloads Page for all supported operating systems and Dwemer devices; enjoy Morrowind’s 20 anniversary in style.
So what does another fruitful year of diligent work bring us this time? The two biggest improvements in this new version of OpenMW are the long-awaited post-processing shader framework and an early version of a brand-new Lua scripting API! Both of these features greatly expand what the engine can deliver in terms of visual fidelity and game logic.
As usual, we’ve also solved numerous problems major and minor, particularly pertaining to the newly overhauled magic system and character animations.
Unfortunately, this time you will not be able to watch a release video by his majesty Atahualpa and his excellency johnnyhostile since they are both heavily occupied by real-life matters. – But fear not! This release announcement post will cover the gist of what this new release brings in text form, so prepare for the read of your lifetime!
As covered in our feature highlight blog post from last May, 0.48.0 introduces support for post-processing shaders. With wazabear’s sweat, blood, and titanic effort, the new release takes a leap forward in eye candy and can now support advanced visual effects like bloom, godrays, ambient occlusion, and many more. Shader maestros from our community have been playing with the framework for a while, so while OpenMW’s built-in assortment of shaders might seem somewhat conservative, with a little digging around the community repositories you’ll be able to transform the way your game looks.
Pressing F2 will open the in-game post-processing HUD where you can toggle any installed pretty effects on or off, or tweak their settings. To learn more about this new shader system, please take a deep dive into the extensive documentation wazabear has written.
As we speak of graphic improvements coming in the new release, you might think post-processing would overshadow everything else – but that’s not true at all! The Lord of Lights and others also managed to get rid of two major long-standing issues with distant object rendering.
Every 3D game uses a so-called depth buffer during rendering. As objects are drawn, the depth of every sample of every object is written into that depth buffer. This way objects closer to the camera can properly cover objects farther away from the camera. That’s all fine and dandy, however, the traditional implementation of a depth buffer distributes the possible depth values very poorly. With floating point numbers from 0 to 1 being used, the scale is very imbalanced towards the buffer’s near end, or the value of 0, while numbers closer to 1, that is, the viewing distance limit, are much more sparse. The visual consequences are violent flickering, and Z-fighting of distant objects, terrain, and water when the depth buffer just couldn’t keep up with the detail. This problem was even more apparent with low values of near clipping distance OpenMW requires for compatibility with Morrowind rendering.
And, well, 0.48.0 remedies this. The reverse-Z depth buffer wazabear added heavily improves depth buffer precision at large distances without sacrificing the precision of the rendering of closer objects. This effectively eliminates the pesky flickering with no perceivable performance impact. Nice!
Now, there are still caveats when you take this seemingly magical pill. While it doesn’t require bleeding edge hardware, some platform and video driver combinations might have trouble supporting this feature. If you encounter any problems, please report them to our issue tracker, IRC, or Discord.
As for the second woe, if you ever tried a province mod from Project Tamriel, you might have noticed the unpleasant vibration of objects and characters. While this is an inevitable consequence of how computers work when floating point numbers are rounded, OpenMW now uses double precision floating point numbers for physics interpolation and object transformation matrices. This should reduce the severity of flickering by around 4 billion times at a somewhat minor performance cost and greatly extend the vibration-free playable area for any province mods released up to the year 2090.
There’s actually another unscheduled extra batch of Halloween eye candy distant objects receive: 0.48.0 brings a couple of optional visual tweaks to help improve fog rendering. You can now let fogged objects blend nicely with the sky on the horizon and toggle an alternative exponential formula for the distribution of the fog. See for yourself!
Anything else when it comes to visuals? Indeed there is. Rain ripples have been added a few releases ago, but their artificial appearance might have seemed underwhelming. Thanks to wareya, this release contains a much needed visual overhaul for these ripples – though not yet the generic water ripples, sorry! In the in-game settings, you may choose between multiple levels of detail for rain ripples depending on how well your system handles them.
wazabear just couldn’t stop on what has already been mentioned: he implemented a new rendering technique, so-called soft rendering, which smoothens the rendering of object intersections. This is particularly interesting for particles, which often clip through other objects. Enabling soft rendering for all particle systems is an option you can enable, and model artists can also enable soft rendering for other geometry using NiStringExtraData (see our documentation).
Finally, 0.48.0 contains some fixes for particle and shader lighting, making some magic effect VFX less dull and preventing snow blindness on Solstheim.
Not yet straying too far from visuals, are we? Animations are also a major part of any game’s visual experience, and 0.48.0 brings a few corrections to the painfully produced implementation of Morrowind’s state machine. Most of them are the work of Capo and lay the groundwork for further improvements coming in 0.49.0.
Some of the most notable changes are those to blocking and spellcasting behaviour. Blocking no longer prevents movement and while there are still differences that a subsequent release will take care of, this makes the use of shields significantly more comfortable.
Spellcasting animation is now played even when the character has no Magicka to cast the spell. Curiously, Morrowind doesn’t play it when you fail to cast an already used power. You might remember that there was an option to play it when an enchanted item is used – well, in another curious case, Morrowind actually has an “animation” playing when you use an enchanted item in first person view! It is just a split-second change of the hands’ position to the direction you look at… Well, OpenMW now does that “animation” too.
Something that might or might not seem like a controversial decision, we discovered that Morrowind assets define some unused animations for equipping and unequipping spells for non-bipedal creatures. Sometimes they seem clearly unfinished, but sometimes they’re actually really interesting. We decided that benefits outweigh the negatives and enabled their use. When you play Morrowind, various spellcasting creatures like the Atronachs, Dwarven Spectres and Dagoth Ur himself will use these animations. Come to them through fire and war, see them for yourself and decide what you think!
While we’re going through the visuals, we can’t forget about NetImmerse and Gamebryo’s NIF format, which is still the main format for use with OpenMW. We’ve added the support for a few records and features Morrowind modders discovered relatively recently and found useful, to keep up with the active modding scene.
Two new record types Morrowind NIF format contains have been implemented in this release: NiSortAdjustNode and NiFltAnimationNode. NiSortAdjustNode is a kind of node that lets its children, either all of them or the transparent ones, be drawn in an artist-defined order, which is useful to work around transparency sorting issues. NiFltAnimationNode is a special kind of a switch node that switches between its children automatically based on a timer, which can be useful to create complex animations.
While OpenMW had NiStencilProperty implemented for a while for its primary purpose of enabling double-sided rendering, clever stencil buffer manipulations it allows in NetImmerse never worked quite right in OpenMW. Stencil buffer is another data buffer like the depth buffer, and manipulating the stencil test and stencil buffer write allows artists to make the engine draw different geometry depending on the way the player looks at the object, make objects that look like indents in walls which will be rendered “over” the walls and so on. Thanks to wazabear, this functionality is now supported.
Another record that up to now wasn’t fully implemented is NiPlanarCollider, a particle collider. OpenMW will now respect the dimensions of the collision plane it defines.
The final NIF addition of note is the support of geometry-based particle emitters. When a geometry node is used as an emitter and a special flag is set in NiBSPArrayController, it will emit particles as if the geometry’s surface was the particles’ origin. This also allows producing very interesting VFX.
That should be it regarding the visuals. We were giving spellcasting animations a look, so now we’ll look into the magic system itself. Basically, Evil Eye fixed everything. No, seriously. All of it just works.
…
Well, actually not all of it, but it’s really close now! Evil Eye overhauled the entire spell and magic effect processing system to be much more flexible and easy to work with, fixing plenty of old flaws in the process.
We’ll start with birthsigns, of course. One of the most popular birthsigns for a Morrowind player to pick is the Lady, which gives the Nerevarine a hefty bonus to Personality and Endurance. Personality affects how much the people you meet like you, while Endurance is supposed to influence the health bonus you get every time you level up. Except it didn’t in OpenMW. You see, previously abilities would act as magical fortifications for your stats instead of affecting the base stats like they would in Morrowind. And since health gain per level is based on the base Endurance, the Lady-induced Endurance fortification could only grant the character a bit of extra Fatigue. This has been corrected. Of course, this also means that you can’t get your Personality to 125 thanks to the Lady anymore… unless if you were to convert Lady’s Favor into a Curse. Curses are a different type of a permanent spell and will magically fortify your stats like before.
When it comes to magic effects, we’ve finally made Morrowind playable in OpenMW by making the expiry of the secret EXTRA SPELL magic effect, which is intended to undress its target, make the target re-equip their equipment instead of staying naked forever. As for spell effects of lesser importance, there’s a few to cover.
First, the visual effects for Calm, Frenzy, and Rally Creature/Humanoid won’t play on actors of the wrong type. The same is true for Turn Undead. Additionally, the effects intended for creatures now apply to all creatures, even undead and daedric ones.
Thanks to the research received from Hrnchamd, the author of the Morrowind Code Patch, the position and scaling of magic VFX playing on actors has been made much more accurate to Morrowind, and in fact, better in a way: we did not replicate Morrowind’s bug where, to calculate the scale, it deems some creatures two times smaller than they should be.
Reflect now mirrors Spell Absorption in that it is multiplicative. This means that each Reflect effect source produces a distinct success roll. Reflect can now also reflect non-harmful effects, doesn’t reflect scripted spells, and properly stacks with Spell Absorption effects depending on casting order.
Some not that invisible Invisibility quirks had to be taken care of too. You will stop being invisible when you actually release an attack, not when you initiate one, and NPCs will no longer seem to be able to observe you while you’re invisible – that is, they won’t greet you or look at you.
Paralysis is obviously supposed to prevent you from picking up things. And it did – but not when you picked up things with your mouse. This has been fixed. This also concerns the state of knockout and death, if you could somehow manage to open the inventory while, well, dead.
Restore effects will now properly restore stats Drain effects damaged and when you hit a target with an enchanted projectile, the projectile’s on-self enchantments will affect the target instead of the caster.
You might know about the quirk Morrowind has where the character’s Weight affects the horizontal velocity of that character. Well, Weight is also apparently supposed to affect the velocity of any magic projectiles the character casts for some reason. Starting with 0.48.0, this behaviour is replicated if the “normalise race speed” setting is disabled.
Aside from fixing magic, there were some other fixes to game mechanics of note, particularly AI. The player’s allies won’t react to the player’s crimes anymore, weapon-wielding creatures can now open doors again (does this remind you of anything?) and all creatures can equip portable light sources during the night. Equipped light sources also won’t be extinguished underwater if they’re not actively being held.
Alright, audio. Sounds are prone to get cut off in Morrowind. OpenMW 0.48.0 improves upon this so when you get too far from a sound that is still audible, the sound will quickly fade out instead of immediately going silent. This added transition makes the audible experience of flying away from the very loud Ghostfence noticeably less jarring.
In addition, to improve consistency with Morrowind, we had to allow sounds to continue playing even when their sources are gone from the worldspace they started playing in. This is done by using the sources’ new position in any worldspace they’re currently in as the sound source in the current worldspace. An interior cell is considered a distinct worldspace, sounds still won’t play if they’re too far from you, and these still playing sounds will also stop playing when you leave the current cell.
Then there’s physics, of course. For all its primitiveness in the original 2002 engine, there are many gotchas to consider. For example, in Morrowind – for whatever reason – scripted object spawning doesn’t automatically make the object physically there until its state is updated through other means or tricks, so you can walk right through it. Of course some mods and the Bloodmoon expansion of all things rely on this behaviour, so we had to replicate it.
But there’s also something we overlooked ourselves: the momentum you carry was not reset upon teleporting and entering a new location. Wearing the Boots of Blinding Speed and jumping into a canton’s doors doesn’t allow you to smash into the other side of the canton at Mach 1 anymore.
There’s this commonly known issue in Morrowind where actors standing on tall platforms don’t tend to stay put and may end up on the ground way below. It’s an animation issue, but apparently OpenMW had a completely unrelated issue with very similar symptoms: when cells were loaded, it would snap actors down before loading all the objects in the cell, sometimes causing them to be snapped down right to the terrain level, which it was especially prone to in the rare case the object the NPC is standing on is actually from a different cell. This should no longer be a problem.
There was also a case where OpenMW wouldn’t have snapped down actors when it should have done so. When actors, including the player, are teleported, they are typically snapped down to the ground level, as spawn points tend to be notoriously inaccurate. However, flying and swimming actors were exempt from this. It was discovered that this is incorrect, so we fixed this – teleporting to inactive cells will snap down these actors as well. One problematic situation was the player’s teleportation from Magas Volar back to Tel Fyr while levitating.
The UI has also received some improvements. It’s the little things. The effect list of spells and enchanted items is now aligned left, like in Morrowind, and, if you enable the option, you can zoom the world map using the mouse’s scroll wheel.
But there are also big things. The layout and skin files our MyGUI-based interface uses are now a part of the virtual file system, which means that files from other data directories can override them. This also concerns fonts: while Morrowind’s bitmap fonts were always a part of the game’s assets, TrueType fonts OpenMW supports could not be. In fact, standard distributions of OpenMW now include TrueType fonts to be used by default. These TrueType fonts are based on the open source fonts Ayembedt and Pelagiad. While your game can of course rely on the bitmap font setup imported from Morrowind.ini instead, there is a good reason to offer these fonts as an alternative, which is as follows…
OpenMW-specific UI additions that aren’t already covered by your content files’ game setting records can now be localised! With the newly introduced YAML-based localisation support, the in-game UI was painstakingly translated to the languages our contributors speak, including Russian, German, French and Swedish. To use the translated lines, you need to change the locale using the in-game settings. Localisation files are also a part of the VFS, to be used in… ahem, let’s not jump too far ahead. Now, where were we… Ah. The TrueType fonts are offered because the original bitmap fonts may not include the glyphs necessary to display the text: for example, the fonts from the original American English release of Morrowind do not include Russian Cyrillic characters. If you’re interested in learning how the localisation works in-depth, give the documentation a look.
If you’re a modding enthusiast, one addition you should love is the introduction of data directory and BSA archive configuration directly in the launcher. You will not need to manually edit openmw.cfg anymore to register archives or work with the data directory order.
That aside, the paths to configuration files OpenMW uses can now be redefined, meaning your OpenMW installation can become somewhat portable, though you can’t quite use multiple distinct OpenMW installations on the same device yet.
Font size and TTF resolution can now be set from the launcher for quickly setting up the crispiest font imaginable for your desired screen resolution.
We know people like things to be fast. Navigation meshes were added in 0.46.0, and for all the AI improvement they bring, generating them takes quite some time on some setups. In 0.48.0, generated navigation meshes are cached to the disk, improving loading times in locations that have already been visited in a previous session. You can also generate navmeshes for your load order using the launcher, so that going through every single location in the game to do the same isn’t necessary.
Of course, this release contains a great multitude of stability fixes that are too technical to explain in this overview. Them aside, there are also many, many mod compatibility improvements, and while we’re not going to cover all of them in this overview, you might still want to know that the following Morrowind mods, to our knowledge, should work in OpenMW slightly or much better than before.
…and potentially many others.
Great House Dagoth, The Underground and Welcome to the Arena mods have also received significant improvements, and Morrowland some improvements, but they still can’t quite be called supported yet.
There’s work on that front as well. cc9cii, a person with the nickname that might ring a Sixth House bell, did some magic, so OpenMW-CS, our editor, should load content files much, much faster now. unelsson has also made some changes here and there, greatly improving terrain editing performance and addressing a few problems.
It can also properly handle Persistent and Blocked record flags now. A newcomer, VidiAquam, has added an instance editing grid and the ability to snap instances to that grid in the various edit modes. This should make creating content much easier in OpenMW-CS.
Alright, alright, now that we’re done with all the interesting stuff, we can move on to the known issues and extended changelog and- what? There’s something else? Oh, right, there is…
Yes, OpenMW has its very own Lua scripting API now, dubbed OpenMW-Lua! The Great De-hardcoding is starting ahead of schedule, and Petr Mikheev and Anton Uramer are its pioneers.
Before covering what it currently offers, we’ll have to start with an honest disclaimer: you will not be able to run MWSE-Lua mods in this release. MWSE-Lua often acts as a light wrapper over the very guts of Morrowind’s executable. Unfortunately, while OpenMW might appear very similar to Morrowind on the surface, it does not resemble Morrowind internally, and trying to replicate every single little detail of Morrowind’s data structures, architecture and the way everything is tied together for the purpose would be counterproductive and frankly, take forever.
However, OpenMW-Lua is built with the prospect of supporting multiplayer and reaching parity with MWSE in mind, so we can only hope modders will be open to the idea of porting their mods to an OpenMW-compatible API at some point in the future.
But anyway, what does 0.48.0 Lua offer? Well, it’s not much, but it’s honest work! This early revision of the API gives scripts control over the camera as well as the means to create new GUI widgets, work with post-processing shaders, and some limited access to the game world. Of course, future releases will expand on this greatly as more parts of the engine are dehardcoded.
Mods that rely on OpenMW-Lua will need to include .omwscripts extension files, which are effectively text files that list the scripts and state what they’re going to run on. Aside from these files, mods must of course contain the scripts themselves. They can also include localization files – the same ones that are used for the UI strings and can be accessed through the API. Of course, there’s a settings API mods can work with to permanently store settings to be used across multiple game sessions.
For more information about the features of OpenMW-Lua and how to work with it, please consult the extensive documentation.
We should give some practical examples of the functionality the API can already offer. All the camera settings introduced in 0.47.0 are now configurable through the in-game settings menu. Some new mods that make use of 0.48.0 superpowers have also already been released:
So that’s it for Lua in this release, with many more API improvements still to come in future releases. This is also the conclusion of 0.48.0 feature overview. Thank you for having interest in OpenMW and reading all of this, and consider also reading the full list of changes below!
Known Issues:
New Engine Features:
New Editor Features:
Engine Bug Fixes:
Editor Bug Fixes:
Miscellaneous:
Finally, after much hard work to get all the cool new features ready for release, we have our first round of Release Candidates, or “RC” for short. RCs are simply release binaries for testing, to make sure everything is in order for a release. That’s right, testing! So we would be very grateful if you would download an RC for your OS of choice, test it a bit to see if it works without any issues and report any findings you make to our GitLab issue tracker. Please make sure to check first that whatever you find is not on the tracker already and that you’re running the latest RC.
If you just want to use OpenMW without hassle rather than test things, you’re probably better off waiting for the actual release or grabbing 0.47 from our downloads page.
Thank you and we’ll see you again on the day of the release!
To join in on the forum discussion, head over to our OpenMW 0.48 Topic
Almost half a year has passed since the last development blog post. But that’s okay, since what OpenMW lacks in public relations, team team makes up for in development — and we have some huge news for you this time. This post will only cover the latest progress by the way: there are a lot of things that have happened since last time we had a blog post, but we won’t really be covering those here. You’ll read about these changes in the changelog of the upcoming 0.48.0 release.
When you play modern 3D games and compare them to older ones like Morrowind, you’ll most likely notice a certain "punch" in the look of the game that the older games lack. The lighting effects, the colours and so on. This is often done through post-processing shaders, something MGE XE (a third-party tool for vanilla Morrowind.exe) users have been enjoying for a long time already. OpenMW users had to pretend that they had nice things like bloom, HDR, ambient occlusion, godrays or motion blur — all while the game in reality looked dull and boring. Until now that is.
Cody Glassman aka wazabear finally added a post-processing framework to OpenMW. This is probably the biggest graphical enhancement for OpenMW since the implementation of real-time shadows. Modded OpenMW setups will now be able to take a huge step forward in time when it comes to graphic effects.
OpenMW now provides a new file format called omwfx where the post-processing shaders are stored. This means shader developers have an easy way to create and tweak shaders that end users can easily install and manage for their games. Each shader can be turned on and off in one click and can even be fine-tuned through the super-handy in-game interface. The shaders can also be "hot reloaded", i.e, you can edit the shaders while the game is running. This is, of course, very useful for developers so that they can see the result of what they just wrote in real time without restarting the game.
One shader developer, zesterer, has already made their first contribution to the community. CMAugust took some great screenshots using these shaders. Have a look at the gorgeous shots here!
You can read about the various post-processing settings here. If you want to get an understanding of the new omwfx format, read about it here.
Speaking of easy ways for end users to install things, our launcher now supports adding and removing data directories and BSA files which allows you to manage your mods in the launcher’s GUI instead of editing a text file. A highly requested feature now delivered to you by Frederic Chardon, aka fr3dz10. The old text-based way of doing things still exists, of course.
Yes, of course we should talk about Lua. Much has happened since last time we wrote about it, and quite some mods have been released since then. To name a few, our legendary release video narrator Johnnyhostile released his Smart Ammo and Marksman’s Eye mods, our Lua developer uramer released the mod Attend Me and seelof and Greatness7 collaborated to release a mod called Of Eggs and Dwarves — which, by the way, is available for both OpenMW and MWSE-Lua!
While our scripting system already offers some cool modding capabilities, it has not reached its full potential yet. More of the game logic needs to be de-hardcoded until we get as powerful as the very advanced capabilities granted by MWSE-Lua. We’ll get there step by step, and each one is going to give more power to modders. But know that the road ahead is still quite long before we can even reach some kind of feature parity with MWSE-Lua.
One of the more recent additions to the Lua system is a settings menu, so that modders can add options to their mods for end users to customise their gaming experience. This very neat feature was brought to you by uramer.
If you’d like to have a go at making your own Lua mod, check out at our documentation!
Mads Buvik Sandvei aka Foal created his VR fork quite some time ago, and many people have been enjoying it. It was, however, something he wrote for fun and the code was not really something that could be merged with our official code. The density of the changes also made it hard for the rest of the team to review.
This is why Mads started to rewrite his VR feature and split it up into several smaller merge requests. One of the bigger ones, Stereo, was merged recently and as the name suggests, it adds stereoscopic rendering. He even added support for multiview, which basically is a way to render the stereoscopic views in one single pass, making it potentially much faster than the more basic way of rendering the two views with double passes. The only real catch here is that it only works with Nvidia GPUs, at least as of now.
More updates to OpenMW’s VR support are to be expected in the future.
After experimenting with GitLab’s wiki, we went back to our original wiki, where everyone is more than welcome to give us a hand with the content — whether it is about the development environment setup on your favourite Linux distribution or documenting particular game mechanics of Morrowind!
This wraps up today’s blog post. Hopefully, we’ll be able to update you a bit sooner next time. Until then, take care!
OpenMW has been in development for well over a decade now, and it has become a viable way to play Morrowind on almost every platform imaginable.
As a consequence, we have discussed possible future main goals for our engine but quickly realised that the current scope greatly limits both the engine’s potential and our developers’ creativity.
With the first iteration of Lua scripting support merged, we finally had our eureka moment: why not completely shift the focus of development to yet another class of games? This was a month ago, and today we – the former OpenMW team – are proud to announce the rebranding of our project to become a general-purpose engine for isometric RPGs the likes of Baldur’s Gate or Neverwinter Nights. OpenMW is no more, long live OpenNeverMind!
We have just released version 0.13.37 of our heavily altered engine. Grab it from here – but be aware that this version is still WIP and any savegames made using it won’t be compatible with 0.47.0 (you can, however, use 0.47.0 savegames with this version). For now, the movement controls are as follows:
Please also note that OpenNeverMind 0.13.37 still has built-in Morrowind support. This will be removed in future stable releases to avoid any copyright issues.
Check out our official announcement video by the always reliable Atahualpa and the forever faithful Johnnyhostile to see our improved defaults in action.
Thank you for your support and see you again for the next blog post which is going to detail our short-term and long-term plans for OpenNeverMind!
2022-04-01 - Atahualpa - No pingbacks so far.We took some time this year to overhaul, simplify and awesomify our web presence and infrastructure.
Ten years using WordPress and still kicking! But it was time to clean up the dust a bit.
First of all, we removed unnecessary plugins like akismet and its friends to only keep:
Moreover, since more and more people are browsing the web via their phones, we are more than happy that vtastek took the time to make the blog responsive, so that it looks great on mobile as well!
If you have a look at the sidebar, you’ll notice a handful of badges: GitHub, GitLab, Discord, matrix, Twitter, Reddit – all without a single line of JavaScript, as in, no tracking. Speaking of tracking: we also removed Google Analytics, which we weren’t using anyway.
On the backend side, we cleaned the database up by removing comments (which had been turned off years ago), post revisions, unnecessary users, and much more, reducing the size of our database by 60%.
All those small changes lead to a significant improvement of loading times: from around 9 seconds to 1 second!
Our plan for the future is to move away from WordPress to take advantage of GitLab Pages to run a static website instead. Any help to make this happen is more than welcome!
We’ve been using phpBB for the forums even before we had our blog, and it’s been working great. So not a lot has changed on this side except that we upgraded it to the latest available major version, granting us a minor performance boost and improved security. We also switched to MySQL for the search engine which reduces the database table and makes the search not only better but also faster. Moreover, we stepped up our anti-spam game: the forum should be kept tidy now with less human intervention necessary, and we’re now reporting spammers to Stop Forum Spam.
We’ve long been using MediaWiki (the same wiki software used by Wikipedia itself!) to document everything, along with a plugin to bridge accounts between the forum and the wiki. Now that OpenMW is slowly reaching feature parity with Morrowind’s original engine, most of the information on the wiki is no longer being updated. So we made our wiki read-only and available at old-wiki.openmw.org and moved the content to GitLab’s wiki, reducing the maintenance cost of our MediaWiki. Switching our old wiki to read-only allowed us to disable a ton of features. It also allowed us to make use of aggressive caching which significantly improves its performances and makes it way less taxing resource-wise.
We’ve set up a status page at openmw.org/status, thanks to UptimeRobot, to monitor all of our services and to get notified in case one of them goes down. Also, since this information is available to everyone, you can check for yourself if "openmw.org is down for everyone, or is it just me"? This uncovered an issue with our backup system: in the middle of the night (European time) our backups are kicking in, and were doing some heavy compression operations which result in a massive slowdown of the website, generating timeouts. We lowered the process priority of the backups, which fixed the issue and appeased our monitoring.
Our nginx config was overhauled and factorized to make our services’ configurations more uniform: same modern TLS parameters, usage of http2, same Cloudflare configuration, more efficient serving of big files for downloads.openmw.org, etc.
Since we’re automatically building OpenMW on every commit using GitLab’s continuous integration to avoid hammering NuGet, Chocolatey, Debian and co. too much, we’re using Nexus Repository OSS to act as a caching proxy. It has been updated to the latest available version, fixing a lot of nasty security issues. We also spent some time improving its loading time.
We ran OptiPNG and jpegoptim on icons/media to drastically reduce the size of images and, thus, our bandwidth consumption.
Our database engine, MariaDB, was tuned for performance as well as cleaned up: we purged old data, and optimized the rest.
Since we’re in 2021, all of our domains are now fully accessible over IPv6.
Automatic updates have been enabled via UnattendedUpgrades, so that our beloved sysadmin crew don’t have to waste time on mundane tasks and can sleep better at night knowing that security upgrades are installed as soon as they become available.
Finally, speaking of the sysadmin crew: we took steps to increase the bus factor, bringing nice side effects like increased motivation (it’s always funnier to do things with friends) and reduced burnout risks.