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.
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!
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!
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!
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.
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.
While there have been several huge announcements we’ve wanted to share with you lately, we decided to wait with these news until after the release of OpenMW 0.47.0 to avoid stealing too much of the hype. Sorry for that, but we hope you understand. Now, without further ado, let’s dig in!
Let’s just begin with, arguably, the biggest one. Petr Mikheev worked really hard on this huge contribution, and the extensive code reviews and feedback from the rest of the team were fantastic. The result is that the basic framework for OpenMW’s future scripting language, Lua, was merged into master a few months ago. This in itself doesn’t actually do much for the end user, but modders can already explore its functions. The real power, however, will be unleashed once gameplay mechanics, user interfaces, various graphical features and other exciting things are controllable through Lua scripts, in what we often refer to as the “de-hardcoding” of OpenMW. Some of this is currently being worked on, or even has already been merged, like Urm’s basic framework for a Lua-controlled GUI and Mikheev’s Lua-controlled camera and raycasting.
One important clarification needs to be made, though: OpenMW-Lua will not be compatible with MWSE-Lua, the 3rd-party scripting extender for Morrowind.exe. We aim to make our scripting engine at least as powerful as MWSE-Lua, but since MWSE-Lua is being developed for a different game engine, mods made for it will unfortunately not be compatible with OpenMW. Current MWSE-Lua mods will therefore have to be rewritten, or at least refactored, to be able to function in OpenMW.
And again, to make it perfectly clear: the implementation of Lua in OpenMW is still in its initial stage and will become more powerful as time goes by.
We will discuss Lua more in future blog posts.
If you are like most people, you might feel a bit annoyed by the fact that particles from things like fire look so obviously flat when looking at the source of the flame. Cody Glassman fixed this by implementing soft particles. There’s a video example in the merge request, and the difference is huge.
Cody also recently got his sky shader branch merged into OpenMW master. This is a feature that has been requested for quite a while now by people wanting to do great looking shaders for OpenMW. And now that the sky shaders are here, people like vtastek will be able to play around with the look of the sky, for example making the sky blend a lot better with the fog.
One exclusive feature OpenMW has is the automatic and dynamic generation of navigation meshes which greatly enhances the AI’s pathfinding. Basically, OpenMW creates a map of the currently active game world that tells the AI where the terrain is walkable and where it is not, preventing situations where NPCs walk straight into walls or jump down cliffs. The creation of this map is done at runtime in a separate thread, so most modern multi-core computers won’t notice any significant performance loss because of this. For people with weaker computers or mobile devices, however, loading times can be significantly longer. Because of this, elsid is working on a feature that will store the navigation meshes in files once they have been created, making the generation of them only necessary once.
Ever wanted to be able to zoom in and out on the world map? See more of the world at the same time? Or less of it, with more detail? Now you can, thanks to Cédric Mocquillon’s new feature that allows for different zoom levels of the map, including automatically merged map markers when zooming far out and a smooth transition between local and world map when zooming in. Simple yet so effective and a very nice addition to the engine.
…and into the water too. Let’s face it, OpenMW’s raindrop ripples look pretty terrible. Or rather, they were looking pretty terrible, since wareya took the matter in his own hands by making an actual good-looking raindrop ripple effect. You can see how they look using a nightly version or visiting the merge request’s GitLab page. Neat, right?
Well, unless you want to of course. Anyway, Frederic Chardon has had this merge request up for a very long time, but after a lot of discussion regarding its design, it seems we will finally see it merged soon. This means that you will soon be able to add and remove data directories directly in the OpenMW launcher. Finally!
Evil Eye has been working relentlessly on OpenMW, and a truckload of MRs merged lately have been his work. One of his bigger projects has been the rework of magic effects. For most people, this probably won’t be very noticeable since there are mostly under-the-hood changes, but quite a few differences to Morrowind’s original engine have been solved thanks to this huge task of his. Check out the merge request here. If you’re a Morrowind purist that has been annoyed with OpenMW handling certain magic effects differently compared to the original, you’ll like this one a lot.
That’s about it. Or really, it’s far from it, but we’ll have to round off this blog post somewhere. Thank you so much for sticking around with us through all these years. We’ll see you again another time!
As if the last post wasn’t long enough! We need to share some updates regarding Lua and the upcoming lighting improvements. Welcome!
Petr Mikheev just reached a major milestone with the upcoming Lua scripting system: The first playable Lua test mod is live! Note the word “test” here of course; this is nothing of interest for you guys that just want to have fun and play a great RPG from the early 2000s enhanced with cool mods. But while the mod in itself might not be too exciting, it still proves that things are actually moving forward and that we are getting closer and closer to a world where OpenMW has greatly enhanced modding capabilities compared to today. Here is the link to the forum topic, and here is the one to the merge-request.
In the last post, we talked about how Cody Glassman is working on support for more than 8 lights per object. Well, his merge request has evolved into something even more. As it is right now, the fixed-function math used for Morrowind’s light attenuation, which is faithfully identical in OpenMW, do not actually allow for good attenuation at all. This manifests in light seams, visible popping, and mismatched object lighting, which you may have noticed in previous builds or the original Morrowind engine. With the arrival of Active Grid Object Paging in the upcoming 0.47.0 release, it became clear that a change was needed to squash these issues once and for all. Thanks to under-the-hood changes to lighting and a brand new attenuation formula, all of these problems are cleaned up wonderfully. The lighting should look pretty much the same as you remembered it, but with a level of polish that hasn’t been seen before. As a preview, here are some before and after shots placed side by side for you to compare. We think you’ll agree the OpenMW experience is about to feel even smoother!
That’s it for today. Stay safe everyone, and stay tuned for the next release!