News

John Romero - Honoring the Awesome Man He Is

Posted by on at 17:46
(5) Comments
If you've had your ear to the ground lately, then you know that John Romero has come under fire lately for joining a charity stream by HBomberGuy to raise money for a youth trans charity. The attacks have been vicious, unfair, childish and hateful.

So to try and counter that, and to show John Romero support, not only for what he has given us over the years, but for standing up for principle and being strong, and to show that he is not alone in this, many of us staff from both here and the r/Doom subreddit have come together and decided to create a project to show our appreciation for him.

Kevansevans, a r/DOOM subreddit moderator, has taken up the mantle for leading this project.

And John - if you ever read this - you did the right thing. The staff in both of our communities stand behind you, along with many of our members. We owe you a great deal for the fun you have given us over the past quarter of a century. What happened to you was wrong - and we're here to stand strong and tell you in one clear voice - we have your back - and we want to give you something back.

To anyone else interested in contributing to this project, you can join in on this project here!
Comments

GZDoom 3.7.2 Released

Posted by on at 13:31
(7) 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.2 does not include the survey code that 3.5.0 did.


Download (Modern, OpenGL 3.3 and higher)

Download (Vintage, OpenGL 2.x)

Highlights
  • 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
  • More Bug Fixes


Details
  • fixed: ScriptUtil.PlayerAmmo must be declared static.
  • modify the wording in the preset scaling menu to imply that all it does is pixel scaling, not change the actual screen resolution
  • 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
  • fix spacing on one of the resolution preset entries
  • fixed: The rail attack only considered the puff's decal if it had ALWAYSPUFF set.
  • reverted GME Kss_Cpu.cpp to previous version (Update to GME 0.6.2 broke playback of MSX .kss files)
  • applied proper scaling type to font textures
  • fixed: application of fake contrast should never result in a light level of 0 unless the sector's own light level is 0.
  • normalize the pitch in ACS's SetActorPitch.
  • fixed: TVector3::Pitch() got the sign inverted.
  • workaround MSVC 2015 code generation issue, x64 only (With optimization turned on illegal instructions were generated for turbo CVAR handler function)
  • workaround code generation issue in PlayerPawn.FindMostRecentWeapon()
  • fixed default alpha for sector colors
  • fixed disappearing inventory after morphing pickup
  • fixed potentially missing event handlers
  • fixed wrong self type in Array.Resize()
  • unary minus operator propagates boolean operand to integer
  • fixed script line numbers after multi-line raw string literal
  • fixed incompatible commit.
  • fixed condition to produce blood splatter during line attack
  • relaxed caller type check for states modified by Dehacked
  • fix black cam texture on HUD
  • fix null pointer crash
  • Make LevelLocals::ExecuteSpecial return int
  • Fix return value of native BuiltinCallLineSpecial
  • Fixed multidimensional array definitions.
  • increased range of valid sound positions and velocities
  • Move receiver NULL check above the orresult check (#695) - This is to prevent a VM abort from happening here if orresult is false.
  • Fixed Thing_ProjectileAimed being broken.
    • It was calling the fallback aiming in the wrong place when it should have been outside the speed check.
    • Credit to _mental_ for the base code, but no gotos involved.
  • fixed the direct native variant of DynamicLight.SetOffset.
  • fixed: The player sound lookup would fail if a sound was only available for the last gender in the list. (This is an ancient bug, but it never registered before - only after making 'other' the default gender for nonsense input it became apparent.)
  • Default gender for sound classes should be male and not other since it could be undefined in SNDINFO.
  • fixed A_Chase default detection.
  • Add missing screenshot sRGB gamma when vid_hdr is active
  • Fixed: NODAMAGE was not accounted for with pain.
  • added missing range checks to level compatibility handler
  • force CMake to use internal asmjit. I left it in a state so that it can easily be changed back in the future.
  • fix Unix builds without backtrace functions in their libc
    • backtrace functions are not present in all libc implementations. Cmake has
      module to add external libraries into build if needed so use it to fix build on
      Unix systems without backtrace in libc.
  • Fix A_CustomBulletAttack's spawnofs_xy parameter
  • Since GetParentAmmo is now virtual, BackpackItem and the "give ammo" cheat should call GetParentAmmo to determine base ammo classes.
  • fixed memory leaks in network code.
Comments

GZDoom 3.7.1 Released

Posted by on at 09:13
(15) 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
(66) 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