News

GZDoom 3.7.1 Released

Posted by on at 09:13
(14) Comments
Notice: This release has been split into two. There is now a "modern" version and a "vintage" version, for older hardware. More info can be found here.

Please note that the survey is currently closed. GZDoom 3.7.1 does not include the survey code that 3.5.0 did.


Download (Modern, OpenGL 3.3 and higher)

Download (Vintage, OpenGL 2.x)

Highlights
  • Just bug fixes


Details
  • fixed everlasting fast projectile after hitting ceiling - Without the test for ceiling hit fast projectile could enter its Death state every tick infinitely
  • fixed crash in AutoUseStrifeHealth - The loop never checked if the item was still valid and would continue to try to use it, even after it was removed from the inventory and destroyed. As native code this just failed silently, but with the VM it needs to be explicitly checked.
  • fixed typo in sky preparation.
  • Fixed: SXF_CLEARCALLERSPECIAL cleared the spawned actor's special instead of the caller.
  • Fixed settings_controller not updating properly when a player becomes the new arbitrator in a netgame.
  • added missing return in P_RemoveThing.
  • added missing null pointer check to SBarInfo's inventory bar drawer.
  • fixed ammo check for weapon with 'uses both' flags
  • fixed SPC music loops
  • fixed precaching of switches. The backwards animation accessed the wrong array which in case of sequences with different length could crash
  • fixed missing attack sound in A_CustomPunch
  • Fixed: IsFakePain received the modified damage instead of the raw, preventing ALLOWPAIN from working as intended.
  • TNT.WAD fixes
  • Have Plutonia MAP16 pit kill player
Comments

ACC 1.57 released

Posted by on at 18:40
(3) Comments
This brings it in line with newer features from both Eternity and GZDoom.

Download

changelog
  • Added SECPART_3D definition
  • Updated specials and definitions for destructiblegeometry branch
  • Adding the new automap specials

    • 281:Line_SetAutomapFlags(lid, setflags, clearflags),
    • 282:Line_SetAutomapStyle(lid, style),
  • Added SetAirFriction for Eternity.
Comments

GZDoom 3.7.0 Released

Posted by on at 08:01
(62) Comments
Notice: This release has been split into two. There is now a "modern" version and a "vintage" version, for older hardware. More info can be found here.

Please note that the survey is currently closed. GZDoom 3.7.0 does not include the survey code that 3.5.0 did.


Download (Modern, OpenGL 3.3 and higher)

Download (Vintage, OpenGL 2.x)

UDMF changes - important for editor authors!
  • Expand UDMF and ZScript API for side's own additive colors
  • Add 'useowncoloradd_{top,mid,bottom}' sidedef properties to the UDMF spec
  • Please be aware there are also now UDMF fields for destructible geometry. (implementation details here)


Highlights
  • 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 as usual
  • 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(Vector3 p).
  • Added destructible geometry, exported to ZScript
  • Added a function to get the actor's age in ticks.
  • Added a new field to the Actor class which stores the amount of ticks 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
  • 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 obit formatting


Details
Spoiler: This list is pretty big...
Comments

GZDoom 3.6.0 Released

Posted by on at 16:22
(59) Comments
Notice: This release has been split into two. There is now a "modern" version and a "vintage" version, for older hardware. More info can be found here.

Please note that the survey is currently closed. GZDoom 3.6.0 does not include the survey code that 3.5.0 did.


Download (Modern, OpenGL 3.3 and higher)

Download (Vintage, OpenGL 2.x)

Highlights
  • 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 AActor::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
  • Exports various resurrection-related functions to ZScript.
  • Fixes for Wraith Corporation WADs


