News

The GZDoom 3.5.0 survey's results

Posted by on at 02:10
(5) 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
(19) 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

GZDoom 3.4.0 Released

Posted by on at 17:24
(29) 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.

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


Notes
  • removed DirectDraw and Direct3D backends, removed unaccerated SDL framebuffer backend
  • reorganization of 2D and 3D rendering code in preparation for Vulkan in the future
  • renderer can now be "live switched" between the Software renderer and Hardware-accelerated OpenGL modes - like old GZDoom
  • CVAR that handles it is now 'vid_rendermode' - vid_renderer, swtruecolor, and r_polyrender have been removed and combined into new CVAR
  • include and forward declaration cleanup: lots of unused stuff removed
  • rendering settings removed from launch popup: they can now be changed dynamically in-game
  • internal level compatibility definitions are now carried out by ZScript, more level compatibility settings have been added
  • Thread-Local Storage is now required on all compiler systems in order to use GZDoom. This means you cannot use OpenBSD versions earlier than 6.3, and GCC is still unavailable for that platform.
  • improvements to models in Software Renderer (still in beta state, but available for experimentation, use 'r_models')
  • Added activation type to WorldLine(Pre)Activated events
  • Added names for arguments in DStaticEventHandler class definition
  • protected critical portal data from getting written to by user code. This data is game critical and may only be altered by code that knows what is allowed and what not.
  • added a compatibility handler for Kama Sutra MAP01's ending area.
  • fix softpoly portal crash
  • Fixed missing textures on Valhalla with hardware renderer
  • more rendering fixes for Softpoly and Hardware-OpenGL
  • fix missing fuzz initialization in softpoly
  • Removed gl_lights_checkside
  • Made 100% kills possible and unstuck imp on Valhalla map
  • added a 'lightsizefactor' command to gldefs.
  • Actor's Activation property is now stored in saved game
  • fix softpoly mirrors
  • Made 100% kills possible on Altar of Evil, easy skill
  • (internal ZScript) Add info about UseSpecial flag feature conflict above Actor.Used
  • Fixed initialization issues with dynamic lights.
  • Implemented workaround for ZScript LineTrace with 3D floors
  • Added missing commented enum entry for ETraceFlags on ZScript side
  • Only call additional LineCheck if there are 3D floors
  • Enabled playing of *gasp sound by default
  • Added startup song definition for custom IWADs
  • Fixed walkthrough blocker in Sin City 2 via compatibility entry
  • allow animated title pics.
  • don't force the renderer to remain active in windowed mode when in the background.
  • OPL Synth fix: Double-voice instruments randomly don't play second voice
  • updated LZMA library to version 18.05
  • serialize 'spawned' object flag, WorldThingDestroyed event relies on it
  • added compatibility fix for bad sector reference in Plutonia MAP11.
  • use libc++ for all targets on macOS
  • SDL: clear button state when switching from/to GUI input
  • added r_debug_draw that shows how the software renderer composes its scene (remember that Youtube video Edward850 made?)
  • added end line to recursive sound warning
  • reduce the number of direct OpenGL calls done by the post processing steps
  • fixed calculation of glow color
  • fixed crash during autoloading of material textures
  • fixed sloped drawer crash
  • added end line to various messages so they don't screw up further output anymore
  • fixed alpha of weapon sprite.
  • added 'vid_scaletowidth' and 'vid_scaletoheight' to calculate 'vid_scalefactor' to reach a certain value on screen dynamics (i.e. if you want 320 pixels wide, use vid_scaletowidth 320)
  • Add support for Unreal Engine 1 vertex mesh format.
  • added LevelLocals vec2/3Offset(Z) functions for portal-aware offsetting without needing actors
  • trigger WorldThingDamaged event before WorldThingDied
  • set a sane lower limit for vid_scalefactor, removed some code redundancy
  • define zdoom.rc as a proper Windows text file, stop Git from mismanaging it
  • add 'vid_showcurrentscaling' ccmd - shows both virtual and real screen resolution for the current render
  • made vr_enable_quadbuffered windows-only, some fixes to it
  • use an indexed vertex buffer to render flats
  • use triangles instead of triangle fans to render flats.
  • render sector planes in one draw call.
  • added 'revealed on automap' linedef flag, UDMF only
  • added forced automap style to linedef, UDMF only
  • added CVAR to disable WGL_EXT_swap_control_tear. ('gl_control_tear') - see commit 'cc65490' for more info
  • added a CVAR to disable per-plane rendering.
  • replaced tabs with spaces in UDMF spec
  • added new linedef properties to UDMF spec
  • fix model interpolation bug
  • fixed applying of alpha to weapon sprites
  • enable #include support in modeldef files
  • Add Line Specials Line_SetAutomapFlags, Line_SetAutomapStyle
  • force model light to be attenuated
  • restore startup game state on restart
  • fixed blinking frame after saving a game
  • when restoring a savegame with errors, show the console instead of a 'very fatal error' crash (commit message: fixed: When deserializing the object list, the array must be nulled before using it so that a premature abort does not end up working on random data.)
  • replace softpoly block drawers with span drawers and make them use blending rules directly from render styles
  • add dynlights to softpoly pal mode
  • fixed rendering of environment map on mirrors
  • fixed Windows XP compatibility for MSVC 2017 targets
  • limited length of server CVAR name to 63 characters
  • fixed: +DONTSPLASH disabled all terrain effects, not just the splash.
  • use a linear light ramp on the textured automap for light modes 0 and 1.
  • fix savepic render buffer issues
  • Swap front face culling for GL model drawer (CCW should be the default).
  • Added mirroring handling to software models.
  • use affine dynlights in softpoly
  • fix memory arena allocation alignment for 32 bit systems.
  • fixed: For melee attacks with a short attack range P_AimLineAttack must check for hits from above and below.
  • fixed mouse cursor positioning in menu for Cocoa backend
  • fixed linking with sanitizer(s) enabled
  • Fixed: Dehacked must not validate parameters for MBF special functions.
  • fixed - sector sounds were not translated through static portals properly
  • BLOCKASPLAYER flag: treat non-player actors as blockable by "block players" lines
  • fix crash on dying when player class has no death states
  • fix softpoly colored fog bug in the new drawers
  • fix dynlight color not being applied on sprites
  • Adds "OnGiveSecret" virtual function on Actor for customizing behavior of secret finding.
  • fix software renderer dynamic lights not working properly in mirrors
  • fixed autoaiming for unranged attacks.
  • fix null pointer crash in softpoly
  • add dynamic lights to softpoly and software renderer models

