image ©Maxim Nikolaev
News from behind the scene 2021-12-20 - jvoisin

We took some time this year to overhaul, simplify and awesomify our web presence and infrastructure.

Our blog

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:

  • our Cloudflare integration, since our server is not super powerful and we’ve been slashdot’ed before. So better safe than sorry. Also, no need to fetch your pitchforks if you’re using Tor or a VPN: we configured Cloudflare to not annoy you, so it’s only used as a CDN/cache.
  • Polylang, since WordPress doesn’t support internationalization by default and some of our blogposts are translated into a couple of languages.
  • Jetpack because our posts are written in Markdown.

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!

Forum

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.

Wiki

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.

Alerting

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.

Backend

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.

Want to leave a comment?
Post-release catchup party! 2021-11-26 - lysol

Hello again!

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!

Lua is merged

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.

Soft particles and sky shaders

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.

Zoomable world map

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.

Raindrops keep falling on my head…

…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?

No more adding mod directories in the openmw.cfg file

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!

Magic effects are reworked

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!

Want to leave a comment?
OpenMW 0.47.0 Released! 2021-11-04 - Atahualpa

Another year of busy and fruitful development lies behind us — and the OpenMW team is proud to announce the release of version 0.47.0 of our open-source engine! Grab it from our Downloads Page for all supported operating systems.

With over 180 solved issues and a plethora of new features, this release is on par with the enormous 0.46.0 release we had last year. Brace yourself for object paging which allows OpenMW to finally display distant statics, proper support for groundcover mods, an improved lighting system, more efficient and robust physics, the new, optional over-the-shoulder camera, and much, much more!

In addition, countless bugs have been solved — both for the vanilla game and for a variety of mods to ensure even better mod compatibility in the new version.

Check out the release announcement video by the hacking Atahualpa and the slashing johnnyhostile, and see below for the full list of changes. There are also a German release video and a German changelog available.

Known Issues:

New Engine Features:

New Editor Features:

Engine Bug Fixes:

Editor Bug Fixes:

Miscellaneous:

Want to leave a comment?

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.

Thank you and we’ll see you again on the day of the release!

Downloads are found here.

Starting with version 0.13.0, each and every main release of our engine has been accompanied by a release commentary. For me and many others, the release videos have always been something to look forward to, a strangely satisfying means to highlight OpenMW’s progress throughout the ages — and a great opportunity to mess around with our beloved Fargoth!

Our channel has now reached 10,000 subscribers, a truly gigantic number for such a niche project like OpenMW. A huge thank-you to all of you for your continuous support! Rest assured, though, that we are not reaching for the stars here and that we will still concentrate on publishing release commentaries in the future instead of featuring puppies or kittens. But a little celebration seems to be appropriate, which is why I present you with an updated version of our 2013 video “A Visual History of Changes to OpenMW”! Sit back, relax, and have fun. — And thanks again for your support!

Want to leave a comment?