Features

From OpenMW Wiki
Revision as of 22:21, 24 September 2017 by Scrawl (talk | contribs)
Jump to navigation Jump to search

This page keeps track of features added to OpenMW that were not part of the original Morrowind engine.

Scripting

  • Stricter compiler and compiler warnings. Error handling in the vanilla MW script compiler was very limited.
  • Function arguments can now be expressions of arbitrary complexity. Vanilla MW would not even allow simple variable arguments for some functions.
  • Arbitrary limitations on code depth/size are not present anymore. For example, there was a limit on how deep you can nest if/endif clauses. And there was also a limit on the length of a if/endif block.
  • Fixed a large number of miscellaneous pitfalls and limitations.
  • Script variable values are stored by name in saved games, so that reordering or adding new script variables in a content file does not cause incompatibilities with existing save files.

GUI

  • Support for TrueType fonts
  • GUI scaling option, useful to improve readability on high resolution displays
  • World map adjusts automatically to fit new landmass from mods such as Tamriel Rebuilt
  • Improved save/load dialogs. Saves are organized by character
  • Improved item selection dialog
  • Improved and resizable alchemy dialog
  • Allow keyboard input for item count dialog and trade window price
  • Improved console (colors, tab completion of commands and object IDs)
  • Copy&paste from system clipboard
  • Various small usability fixes
  • When placing items, irrelevant windows (stats, map and spell windows) will turn transparent on mouse-over and allow click-through
  • Improved repair and recharge widgets: allow to swap tool/soulgem on the fly, without widget restart
  • Improved birthsign selection menu

Game saving/loading

  • Saves organized by character
  • Track the time played (not displayed by default, see Config file tweaks)

Controls

  • Joystick support - although no special joystick user interface yet
  • Hardware cursors - this means the GUI cursor is always fluent, independent of the framerate.
  • Held attacks (e.g. a nocked arrow) may be canceled by using the Ready Weapon key.

Sound & Video

  • Audio and video formats: all formats supported by FFmpeg
  • Improved underwater sound filter

Graphics

  • Improved rendering precision - the vanilla engine had precision issues that result in objects shaking when the player travels far from the world origin
  • Support normal, specular, and parallax texture maps (TextureModding)
  • Unclamped lighting (See TextureModding for info on enabling this option)
  • Support for all resolutions
  • Adjustable field of view
  • Anisotropic filtering
  • Improved sun flare rendering using hardware occlusion queries
  • New water shader featuring reflection and refraction effects
  • New terrain engine featuring seamless rendering and distant terrain
  • Support for OSG mesh / scene files as an alternative to the proprietary NIF format

Misc

  • Cross-platform (macOS and Linux builds and source code are provided)
  • Multiple data folders support (see Mod installation).
  • Replaced the content file limit of 255 (2^8-1) with a content file limit of 2147483646 (2^31-2) and a per content file limit on the number of dependencies of 255.
  • Various options available to facilitate game testing (see Testing#Game_Arguments).
  • Objects in any cell can be referenced by scripts (in vanilla Morrowind, only objects in recently-visited cells could be referenced).
  • Added many new user settings

Selected bugfixes

Since OpenMW is written from scratch, almost all bugs in the Morrowind engine do not affect OpenMW in the first place. Attempting to list them all would be a futile effort, but the most game-breaking ones are worth mentioning:

  • Owner contamination fix
    • When an item owned by an NPC is stolen, it could "contaminate" a stack of similar items and flag the whole stack as stolen. OpenMW creates a separate stack for non-stolen items.
  • Savegame doubling fix
    • Morrowind's savegame system suffers from a design flaw that could cause objects to duplicate. This should never happen in OpenMW.

For more detail on bugs in the vanilla engine see the Bugs page.