Details
  • Additional blocking-related flags for Actor.LineTrace()
  • Added CheckReplacement to event handlers, a function inspired by its namesake in Unreal's Mutator class.
  • Add "IsFinal" parameter for CheckReplacement.
  • Add HITOWNER flag, when set, allows a projectile to collide with its shooter.
  • support static const arrays inside structs
  • prohibit assignment of dynamic arrays
  • Add ZScript method `LevelLocals.SphericalCoords`.
  • fixed: sound from poly objects through portals will now propegate properly
  • defaulted constructors and assignment operators of several trivial types.
  • removed most of the old LastIndexOf methods in FString, only leaving one for ZScript and clearly giving it a name that says it all. RIndexOf has been made the proper version of LastIndexOf internally now.
  • Added paths for all games on Steam for Linux since they now offer the ability to download all games for Proton/Wine.
  • Check ~/.steam on Linux for the config.
  • add menu sliders for `vr_ipd` and `vr_screendist`
  • added Screen.DrawThickLine for drawing lines with thickness
  • fixed: always initialize active colors in special font
  • update french language translation from Tapwave
  • Add OBJ model support
  • fixed the use of Doom-Legacy-style 3D floor lighting in light mode 8.
  • fixed math imprecisions in horizon vertex generation.
  • be more thorough with 'in menu' checks for certain protected functions.
  • Fixed code generation of infinite for loop
  • Add NewGame to EventHandler
  • Make StatusScreen::End virtual
  • Allow LineAttack's LAF_NOINTERACT to fill FTranslatedLineTarget's information.
  • Added DMG_EXPLOSION flag.
  • do not render lights from uninitialized data.
  • Adds OnDrop virtual to inventory items. Called on the dropped item at the end of AActor::DropInventory.
  • clamp the software light to never get brighter than the initial light level
  • 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
  • Exports various resurrection-related functions to ZScript.
  • Computed facet normals for UE1 models were not normalized when they were supposed to.
  • removed dynamic lights from Hexen's Mana pickups.
  • fixed potential null pointer access in Hexen's spike code.
  • Fixes for Wraith Corporation WADs
  • fixed: smooth teleporters could fudge the player over an adjacent line, causing the player to appear on top of a cliff that is much higher than the original teleport.
  • fixed: MD3s with a skin-less surface left the renderer in an undefined state. The frame interpolation factor wasn't reset and rendering prematurely aborted with no chance to recover.
Comments

The GZDoom 3.5.0 survey's results

Posted by on at 02:10
(15) Comments
After closing the survey with the 3.5.1 release, here's the results from 15000 users reporting:

The big numbers (3.3 survey results in parentheses)

61% (57%) of the reporting users use a graphics card which is DX12/Vulkan compatible.
34% (34%) of the reporting users use a graphics card which is at least OpenGL 3.3 compatible, i.e. it can use the modern core profile render path.
This is further split up into 19% running an OpenGL 3 compatible card and 15% running an OpenGL 4.3+ compatible (i.e. capable of running the most modern render path) card.
2.5% (6%) of the reporting users use a graphics card which only has OpenGL 2 support, i.e. has to be run the legacy build.

No separate reports were made for the software renderer anymore.

Distribution of operating systems is:

90% (88%) Windows
1.9% (2%) Mac
8% (10%) Linux
0.3% are on Windows XP - most using the vintage build.

87% (85%) use 64 bit on a 64 bit system
9% (10%) use 32 bit on a 64 bit system. (This one's odd, I'd appreciate if some of these users can tell us why.)
4% (6%) use 32 bit on a 32 bit system

I think the most interesting aspect in here is the sharp dropoff in users on systems with OpenGL 2 and OpenGL 3.1. It more than halved over a mere 4 months!
This speaks a very clear language about the future of support for this hardware group. If the dropoff continues at the given rate and factoring in the Christmas business this will most likely not be supported past 2019.
Windows XP user share has already reached numbers where supporting it makes no real sense anymore - the exact number as of this morning was 48 users out of roughly 15000. As long as there is no need to reconfigure the project it will remain supported but I give no guarantees whatsoever about for how long.
Comments

GZDoom 3.5.1 Released

