User Tools

Site Tools


version:detailed_list_of_changes_in_doomsday_version_1.14

This article lists the important changes in 1.14.

Fixed bugs

UI

  • Ugly layout updates when opening popups. Caused by their contents becoming available for GL drawing at different times during the opening animation, resulting in repeated resizing of the popup.
  • Widget positioning issues. Caused by margin changes not always being applied correctly.
  • Ringzero: Excessive clipping of button contents in the Game Selection menus is avoided as the layout of the menu is altered if the buttons would get too small.
  • OS X: Fixed font weight selection issues by utilizing native font rendering routines. Normal, bold, and light fonts are all now correctly drawn.

Console

  • Windows: Console history has a wider drag border for the mouse, fixing the problem where it was impossible to resize the console if the drag border was near the edge of the window.
  • Removed invalid console variables (like “player-weapon-order8” in Heretic).

Renderer

  • Vignette effect drawn while no map is loaded.
  • Model particles were not affected by dynamic lights.
  • Missing 3D models referenced by ID (particles, skies).
  • Sky spheres with multiple layers drawn incorrectly.
  • Transition animations (e.g., crossfade) not working in networked games.
  • Windows: Vertical sync was not being applied correctly, causing it to be always on.
  • X11: Vertical sync is now applied using the GLX API, making it unnecessary to recreate the OpenGL window.

Resources

  • When writing a ZIP archive, it was possible that its header was written with an incorrect total number of archive entries, resulting in a corrupt ZIP file.
  • ANIMATED data interpreter incompatibility with ZDoom's “No Decals” extension.

All Games

  • Mismanagement of game rules when loading savegames.
  • Menu, editfield widgets: when active eat all navigation commands and cursor is now visible when empty.

Hexen

  • Crash starting end game finale.

New features and changes

UI

  • Visual improvements for UI widgets: text editors have a border, fold panels have a state indicator and text wrapping is now more accurate.
  • Performance improvements: Widgets that cannot be seen will be skipped during rendering of the UI; images shared by multiple widgets are not loaded more than once.
  • Old Doomsday GUI widgets were removed altogether as obsolete (the ones used in the old Control Panel and MP screens).
  • Warnings and errors printed in the log history are also shown as alerts in the notification area.
  • Tutorial that introduces the main UI elements: home_screen, notifications, task_bar, application and configuration menus, renderer appearance profiles, and the console.
  • Task bar: multiplayer menu providing an easy method of leaving the current server and displaying connection info.
  • State persistency: widgets can store their state in persist.pack and be automatically restored to their previous state on a subsequent launch.
  • Stereo 3D: mouse wheel is now mapped to both left and right frames.
  • Console shortcut key can be set using a menu item in the console_menu.

Home screen (Ring Zero)

  • Automatically shows multiplayer servers and all saved games.
  • Unplayable games with missing resources are listed separately.
  • Foldable groups so you can hide games that are not important.
  • Game sort order can be chosen (by title or by game identity key).
  • Adaptive layout which dynamically expands according to available screen real estate.

Log

  • Overall cleanup of log output.
  • Log verbosity levels can be specified per engine subsystem. This is useful for instance if one is interested in finding out what is going on in resource management while suppressing messages from other subsystems.
  • Log entries are flagged either for developers or end users. It is possible to filter out all developer messages.
  • The log history can optionally show metadata for each entry (timestamp, domain). This was previously only available in debug builds.
  • Warnings and errors can be duplicated to a secondary output file with the errors option (similar to out).

Multiplayer

  • Multiplayer UI was completely overhauled with new dialogs.
  • The multiplayer UI automatically displays local servers and asks the master server for public games.
  • New dialog for connecting manually to a IP address or domain.
  • Master server settings are no longer stored cvars (net-master-*). The master server's API URL is now configured as a single variable: Config.masterServer.apiUrl.

All Games

  • Unified game session model.
  • Unified saved session model. All games now utilize an internal savegame for tracking player progress.
  • Recover from a failed savegame load, returning the user to the title screen (any errors are reported by the new Alert mechanism and are logged).
  • Common HexLex parser for reading of Hexen specific script lumps (ANIMDEFS, etc…).
  • No longer dependent on external LZSS module.

Renderer

  • Added bloom as a new frame post-processing effect. It can be configured with cvars (rend-bloom, etc.) or in the renderer_appearance_sidebar. Bloom is enabled by default.
  • Oculus Rift: Number of samples can be configured separately for the Oculus Rift framebuffer (i.e., separately from overall FSAA setting).

Resources

  • New savegame format based on ZIP. Human readable metadata and multiple files for serialized game state data.
  • Significantly more intelligent savegame management. Metadata is only extracted when needed by the UI or the current game.
  • Automatic, background conversion of old savegames.
  • Old savegame conversion tool and plugin.
  • Current game rules for the session used as basis for interpretation of old savegames.
  • Added inspectsavegame for inspecting .save package metadata.
  • Improved inspectmap output with more information about map state and configuration

Shell

  • When starting a server, it can be made public or private with a checkbox (sets server-public).
  • The error log is automatically shown if a server fails to start.
  • The Shell login password can be specified when starting a server; it must be specified for public servers (where anyone can potentially try to log in).
  • Updated toolbar icons with modern style that matches the client UI.

Scripting

  • A new record can be created inside an expression using record_keyword:
    (record rec).member = 1
  • App.audienceForGameAddition for notification of game registrations.
  • Native function binding for App.quit()
  • SavedSession module provides access to the resource system functionality for savegames (old savegame conversion)

OS X

  • Font rendering is done using native APIs.

API

  • Old log message printing API removed, replaced with App_Log() in libdeng1. New log printing function supports log_escape_codes and accepts flags to specify entry metadata (subsystem, audience).

SDK

  • The Doomsday 2 libraries are provided under the LGPL 3 license (libdeng2, libshell, libgui, libappfw).
  • Garbage was moved from libdeng1 to libdeng2.
  • Doomsday 2 UI framework was split from the client and placed to its own shared library.
  • Oculus Rift support code was moved to the UI framework library.
  • SDK api_documentation is now available as a .qch file for use in Qt Creator.
  • Build scripts specifically run Python 2 so that they work even if Python 3 is the system default.
version/detailed_list_of_changes_in_doomsday_version_1.14.txt · Last modified: 2017-03-23 11:24 by skyjake