GZDoom version history/3.x
Jump to navigation
Jump to search
This page tracks the 3.x release cycle of GZDoom by listing the main features of each version.
2019
3.7.2 (January 20 2019)
- 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.
3.7.1 (January 1 2019)
- Fixed various bugs.
2018
3.7.0 (December 27 2018)
- 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.
3.6.0 (October 10 2018)
- 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.5.1 (August 25 2018)
- 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.5.0 (July 30 2018)
- [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.4.0 (June 7 2018)
- 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.1 (June 14 2018)
- 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.3.2 (April 12 2018)
3.3.1 (April 1 2018)
3.3.0 (March 25 2018)
- 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.2.5 (Januray 4 2018)
- 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.
2017
3.2.4 (December 17 2017)
- 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.
3.2.3 (December 3 2017)
- 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.2 (December 3 2017)
- 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.1 (October 22 2017)
- 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.0 (October 4 2017)
- 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.1.0 (May 31 2017)
- 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.0.1 (May 2 2017)
- 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.0.0 (April 29 2017)
- 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.