Posted by on at 15:19
(38) Comments
Notice: This release has been split into two. There is now a "modern" version and a "vintage" version, for older hardware. The reason for this is that some recent changes to improve performance on modern hardware resulted in quite severe slowdowns on Intel's OpenGL 2 hardware. So in order to give these users the best possible experience it was decided to provide this vintage build which adds all new non-renderer-related features with the latest state of the renderer from before the abovementioned change. The vintage version is provided thanks to the efforts of drfrag.

Please note that this solution is only a temporary measure. User share of OpenGL 2 hardware had already been low when we ran our survey with GZDoom 3.3 and once this drops any further the vintage build will be discontinued. If you cannot run the main (modern) build we strongly recommend to upgrade your hardware.

Please note that the survey is now closed. GZDoom 3.5.1 does not include the survey code that 3.5.0 did.


Download (Modern, OpenGL 3.3 and higher)

Download (Vintage, OpenGL 2.x)

Highlights
  • 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.


Details
  • 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
  • Implemented "resolution mode selector"
  • add post processing support to the software renderer and softpoly
  • Fix model rendering only using interpolated yaw. Pitch and roll are now also interpolated.
  • add dithering support to emulate higher BPC displays than your real one. this should allow smoother gradients for light fades and such.
  • clear GLWF_TRANSLUCENT at the end of PutWall.
  • fixed FraggleScript's moving camera.
  • Make various getter and pure-math Actor methods clearscope.
  • disable runtime buffer security check in release build.
  • prohibit assignment of dynamic arrays
  • Avoid overriding vr eye-specific buffer binding during 2D rendering.
  • only render visual portals if they are front facing in softpoly
  • disable survey code, 3.5.0's is over
  • got rid of FNameNoInit and made the default constructor of FName non-initializing.
  • Add the "RightIndexOf" method to FString, which works like String.lastIndexOf from JavaScript
  • Deprecate the LastIndexOf method of StringStruct
Comments

The new red suits you might've seen

Posted by on at 12:46
(2) Comments
So why in the world would we need more people in red running around, you might ask?

Well - to help with account issues, of course! Congratulations to Caligari87 and Gutawer!

These two fine gentlemen are here to help, particularly in the absence of myself and wildweasel, with any account issues you may have. If you lose access to your account, they can be found on Discord. If you need your name changed, they can help when we're gone. If your permissions are a bit fuckered and you can't download files - that's what they're here for.

Thank you, and congratulations!
Comments

GZDoom 3.5.0 released

Posted by on at 13:49
(31) Comments
Notice: This release has been split into two. There is now a "modern" version and a "vintage" version, for older hardware. The reason for this is that some recent changes to improve performance on modern hardware resulted in quite severe slowdowns on Intel's OpenGL 2 hardware. So in order to give these users the best possible experience it was decided to provide this vintage build which adds all new non-renderer-related features with the latest state of the renderer from before the abovementioned change. The vintage version is provided thanks to the efforts of drfrag.

Please note that this solution is only a temporary measure. User share of OpenGL 2 hardware had already been low when we ran our survey with GZDoom 3.3 and once this drops any further the vintage build will be discontinued. If you cannot run the main (modern) build we strongly recommend to upgrade your hardware.

To get a proper baseline here this version re-enables the survey code from GZDoom 3.3 with slightly more detailed statistics. Unfortunately recent developments made the information about used graphics hardware a bit too coarse and does not really help assessing the real need and extent of providing vintage support, so this one sends a bit more detailed information about the graphics hardware being used, in particular the precise OpenGL version being used.
You will be prompted for opt-in just as before (but your last preference will be remembered, if you ran a version that used it previously).


Download (Modern, OpenGL 3.3 and higher)

Download (Vintage, OpenGL 2.x)

