GZDoom version history

From ZDoom Wiki
Jump to navigation Jump to search
Error.gif

This article is a stub. Please help the ZDoom Wiki by adding to it.

This page tracks the evolution of GZDoom by listing the main features of each version.

By year 2017 · 2018 · 2019 · 2020
By version 3.0.0 · 3.0.1 · 3.1.0 · 3.2.0 · 3.2.1 · 3.2.3 · 3.2.3 · 3.2.4 · 3.2.5 · 3.3.0 · 3.3.1 · 3.3.2 · 3.4.0 · 3.4.1 · 3.5.0 · 3.5.1 · 3.6.0 · 3.7.0 · 3.7.1 · 3.7.2 · 4.0.0 · 4.1.0 · 4.1.1 · 4.1.2 · 4.1.3 · 4.2.0 · 4.2.1 · 4.2.3 · 4.2.4 · 4.3.1 · 4.3.2 · 4.3.3 · 4.4.0 · 4.4.1 · 4.4.2

2017

3.0.0cc3ae93 (April 29)
Release thread
  • Scriptable status bars.
  • Scriptable level status screens.
  • Static constant arrays in classes.
  • Support for Doom64-style lighting in the software renderer, with the exception of gradients.
  • Optimization of the scripting VM by removing some always active debug support.
3.0.1bb6015b (May 2)
Release thread
  • Fixed a potential crash when changing the render output in-game and continue playing.
  • Fixed a crash in the software renderer with camera textures.
  • For 32 bit Windows, libsndfile.dll is reverted to the old version due to some incompatibility with the newer one.
  • Cleanup of dynamic light options.
3.1.06875e5b (May 31)
Release thread
  • Support of Strife Veteran Edition's extended single player campaign.
  • Better handling of stereo sounds.
  • PlayerThink code has been exported to scripting.
  • On Windows and macOS, the system's MIDI synth is no longer the default. Instead, FluidSynth and a small soundfont are now included to provide better default playback quality.
  • Translucency on weapon sprites works properly.
  • Some layout fixes with SBARINFO based status bars.
  • Fixed par time display on level summary screen.
  • Fixed loop tag checks for Ogg files.
3.2.0e0d4d9a (October 4)
Release thread
  • zd_extra.pk3 splits off copyright infringing assets, allowing game makers to delete this file and distribute a fully GPL-conforming copy of GZDoom without further changes.
  • Custom IWAD support.
  • Video render scaling (play in 320x200, or any custom resolution).
  • Custom screen shader support.
  • MENUDEF replacements are now merged, allowing GZDoom to easily present new menu features in older mods that include one.
  • A pelothra of fixes and improvements.
3.2.1a4d2fb9 (October 22)
Release thread
  • Fixed applying of height argument in A_Fire() function.
  • Removed all code needed to support macOS earlier than 10.7 Lion.
  • Fixed crash on attempt to register IDs for undefined class.
  • Added vid_cropaspect. This CVAR turns vid_aspect into a letterboxing function that will crop the unused sides of the screen away, instead of stretching it. Requires one of the non-legacy OpenGL framebuffers to work.
  • Remove vid_tft and vid_nowidescreen and associated menu option. Their functionality was supersceded and extended by vid_aspect == 3 (which has the same effect as setting both to true anyhow), and it was mostly just redundant.
  • Fixed: do not interpolate view movements if a key press did not result in any changes.
  • If *nix, add default gzdoom.pk3 directory to File.Search paths.
  • Fixed: inverted color order for post-process textures to BGRA to correctly match the internal texture standard in GZDoom.
  • Added ability to change slider color using MAPINFO's gameinfo.
  • Added startuptype to IWADINFO, allowing to change the game startup screen with custom IWADs.
  • Fixed applying of compatibility settings for IWADs.
  • Fixed a few cases when IWAD was checked by hardcoded index.
  • Fixed arch-vile bleeding when damaging target.