(Note from Rachael: This is a major release, with many notes and features - it was actually very hard to create a short 'highlights' section - if I missed anything important, please let me know!)
Comments

Browsing the Forums on a Phone

Posted by on at 09:36
(4) Comments
I remember one complaint I got from a user several months back was how phone-unfriendly this site is.

Unfortunately, there's no way currently to enable phone-responsiveness to the default styles, but I installed a new style that you can activate at the tap of a link, right here-> Mobile Style. A link is also available on the index page in the forum list. (The link can also be bookmarked on your phone - so that you always use the mobile version on there)

This should make it easier for those of you with phones to use the site. :)

Yes, I'd like someday to have coloured versions of this. Anyone who is interested in contributing, let me know. :)

(Credits to Artodia for this style)
Comments

GZDoom 3.3.2 released

Posted by on at 16:49
(9) Comments
Download Here


Major Highlights
  • 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.
  • Exports P_ActivateLine to ZScript (along with constants for activation type)
  • Increased size of the savegame comment area.


Full List
  • Forbade dynamic array as the return type of a function
  • Fixed detection of .ipk7 custom IWADs
  • Reintroduced discarding of custom IWAD duplicates
  • Updated zlib to 1.2.11
  • Fixed potential crash on usage of Mystic Ambit Incant
  • Fixed crash when vid_setmode CCMD is used from command line
  • Restored vanilla behavior of lightning for original Hexen
  • Fix mid texture rendering for self-referencing sector lines
  • Added zero initialization of implicit dynamic array items
  • Added loading of ZSDF lumps by full paths
  • Added message for absent explicitly referenced dialog file
  • disabled the survey code.
  • Exports P_ActivateLine to ZScript (along with constants for activation type)
  • Separated P_ActivateLine ZScript export into two functions, one with and one without a vector parameter.
  • Increased size of the savegame comment area.
Comments

The GZDoom 3.3.0 survey's results

Posted by on at 13:07
(12) Comments
By now the percentages have stabilized to the point that an official news post can be made about it.
Until today we got information from 5700 users and I want to say "thank you" for giving us the info needed to move on with GZDoom.

So here's the important results:

57% of the reporting users use a graphics card which is DX12/Vulkan compatible.
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.
6% of the reporting users use a graphics card which only has OpenGL 2 support, i.e. has to be run in legacy mode.
8.5% of the reporting users have made a report for the software renderer
3% of the reporting users only made a report for the software renderer

A further breakdown of the 8.5% reporting use of the software renderer:

49% of these also reported using the hardware renderer with a DX12/Vulkan compatible graphics card.
40% of these also reported using the hardware renderer with a GL 3.3 compatible graphics card.
11% of these also reported using the hardware renderer with a GL 2 compatible graphics card.

Only 17 out of those 5700 users only reported running the game in pure software mode - that is less than 0.3%.

Distribution of operating systems is:

88% Windows
2% Mac
10% Linux

85% use 64 bit on a 64 bit system
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.)
6% use 32 bit on a 32 bit system
(duplicate reports bring this above 100%)


So there you have it. All things considered the average hardware being reported is a lot better than what we would have expected and this will allow us to focus development more on where the users are. What this clearly shows is that even among retro gamers that old feature-poor hardware is slowly being replaced.
So what does this mean for how GZDoom will develop? Watch the Blogs forum for the next few days, there will be an update about the current plans.

And now that the survey has run its course, prepare for a new GZDoom version where it will be deactivated again during the coming week. The survey has given us a lot of useful information but further reports do not seem to affect the numbers much more, the percentages have barely changed since last weekend.
Comments