Highlights
  • (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
  • default to "fullscreen" display
  • fixed a potential exploit with malformed WAD files. Thanks to xanaxdev ( th0razine@ret2p.lt ) for reporting it.

Details
  • 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.
  • enable model rendering in the software renderer
  • fixed: flag CVars in ZScript referenced wrong addresses
  • fixed: ZScript used the wrong variable for compatflags2. The variable it accessed was only the settings from the compatibility.txt lump.
  • 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. (this fixes lights not rendering properly when loading)
  • fixed portal restoration on revisiting level in hub. Added function to test if map is being reentered
  • (modern branch only) render refactorings and fixes, use uniform blocks for postprocessing shaders to prepare for move to vulkan
  • (modern branch only) Remove all code to handle OpenGL 2 and <3.3.
  • (modern branch only) Force render buffers to always be active
  • (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.
  • Save item statistics - Items are now saved into save games and are displayed on the statfile
  • Fixed: End of file detection in MAPINFO parser was not correct - It should check for the special "End" flag instead of trusting that if the last token was a closing brace, all was correct. This can fail if the last token in a multiline string is a brace.
  • Large number of MinGW fixes
  • Don't let DEarthquake depend on r_viewpoint. - The ticFrac value should be passed as a parameter, especially since this gets called from code that sets up r_viewpoint.
  • Fixed: DBaseStatusBar::Draw did not use its ticFrac parameter when being called from scripts - Instead it directly went to the global viewpoint again which would be inconsistent.
  • Upgrade libADLMIDI and libOPNMIDI
  • disable the wipe code entirely when a stereo3D mode is active.
  • add tags for all Doom and Heretic monsters for mods that reveal monster names
  • (Mac and Linux) fixed excess keyboard events in Cocoa and SDL backend
  • UE1 model fixes and code cleanup
  • various compatibility fixes for old maps and mods
  • player setup backdrop now uses a CC0 texture, instead of the procedural one generated from ZDoom
  • fixed titlepic animation
  • Custom hardware shaders now can use custom texture units
  • rewrite the user shader support for materials - new syntax is to create a 'Material ProcessMaterial()' function
  • re-enabled stats sending
  • (modern only) Add vid_setsize <x> <y> to adjust the window size
  • Add vid_setscale <x> <y> [bool linear] [bool fake 10:12] to adjust the virtual resolution inside the window.
  • fixed: vid_showcurrentscaling now always shows the correct window geometry and virtual scaling geometry
  • scaling code now always requires GZDoom to output at least 320x200 to prevent assertion failures
  • fixed missing decals on 3D floors with hardware renderer
  • disable any texture clamping for textures with a user shader.
  • fixed: The BossCube must account for its target being gone.
  • default to "fullscreen" display
  • fixed buffer overflow in saved game comment
  • fixed: A global variable was used to pass MeansOfDeath to ClientObituary. Now it passes this value through the intermediate Actor.Die method.
  • allow skipping optional arguments of the parent function in a virtual override definition. - This is mainly to allow retroactive addition to existing virtual functions without breaking existing content. The MeansOfDeath fix for Actor.Die would not be possible without such handling.
Comments

GZDoom 3.4.1 Released

Posted by on at 19:05
(41) Comments
Download

If you have issues running this version, please create a thread here. You do not need a ZDoom.org account for this. Thanks.

Release Notes
  • 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.
Comments

QZDoom 2.1.0 released

Posted by on at 07:04
(5) Comments
Download

To this day, I keep getting a lot of folks asking me if QZDoom is going to ever do a release again. And I keep telling them that there are no immediate plans for it. I wasn't lying. This is purely impulsive.

The main purpose of this release is two things: a) Bring a stable QZDoom that is up-to-date, particularly with security enhancements, from the latest GZDoom (3.4.0 as of this writing). and b) Fix the broken download link on the front page. (yall keep telling me about it!)

There are currently no major features in QZDoom that are outside of GZDoom right now, but the dev builds continue to serve as a testbed for feature branches and pull requests.

So uh, yeah, long live QZDoom, I suppose?

Release notes are basically the same as GZDoom since QZDoom's last major release, so I'll just link them here. Have fun.

Image
Comments