3.2.200b60e5 (December 3)
Release thread
  • Added a new timer code. GZDoom now appears a lot smoother in interpolated frames.
  • Improve speed for ARMv7 processors by setting tuning options to the Cortex-a7 CPU (for Raspberry Pi 2).
  • Several ZScript extensions and fixes.
  • Improved OpenGL profile selection on Linux.
  • Rather than giving version info, GZDoom now displays the name of the game you are currently playing in the window title. This can be disabled via i_friendlywindowtitle.
  • Bug fixes, including some for non-Windows platforms.
3.2.38027369 (December 3)
Release thread
  • Implemented unicode handling in some functions.
  • Improved handling of temporary files on timidity++.
  • Added latch keyword to CVARINFO.
  • Added new grenade and ice shard sprites, removed non-GPL copyrighted assets.
3.2.477a33cc (December 17)
Release thread
  • Added DMG_NO_PAIN for DamageMobj function.
  • Fixed bright sprites in sectors with Doom 64 lighting.
  • Added free space margin, a.k.a. safe frame for automap.
  • Rotating sky and model smoothness fixes.
  • Implemented win_borderless for fake fullscreen in Windows.

2018

3.2.5da85d4f (Januray 4)
Release thread
  • Externalise DCanvas::DrawLine to ZScript.
  • Implemented i_soundinbackground to continue playing sounds and music while in background.
  • OpenGL rendering now continues even when losing focus if not running fullscreen.
  • Added playerrespawn skill flag to allow gameplay mods to retroactively enable player respawns in single player on all maps.
  • Improved Advanced Sound Options menu - added option for FluidSynth chorus, removed fractional part from FluidSynth voices option.
  • Fixed applying of Doom 64 lighting to horizon portals.
  • Particles are now interpolated.
3.3.00a85d65 (March 25)
Release thread
  • Added dynamic spot lights, configurable in the UDMF.
  • Export GetChecksum as part of FLevelLocals in ZScript.
  • Mod-defined aliases no longer permanently change CVARs
  • Add FriendlySeeBlocks actor property that allows a modder to expand the maximum radius that a friendly monster can see enemies.
  • Custom submenus are no longer removed from altered protected menu.
  • Exported S_GetMSLength to ZScript.
  • Added GetRadiusDamage, which returns the raw calculated explosion damage falloff by distance only.
  • Added Screen.getViewWindow function.
  • Exported Trace() interface to ZScript.
  • Added TeleportSpecial as an alias for Teleport in ZScript to deconflict from the Actor.Teleport function.
  • Added Distance(2/3)DSquared functions.
  • Fixed skip_super application for ZScript.
  • Split off the interface part of DHUDMessage.
  • Export sector effect pointers and fix missing pointer assignment on Lighting effect creation.
  • Made left button down event available to UI event handler.
  • Exported Inventory.AltHUDIcon field to ZScript.
  • Add WorldLinePreActivated to override line activation.
  • Add DI_MIRROR flag to statusbar image drawing.
  • Enable string and float user_ properties in UDMF things.
  • Added in-game reverb editor using the menu system.
  • Improved French translations.
  • Fixed 'precise' rendering in OpenGL.
  • New Materials Shader system to allow textures to show new properties such as glossiness and specularity, affected by dynamic lights, or with PBR, reflecting their direct surroundings.
  • New rocket smoke sprites by Talon1024.
  • Import Timidity++ into GZDoom directly.
  • Added light definition for megasphere.
  • Fixed midtex nowrap clipping bug when 3d floors are in view (Software Renderer).
  • Improved profilethinkers in various ways.
  • Add variables am_unexploredsecretcolor and am_ovunexploredsecretcolor to mark undiscovered secrets differently in the automap.
  • Added support for ADLMIDI and OPNMIDI libraries.
3.3.12d0e837 (April 1)
Release thread
  • Better handling of defaults with some ZScript/DECORATE functions.
  • Many bug fixes since 3.3.0.
3.3.2dd5a673 (April 12)
Release thread
  • Fixed detection of .ipk7 custom IWADs.
  • Restored vanilla behavior of lightning for original Hexen.
  • Added loading of ZSDF lumps by full paths.
  • Disabled the survey code.
  • Export P_ActivateLine to ZScript (along with constants for activation type).
  • Increased size of the savegame comment area.
