Unvanquished 0.55.4: spring cleaning

A granger and an egg on creep on a wall in the Folorn map.
A granger and an egg on creep on a wall in the Folorn map.

It’s time to update to Unvanquished 0.55.4!

The purpose of this release is to fix a bug that disconnected some clients from servers when some maps were loaded (as a nasty side effect of bad BSP data not being filtered out). Being disconnected is not the purpose of an online multiplayer game, isn’t it? ๐Ÿคญ

We also fixed a bug where the medistation couldn’t be hit (oops). ๐Ÿ™ƒ

The textures of the egg model and creep also look better from afar. ๐Ÿ‘€

How an egg look from afar, in 0.55.3 (left) and in 0.55.4 (right).
How an egg look from afar, in 0.55.3 (left) and in 0.55.4 (right).

The initial startup time when you play the game for the very first time, or change graphics settings, will be greatly reduced via “lazier” GLSL shader loading. Now when you load a map, only shaders that are expected to be used by the map (or other game assets) are built. It turns out the vast majority of possible shaders are not used. This is especially impactful for drivers with slow shader compilation like Intel’s, which can take around a minute to build everything on the first run (so it’s now faster). ๐Ÿš€

We also removed the forward lighting dynamic code. This was the original forward lighting code from early XreaL source tree from about 15 years ago.ย  But long time ago we implemented a tiled light renderer to replace it and we made it the default one 5 years ago. Now, all that overly-complex and crufty legacy forward lighting code is removed. All of this went to the trash bin!ย This deleted a lot of code! ๐Ÿšฎ

We also removed all the dynamic shadowing code that relied on this forward light renderer. While the forward light renderer was still barely working when we removed it, the legacy forward shadowing code relying on it was broken for maybe a decade. By removing this legacy shadowing code we haven’t removed a feature that worked, but a feature that didn’t work and couldn’t be fixed. We still need to implement a new dynamic shadowing code that would integrate with the tiled light renderer, but that’s a feature request. ๐Ÿซ 

Summary of the changes from this release:

Game data

  • Make the eggpod and creep look better from afar (RedSky)

Game code

  • Fix missile model rendering issue (Slipher)
  • Do most model config rotations numerically stably (Slipher)
  • Use more glm-native functions (Enneract)
  • Fix missiles going through medistation (Slipher)

Engine

  • NUKE forward lighting dynamic light renderer (Slipher)
  • NUKE broken shadow mapping code (Slipher)
  • Ensure grid size never gets too large (Reaper)
  • Merge material system surfaces (Reaper)
  • Improve lazy shader building (Reaper)
  • Fix compile error with latest Appleclang (Slipher)
  • Check that driver matches when loading GLSL cache (Slipher)
  • Validate BSP vertex input (Reaper)
  • Some fixes for the GeometryOptimiser (Reaper)
  • Fix sky brushes not being skipped for rendererSurfaces (Reaper)
  • Fix vertex hash out-of-bound/unaligned issues (Reaper)
  • Fix totalDrawSurfs not being reset (Reaper)

It’s time to download and to play! :bsuit:

One thought on “Unvanquished 0.55.4: spring cleaning”

Leave a Reply

Your email address will not be published. Required fields are marked *