What's new in TDM 2.08

From The DarkMod Wiki
Revision as of 07:09, 21 March 2020 by Stifu (talk | contribs) (Added explanation to "Rope and Ladder slide operations are safer")
Jump to navigationJump to search
Version 2.08 of The Dark Mod has not been released yet.

See the roadmap on our bugtracker.



The Dark Mod 2.08 New Baseline


TDM 2.08 casts off the problems with supporting old OpenGL versions by
modernizing all shaders to OpenGL 3.x Core Context compliant GLSL.

Long in development, many fixes related to Multi-Core, Uncapped FPS, and the 64-bit migration
are now available.

For Linux users, the project can now be compiled via cmake

Many new mapper friendly updates for Rain, Fog, Patrolling AI, and visportals have been added.

For the eye-candy crowd, a new SSAO option has been added!





Important CVARS

Old


  • r_postprocess_gamma and r_postprocess_brightness: these cvars have replaced the old r_gamma and r_brightness. Also gamma now has default value "1.2".
  • r_interactionProgram and tdm_ambient_method: this are the current cvars controlling "interaction" and "ambient" programs. These settings were previously available in Advanced video settings, but they are no longer visible in menu. Only change this for some debugging/investigation purposes.
  • r_uniformTransforms: setting to 0 is known to fix severe graphical issues on Intel HD 3000; please leave this as default, and let developers know if your machine needs this to run TDM properly.


New:


  • r_glCoreProfile: default value 2 forces "Core profile" OpenGL context, while value 0 says to create "Compatibility profile". Should have no visual impact. Only takes effect during engine initialization. Only change this is someone suspects that Core profile breaks something.
  • r_testSpecularFix: this controls whether specular color or diffuse collor is used to modulate specular light term. Should be used to see what was fixed or broken by the corresponding change. Set to -1 to make game switch back and forth between old and new behavior every second.
  • g_rotationHack: with default value 1, every func_static model with nonorthogonal rotation is forked on game start, and its rotation is embedded into the copied model.This is a very hacky workaround for the fact that rotation-hacked models are responsible for various bugs on existing maps. With value 0, nothing special is done, so rotation-hacked models behave as before. Note that you cannot change this cvar during playthrough: it only takes effect when a new game is started. Another effect of this cvar is that the engine forces mappers to set g_rotationHack 0 if they dmap something with rotation-hacked func_statics.
  • r_ssao_*: several cvars with this prefix can be used to tweak SSAO implementation. Although ideally you shouldn't have to touch them.
  • r_usePersistentMapping, r_useMultiDraw, r_useBaseVertex: use new graphical features for potentially faster rendering. Should not touch these unless it is suspected that one of them causes a problem.



  Experimental Graphics

* image_useNormalCompression = 2: Initial support for RGTC compression. Similar to AMD 3Dc or D3D BC5. 
   
    Not fully working but fairly complete. Needs new GLSL based materials for water\glass or other complex ARB materials.

* r_useParallelAddModels: an experimental cvar to further parallelize a considerable part of the renderer. 

    Should slightly increase FPS in many cases, but can cause all sort of problems. 


Swimming variation:

  • pm_swimspeed_variation
  • pm_swimspeed_frequency



AI


  • AI can now be directly instructed to stop patrolling (easy method)
  • AI no longer sleep or sit in strange places due to path obstructions
  • AI no longer instantly lose the player when the player moves to darkness above them



Graphics


AMBIENT OBSCURANCE SSAO IN 2.08!!

Cabalistic has finally added the much requested SSAO feature to TDM
Using a method called Scalable Ambient Obscurance now areas with flat ambient
lighting come alive with new detail

  • Shaders are now all GLSL OpenGL 3.x Core Context compliant
  • Brightness and Gamma operations are now done via shaders.
    TDM will no longer cause issues with Desktop brightness.
  • Legacy Bloom has been replaced with integrated Tone Mapping and Gamma Correction
  • "Borderless window" mode integrates a bit better with OS than "fullscreen" mode (Windows-only)
  • Fixed several bugs with non-default Render Scale
  • Fixed bugs with handling water brushes, especially with complex shapes.
  • Fixed MD3 and liquid models. Animated water should work properly now.



Mapping

  • Static collision detection for rain particles
  • Better rain particles, old rain materials deprecated
  • New way to tweak rendering order of translucent surfaces: drawSortOffset spawnarg
  • Easy-to-use parallel light emanating from the sky
  • Spectrum spawnargs restrict light interaction depending on spectrum values of lights and entities
  • X-ray subview changes appearance (skin_xray) of specified entities when seen behind this surface



Sound


  • New swim sounds
  • New mantle sounds
  • New Rope and Ladder slide sounds
  • Fixes to sound defs with dashes in the names
  • New arrow bounce sound fixes
  • AI "Help!" barks fixed



Coding


TDM 2.08 goes further with the process to modernize coding standards in TDM.

ALL legacy OpenGL functions have been replaced with modern techniques.
ARB Assembly shaders are gone and have been replaced by GLSL
C++ Library management and compiling have been improved. cmake compiling on Linux too!

Finally, performance optimizations have been applied to the rendering framework,
game code, and code base in general.



  • Precision fixes: dmap and collision-related gameplay are affected.
  • Fixed several bugs in visportals handling in dmap. This affects all existing maps, so please read Visportal Wiki
  • Fixed bug in stencil shadows computation, which was introduced in 2.07 (#5106).
It affects all parallel and projected lights when mapper runs dmap on a CPU with AVX.
It is strongly recommended to re-dmap all FMs dmapped with 2.07 if they contain such lights.
  • Added a very hacky workaround in engine for rotation-hacked func_static-s (#4970, controlled by g_rotationHack).
Since it can be removed in future, dmap now actively complains about all entities with bad rotation.
Improved precision of dmap and its mesh processing algorithms
  • Moved closer to Doom 3 BFG Vertex Buffer management (better multi-core stability)
  • Reduced state changes and draw calls
  • More reliable game modelling with "Uncap FPS" when FPS is low (fixes rope bug)



Assets


Many quality textures, models, and materials were added by both Team members and
community contributors over the 2.07 to 2.08 cycle.


  • New Beastmen characters (Kingsal)
  • New zombie characters (Springheel)
  • New environmental models (Springheel & Epifire)
  • Many more Dragofer models incorporated (Dragofer)



GUIs


  • New Inventory menu theme
  • SSAO Setting
  • Removed legacy Ambient and Bloom settings
  • Max FPS setting
  • Optional new console font



Gameplay


  • Further mantling fixes for running and jumping
  • Swimming now has an undulating animation
  • Shouldering now has an animation
  • Ropes no longer become unstable with low FPS and uncapped FPS set and swinging has been improved
  • It is easier to drop and position ragdolls
  • Mantling no longer causes geometry clip bugs
  • Rope and Ladder slide operations are safer: While looking at the climbable press and hold crouch to slide down the climbable without taking damage
  • Now keybindings are saved into separate file DarkmodKeybinds.cfg
  • Linux can use more keys in keybinds



Translation




See also