3.4.0d9b6a8b (June 7)
Release thread
  • Enable #include support in MODELDEF files.
  • Removed DirectDraw and Direct3D backends, removed unaccerated SDL framebuffer backend.
  • Reorganization of 2D and 3D rendering code in preparation for Vulkan in the future, performance improvements on newer hardware.
  • CVAR that handles it is now vid_rendermode - vid_renderer, swtruecolor, and r_polyrender have been removed and combined into new CVAR.
  • Added a lightsizefactor command to GLDEFS.
  • Allow animated title pics.
  • Add support for Unreal Engine 1 vertex mesh format.
  • Added LevelLocals vec2/3Offset(Z) functions for portal-aware offsetting without needing actors.
  • Add OnGiveSecret virtual function on Actor for customizing behavior of secret finding.
  • BLOCKASPLAYER flag: treat non-player actors as blockable by "block players" lines.
  • Added 'revealed on automap' linedef flag, UDMF only.
  • Added forced automap style to linedef, UDMF only.
  • Added startup song definition for custom IWADs.
  • This release contains a major render optimization for highly detailed maps that may give a +20% performance improvement on Intel and AMD hardware (less on NVidia because the driver has far less overhead that could be optimized away).
3.4.1504b3d6 (June 14)
Release thread
  • Fixed: redirect script access to the compatflags CVARs to their internal shadow variables. This is needed so that MAPINFO settings for these flags don't get ignored.
  • Fixed: flag CVars in ZScript referenced wrong addresses.
  • Fixed: ZScript used the wrong variable for compatflags2.
  • Fixed: remove ARM specific gl_es definition since it's not even really much different from the main line definition, anyhow.
  • Fixed generation of brightmaps for sprites. This forgot to take the added empty border for filtering improvement into account.
  • Fixed ADynamicLight's shadowmap index must be reset when loading a savegame.
  • Fixed portal restoration on revisiting level in hub.
    • Added function to FLevelLocals to test if map is being reentered.
  • Fixed crash with GL 3.x and fixed colormap active.
3.5.07dd92fb (July 30)
Release thread
  • [modern branch only] Fullscreen is now borderless window (which, technically, it always has been, anyhow). Removed hacks which changed the desktop resolution in order to simulate exclusive fullscreen because they were a constant stability concern.
  • [modern branch only] Fixed a performance regression with the software renderer, introduced by the recent changes to the video backend in 3.4.
  • Save item statistics - Items are now saved into save games and are displayed on the statfile.
  • Upgrade libADLMIDI and libOPNMIDI.
  • Large number of MinGW fixes.
  • Add tags for all Doom and Heretic monsters for mods that reveal monster names.
  • Various compatibility fixes for old maps and mods.
  • Fixed titlepic animation.
  • Custom hardware shaders now can use custom texture units.
  • Fefault to "fullscreen" display.
  • Fixed a potential exploit with malformed WAD files. Thanks to xanaxdev ( th0razine@ret2p.lt ) for reporting it.
3.5.1a5296fe (August 25)
Release thread
  • Implemented "resolution mode selector".
  • Add post processing support to the software renderer and softpoly.
  • Add vid_hdr cvar that enables higher than 8bpc output for monitors that support it.
  • Fix: softpoly TEXTURES sprites with scale of 2 are tiled.
  • Add dithering support to emulate higher BPC displays than your real one. This should allow smoother gradients for light fades and such.
  • Make various getter and pure-math Actor methods clearscope.
3.6.0dd09d8e (October 10)
Release thread
  • Add OBJ model support.
  • Added Screen.DrawThickLine for drawing lines with thickness.
  • Fixed: sound from poly objects through portals will now propegate properly.
  • Add HITOWNER flag, when set, allows a projectile to collide with its shooter.
  • Allow LineAttack's LAF_NOINTERACT to fill FTranslatedLineTarget's information.
  • Added DMG_EXPLOSION flag.
  • Adds OnDrop virtual to inventory items. Called on the dropped item at the end of DropInventory.
  • Enabled the linear shadowmap filter.
  • Update xBRZ upscaler to version 1.6.
  • [modern only] Added 5x and 6x upscaling with xBRZ.
  • Add 'normalNx' texture scaling (normal2x, 3x, 4x, 5x, and 6x) (5x and 6x only supported in modern).
  • Upgrade libADLMIDI and libOPNMIDI.
  • Export various resurrection-related functions to ZScript.
  • Fixes for Wraith Corporation WADs.
