What’s new in 2.1

Version 2.1 is now feature complete. While I originally hoped to focus on multiplayer-related enhancements in this release, it turned out a little differently. Roughly speaking the first half of 2018 was spent working on the foundations of the next revision of the renderer (not included in 2.1), and only during the second half I focused on 2.1 related work.

One important multiplayer improvement has been added for 2.1, though: clients can download mods (e.g., PWADs) from the server in case they are needed for joining a multiplayer game.

The stable 2.1.0 will be released before the end of the year. I intend to spend the remaining time on fixing bugs (some already listed in the roadmap).

Let’s have a quick look at the changes done over the past weeks.

General usage and games

  • Game profiles have individual save folders so their save files won’t conflict. When it comes to old custom profiles you may have, you can manually create a new save folder (right-click on the profile), but you’ll need to move any existing save files over by hand.
  • Game Library view options are accessible via the tab menus. Games can be sorted based on different criteria like “recently played” or “title”. You can also now choose if you want the custom profiles separately listed, or everything in a single list.
  • Data file search folder configuration is simpler and more flexible. There’s now a single list of folders and you can choose whether subfolders are searched in each one separately.
  • Options menus in the games were cleaned up and improved. A few broken widgets were fixed. The Bindings submenu now wraps the bound items on multiple lines if there isn’t enough room. Menus also have smooth scrolling and some drawing performance improvements.
  • The latest FreeDoom release is recognized and so is the Mac variant of the Hexen IWAD.
  • Heretic visual tweaks: automap colors match vanilla; status bar appearance tweaks; a shader is used for the invincibility effect to better match vanilla.
  • Hexen and Heretic automap backgrounds are drawn with improved scrolling and scaling. The Hexen automap was sometimes not visible due to an invalid view offset.
  • Automap and crosshair line widths can be changed.
  • UI internals were improved to support runtime DPI changes, allowing UI resizing to be done on the fly with virtually no downsides. For example, one can now move Doomsday to an external display that has a different DPI. One can also adjust the UI scaling factor manually without restarting Doomsday (in User Interface Settings).
  • A number of minor UI appearance tweaks. Added a few foldable settings groups in the larger dialogs (e.g., Audio Backend).

Modding

  • You can select any package as the main data file of a game instead of just the known IWADs. This requires creating a custom game profile, though. Custom profiles may also specify additional gameplay customizations like -fast and -respawn via the GUI.
  • Master Levels for DOOM are now automatically tagged “masterlevels” so it’s easier to find them in mod lists. (Tip: Use the “Play in…” feature via the Mods list to start one of the Master Levels easily.)
  • If you edit a mod/package at runtime while it is loaded, Doomsday will automatically unload the package when the status of files is updated. This happens for instance when editing a DED file while it is loaded as an individual mod. Previously Doomsday just died with a fatal error in this situation because it didn’t know what to do.
  • The mod compatibility dialog that may appear when loading a savegame is smarter: it can pick a newer version of a mod that was used previously (in case it was upgraded, for instance).
  • Another mod helper: the dialog where you select mods for a game will show a more detailed note about mods that are currently missing but selected for loading. You can also configure data file search folders from the same dialog to more easily locate any missing files.
  • When Doomsday detects that a new version has been installed, it will automatically clear the metadata cache and redetect all data files (useful in case the detection rules have been improved).
  • Mod lists show “gamedata” and “core” tags on request. You can search for these tags easily via the Mods tab menu. The “gamedata” tag is given to recognized IWADs, and “core” is for Doomsday’s own packages.
  • Add-on .box contents had sometimes the wrong (conflicting) identifiers, causing some confusion.

Technical/Miscellaneous

  • Sometimes a server would not include the correct port in its announcement to the master server, making it impossible to join the game.
  • The FMOD audio output can be selected from a list in the Audio Settings. The SFX channel count can also be configured (this used to require the -sfxchan option).
  • By default, music playback is paused if the game window loses focus. An option to control this was added in Audio Settings.
  • The player FOV is now specified as the horizontal field of view angle. Previously some additional adjustments were done to account for 16:9 and other wide screen aspect ratios, but that made using the setting quite imprecise in practice.
  • Hexen player weapon sprites were not obeying the configured texture filter settings.
  • Temp directory cleanup. Every time Doomsday is started it created a new temp directory, but the created temp files were never cleaned up so eventually it was possible that access to the files failed due to existing conflicting files.
  • File refresh is now more robust and has its own activity notification. Previously it was typical that the UI would block for a few seconds during refresh, even though it was supposed to be occurring mostly in the background.
  • Xcode/Clang pointed out some undefined/invalid behaviors that were potentially causing rare crashes.