Changes from Arx Fatalis

From Arx Libertatis Wiki
Jump to navigation Jump to search

This page documents differences between vanilla Arx Fatalis and Arx Libertatis. Beware that this list may not be complete. For a complete list of changes see the changelog.

Improvements

Gameplay

These changes have been made because we think the original behavior was a bug, but feel that they should be documented nonetheless. When mod support improves some of these changes could become optional.

  • 1.0.3+: Calculated Object knowledge and Projectile skills now include attribute modifiers from items and spells. (commit 93c67fa)

Removed Features

While most of the functionalities were kept intact while porting and cleaning up Arx Fatalis, some features were no longer relevant or made other improvements harder. Some of these features may be re-added in a future version

Graphics

Gamma correction

Removed in: Arx Libertatis 1.0 (commit 3ad44dc)
Re-added in: Arx Libertatis 1.2 (feature request #254, commit 41f1d3d, commit 0b41dd2, commit c04db86)
Preserved in: gamma branch

Vanilla Arx Fatalis had options for screen brightness, luminosity and contrast. This was removed in Arx Libertatis because we couldn't get it working reliably across platforms. Some kind of brightness option needs to be re-added, possibly as a post-processing shader in order to also work in windowed mode.

X.Org bug | SDL bug

"Bump mapping"

Removed in: Arx Libertatis 1.0 (commit b16ef98)
Prognosis: Will be replaced by proper bump/normal mapping (feature request #67)

Arx Fatalis does not ship with bump maps, but the original game used a grayscale version of the normal diffuse textures and texture combine operators to approximate the effect. While using this technique could yield some interesting results, in most cases it produced a blurred effect. Should be reimplemented as per pixel bump mapping using shaders.

TODO: Add a screenshot of the effect.

Detail textures

Removed in: Arx Libertatis 1.0 (commit cc2e70a, commit 2504c6e, commit a7edf9a)
Prognosis: Will be re-implemented in a shader or replaced
Preserved in: texture_refinement branch

Also called Z-mapping or "texture refinement" in the source code, Arx Fatalis had the ability to overlay tiled grayscale textures onto close objects and walls in order to increase the perceived texture detail. While this is a nice trick, it caused closer objects to be darker and caused other artifacts, which was noticeable when moving. We managed to break this feature sometime before Arx Libertatis 1.0 and finally removed the code completely for Arx Libertatis 1.2. Instead, we plan to increase the texture detail some other way.

PNUX texture effect

Removed in: Arx Libertatis 1.0 (commit a4b6234)
Prognosis: May be reimplemented as a post-processing effect

Color conversion applied to all textures in the game, resulting in funny looking scenes. Was only used for the PNUX cheat, so in the end it was not worth porting. Would be trivial to implement as a post processing effect.

Screenshots of the effect on Vanilla Arx Fatalis:

Texture size option

Removed in: Arx Libertatis 1.0 (commit a4b6234, commit 23052d7)
Prognosis: May be reimplemented when needed

Vanilla Arx Fatalis provided the option to downscale larger textures before uploading them to the graphics card, to lower video memory usage. As Arx only has relatively small textures, this option isn't really needed these days. May be re-added once we have higher-resolution textures.

16 bit texture support

Removed in: Arx Libertatis 1.0
Prognosis: He's dead, Jim

Vanilla Arx Fatalis could convert textures to 16-bit before uploading them to the graphics card, to lower video memory usage. This isn't really needed these days, reduces image quality and complicates the code too much.

Video bit depth option

Removed in: Arx Libertatis 1.2 (commit 8bd8250)
Prognosis: He's dead, Jim

In Arx Fatalis and early Arx Libertatis versions you had the option to choose fullscreen video modes with a 16-bit backbuffer. This isn't really needed these days and was removed with the SDL 2 port.

Interface

Editor mode

Removed in: Arx Libertatis 1.0 (various commits)
Additional code removed in: Arx Libertatis 1.2 (commit 03cabd3, commit 0f98c0a, commit 81a52d7)
Prognosis: Will be replaced

The released Arx Fatalis 1.21 source code could be compiled to enable a level editor mode. This feature was not available in released Arx Fatalis binaries. The code heavily relied on Microsoft Windows windowing functions and we decided to not attempt to port it. Instead, we plan to create our own editor in a cross-platform toolkit.

"Old" control mode

Removed in: Arx Libertatis 1.0 (commit df9b55b)
Prognosis: He's dead, Jim

"Old", because the current control mode was called newcontrol in the config file (and international mode in the code). The new control mode was already enabled by default in the config file shipped with most Arx Fatalis versions.

Miscellaneous

DirectX backends

Removed in: Arx Libertatis 1.2 (commit 0143623, commit 6f03616, commit 8d97013, commit 2351159)
Prognosis: He's dead, Jim

The original Arx fatalis was based on DirectX 7. In Arx Libertatis 1.0 we upgraded the implementation to DirectX 9 but also added cross-platform OpenGL, OpenAL and SDL backends. The Windows-specific DirectX backends were deprecated in Arx Libertatis 1.1, and Arx Libertatis 1.2 removes the legacy Direct3D, DirectSound and DirectInput backends.

Support for loading uncooked objects and scenes

Removed in: Arx Libertatis 1.2 (commit ccf8572, commit 42648bb)
Prognosis: He's dead, Jim

Arx Fatalis shipped with code to load raw objects in the THEO file format (.teo) and scenes in the TSCN file format (.scn). However, the game data only includes cooked objects in the FTL file format (.ftl) and scenes in the FTS file format (.fts). Additionally, THEO/TSCN are custom (or at least uncommon) file formats so there is no point in keeping support for a format that is not used by any available files. The cooking process will likely be re-implemented as part of a editor at some point.

Animations in the THEA file format are still still supported as they don't have a cooked variant.

Script commands

Some unused script commands have been removed because they were redundant and/or broken.