3.7.0475b57f (December 27)
Release thread
  • Completely revamped textures system, allowing for more future extensibility and rework, also fixes a few issues.
  • Add support for scaled textures in the software renderer.
  • Untranslated fonts now appear as truecolor.
  • Improvements to Doom64 colouring.
  • Add NOFRICTION and NOFRICTIONBOUNCE flags.
  • Declared Actor's Morph and UnMorph functions virtual.
  • Scale factor is now applied to all scaling modes.
  • Add vanilla lightmode that behaves exactly as Doom's original light did.
  • Cheat-enforced CVARs can now be changed in normal single player games without sv_cheats.
  • Added a JIT compiler for DECORATE and ZScript which should allow some maps and mods to perform slightly, if not significantly faster in some cases (64-bit only).
  • Scriptified the AltHUD.
  • Many bug fixes.
  • Lights are now referenced by sections rather than surface, to speed up light linking. This should allow a dynamically-lit plasma bolt to pass over a 3D bridge in Frozen Time without turning the game into a slide show.
  • Many scriptifications from native code to ZScript.
  • Add shader cache for Intel GPU's which should result in faster startups (especially on Windows) - first startup will still be slower, though.
  • Added IsPointInMap.
  • Added destructible geometry.
  • Added a function to get the actor's age in tics.
  • Added a new field to the Actor class which stores the amount of tics passed since the game started on the moment the actor was spawned.
  • Added a function to the Actor class to get its spawn time relative to the current level.
  • Added spawn time information to the output of the info console command.
  • Export AllClasses global field.
  • Update GME up to 0.6.2 version.
  • Changed the way alpha works on DrawLine and DrawThickLine so they're consistent.
  • GL renderer is now partly multi-threaded, resulting in a 10-20% speedup, depending on a map's complexity.
  • Add "neutral" gender option and better obituary formatting.

2019

3.7.174b60ad (January 1)
Release thread
  • Fixed various bugs.
3.7.2caf326a (January 20)
Release thread
  • Resolution selector now sets to auto detected resolution at startup, no longer uses entries from the config file.
  • Committing a scaling change for fullscreen sets scaling to 1.0 to guarantee the selected number of pixels are actually used.
  • Add 4k UHD resolution to presets.
  • Fixed various bugs.
4.0.0ec0c82d (April 7)
Release thread
  • General:
  • Vulkan released in its alpha stages.
  • Localization: GZDoom has been translated to several languages.
  • Scaling has been changed. GZDoom now runs at a minimum of 640x400. An extra mode - 960x600 - has been added to replace the lost 320x200 one.
  • Internal code restructuring to agnostisize level structures.
  • Add cl_blockcheats - useful for people who use debugging keys, allows a user to consciously turn off cheats without affecting the server.
  • Punctuated the input strings in UpperCamelCase format, improving its appearance in the menu for upper/lowercase capable fonts.
  • wait console commands no longer execute inside the level, and can run during intermissions and outside the game.
  • Moved controls to submenus in Customize controls menu.
  • Implement page string names for dialog lumps.
  • Did a bit of cleanup on the option menus by regrouping some settings, especially splitting out of the Hardware Rendering Options menu into submenus.
  • Fully scriptified the Actor class hierarchy.
  • Added Z + camera roll relativity for A_QuakeEx's QF_RELATIVE flag.
  • Added inflictor, source and flag parameters to GetModifiedDamage on actors and ModifyDamage on inventory.
  • Removed extraneous parameter in SpawnPlayerMissile call in A_FireProjectile.
  • Add LookScale variable to weapons. This variable allows a weapon to set a custom look sensitivity multiplier without fiddling with FOVScale/DesiredFOV hacks.
4.1.00857320 (April 28)
Release thread
  • Workaround buggy preprocessor in old AMD OpenGL drivers.
  • Fix bloom pass regression.
  • Fixed scale calculations for option menus.
  • Implement custom post process shaders for Vulkan backend.
  • Improve error handling during Vulkan initialization.
  • Fixed inverted logic for displaying the generic log in Strife.
4.1.1d35dec9 (May 4)
Release thread
  • Bug fixes and Vulkan improvements.
4.1.2fdd8ee3 (May 14)
Release thread
  • Bug fixes and Vulkan improvements.
4.1.3d3e04a9 (June 7)
Release thread
  • Bug fixes for both ZScript and Vulkan (the Vulkan renderer is pretty much complete at this point).
  • Added native round function.
  • Added a crosshair on/off toggle.
  • cl_blockcheats 2 blocks cheats without showing any messages, useful for streamers who happen to be mappers/modders/etc.
4.2.0388c624 (August 12)
Release thread
  • Restored original vanilla behavior of Lost Souls' charging attack.
  • Exposed Append() method to ZScript dynamic array.
  • Fixed handling of the "ouch" face.
  • Fixed an inconsistency with missiles bouncing off actors.
  • Added option to print a map author's name on the summary screen.
  • Adds option to use a rotation of quicksaves instead of having one quicksave slot that needs to be manually created.
  • Allow switching the Strife conversation screen to the VGA font for all languages by a CVAR.
  • Added A_SoundPitch and an optional pitch parameter to A_PlaySound and S_Sound.
  • Hacx and Harmony now support localization.
  • New supported languages: Czech, Finnish, Japanese, Polish and Serbian.
  • RenderUnderlay feature.
  • Attachable dynamic lights with ZScript or DECORATE.
4.2.1f586196 (September 10)
Release thread
  • Dutch translation.
  • Give P_ExplodeMissile a damage type when being called from P_DamageMobj.
  • Rename sprite names with '^' in the hires namespace.
  • Compatibility option for Daedalus MAP19 which depends on an old scriptwait implementation.
  • Added dlg_vgafont and log_vgafont to the menu.
  • Add empty line in menu after standard options.
  • Make the build work with fluidsynth 2.x.
  • Level compatibility additions for Scythe 2 and Hell Revealed
  • Fixed: saving game to read-only file was erroneously reported as success.
  • Add current, max and average velocity as stat (#912).
  • Added ability to specify deprecation messages in ZScript.
  • GME update with bug-fixes.
  • Vulkan: release any references to command buffer when flushed.
  • Fixed crash on parsing bad hex number.
  • Let Hexen Cleric and Mage use unique health chains.
  • Allow custom status bars to override notification and centered message display.
  • Improve crosshair health color to be more informative.
  • Converted keyboard turnspeeds into global CVars.
  • Added obituary fallbacks for actors that do not have any defined.
  • Fixed bad default alpha for 3D floors.
  • Fixed attached dynamic light setup.
  • Added check for multiple parsing of the same MAPINFO.
  • Exposed xBRZ scaler options as CVARs.
  • Updated xBRZ scaler to version 1.7.
4.2.3d5ff274 (October 20)
Release thread
  • Fixed wrong offset on Fighter's Fist.
  • Added Armor to Hexen fullscreen display.
  • Export F3DFloor structure and related data.
  • Fix of checking for valid texture access, rather than checking whether it is null, when drawing fog boundaries in the software renderer.
  • Fixed crash with mock2.wad in software.
  • Fix for LineTrace not setting its starting sector based on its offset.
  • Fixed: sector lights could access the sector before it was set.
  • Fixed ancient ZDoom savegame slot selection bug. When creating new autosaves LastAccessed and LastSaved were not updated accordingly.
  • Fix crash on Vulkan with a large number of texture shaders.
  • Adapted the PSX XA decoder from EDuke32 as a music format in GZDoom.
  • Internal restructuring of music system.
  • Fixed inventory scroll arrows in alternative HUD.
  • Add m_quickexit option for quick exit in game menu.
  • Fixed a crash in the software renderer that caused wallsprites to crash.
  • Cleanup of game exit code to be more reliable, as this could cause spurious crashes.
  • Fixed capped tall skies not working (Heretic and Hexen).
  • Fixed sky stretching for the new freelook limit.
  • Made GL nodes loader more resilient to broken data.
  • Fixed CheckBossDeath not checking for actor replacements.
  • Fallback to console font in case of missing small font.
  • Fixed: pickup flash didn't fade out if player was killed by pickup.
  • Fixed: the dynamic lights must be initialized before the first frame is ticked.
  • Fixed SPC music looping after update to GME 0.6.2.
  • Fixed broken walkthrough of Restoring Deimos MAP03.
  • Fixed broken walkthrough of Skulldash MAP04.
  • Implicitly clear local dynamic arrays.
  • Fixed crash with dynamic light manipulation through netevents.
  • When adding some minmum lateral movement to trigger collision detection, do not just set Vel.X but actually use a vector pointing in the proper facing direction of the actor.
  • Fixed GetLineX/GetLineY ACS implementation.
4.2.403e6c1a (November 3)
Release thread
  • Fixed stretching for 256 and 240 pixels tall skies in software.
  • Fixed broken walkthrough of Restoring Deimos MAP07.
  • Fixed a bug in the flagdef processing code.
  • Adjusted collision detection for item pickups. Use vanilla condition for a thing with MF_SPECIAL flag to fix inability to grab it when item's top is at the same height as sector's floor from it can be picked up.
  • Fixed localization support for intermission texts.
  • Fixed radius attack that may inflict damage twice.
  • Sort CVAR output in config alphabetically instead of randomly dumping them in their internal order.
  • Fixed ZScript's Screen.DrawLine using the wrong color when drawing pure black.
  • Fixed missing frames for Hexen's fighter's axe attack without mana.
  • Fixed usage of uninitialized object in BlockLinesIterator.
  • Removed hardcoded width limit for screenshots.
  • Fixed dynamic arrays as function arguments.
  • Added Visual Studio debugger visualization for several types.
  • Do not accept read-only variable as out argument.
  • Fixed variable's stack offset for implicit dynarray clearing.
  • Fixed Vector2/3 out parameters in the ZScript compiler.
  • Added explicit clearing of global VM stack. When exceptions are thrown from JITed code, the VM stack isn't cleared during unwinding.
  • Fixed typo with D'Sparil's serpent attack in lights.pk3, creating an extremely large light.
  • Fixed bad application of translucency in the software renderer.
  • Scythe MAP22 compatibility fix.

2020

4.3.125c74c2 (Januray 5)
Release thread
  • New softpoly backend for the hardware renderer.
  • The software renderer will start again on DX9 compatible hardware that doesn't support OpenGL 3.3.
  • Advanced texture colorization options.
  • Scripted map post-processor.
  • Dictionary class for ZScript.
  • Reinstate 320x200 with the following caveat: it only functions outside of menus and console, and only when the dialogues and logs use the default font, the game will temporarily switch to 640x400 in these situations.
  • Add PSPF_PLAYERTRANSLATED flag (makes a PSprite layer translated to the user's color).
  • Support for MIDI on Linux via alsa sequencer.
4.3.29762509 (Januray 12)
Release thread
  • This is a mainly a bug-fix release. There are two notable new features, though:
  • Added ML_NOSKYWALLS and ML_DRAWFULLHEIGHT.
  • Add support for new Bethesda.Net Unity Edition WADs.
4.3.3a3b0f21 (Januray 20)
Release thread
  • This is a mainly a bug-fix release for the softpoly renderer and the customizable invulnerability colormap feature.
4.4.0e98ef83 (June 7)
Release thread
Release notes are not available yet. See the release thread for details.
4.4.15001f36 (June 10)
Release thread
  • This is a bug-fix release addressing a few issues that were reported for 4.4.0.
4.4.204e53b8 (June 16)
Release thread
  • This is a bug-fix release addressing a few issues that were reported for 4.4.1, with two notable new features:
  • Add "restart" button to error pane in Windows.
  • Made the new Build light mode operational.