Skip to content

MrAlaux/Nugget-Doom

 
 

Repository files navigation

Nugget Doom

Nugget Doom is a fork of Woof!, simply intended to implement additional features.

Note: this README and the rest of documentation are updated on a per-commit basis, meaning that they may not correspond to the latest release of Nugget Doom. If you're seeking information on the version you're using, please refer to the documentation included with it.

DISCLAIMER

Although the new code has been written with the intention of not breaking demo compatibility, it has not been properly tested yet. RECORD DEMOS AT YOUR OWN RISK!

Features

Note that this feature list is relative to Woof!'s; read the latter for more details. Some features were first implemented in Nugget Doom and later in Woof!, and so they're not listed here anymore.

Most of Nugget Doom's features come from other sources, like source ports and mods; the initial implementations for some are ported from (p.f.) said sources, while others are just inspired by (i.b.) them. These acknowledgements are included in the feature lists below; be aware that some might be inaccurate or outright missing.

A few settings are labeled as CFG-Only: they can only be toggled by editing nugget-doom.cfg. For these settings, their CVAR names are provided alongside the CFG-Only label as guidance.

General

  • Extended FOV range: [20, 140]
  • Stretch viewport to fit window setting (CFG-Only: stretch_to_fit) [i.b. and partially p.f. Crispy Doom; i.b. ZDoom]
  • Set Air Absorption and Doppler Effect to 5 by default
  • Tweaked Stretch Short Skies algorithm
  • Black Fade screen wipe
  • Extended Level Brightness range: [-8, 8]
  • "Direct + Auto" mode for Vertical Aiming
  • Direct Vertical Aiming for melee attacks
  • Move Over/Under Things setting [partially p.f. Crispy Doom, DSDA-Doom]
  • Jumping (default key: Alt, must be enabled first) [p.f. Crispy Doom]
  • Crouching/ducking (default key: C, must be enabled first) [i.b. ZDoom]
  • View Height setting, which allows to enter a custom POV height value in the [32, 56] range [i.b. Brutal Doom]
  • Flinching setting, to flinch upon landing and/or taking damage
  • Explosion Shake Effect setting [i.b. Doom Retro]
  • Subtle Idle Bobbing/Breathing setting [p.f. International Doom]
  • Teleporter Zoom setting [i.b. ZDoom]
  • Death Camera setting [i.b. ZDoom]
  • Chasecam [i.b. ZDoom]
  • Background for all menus setting
  • No palette tint in menus setting [i.b. Crispy Doom]
  • No Berserk Tint setting
  • No Radiation Suit Tint setting
  • Night-Vision Visor Effect setting [i.b. International Doom]
  • Damage Tint Cap and Bonus Tint Cap, to attenuate or disable said screen tinting
  • Fake Contrast setting
  • Toggle for Diminished Lighting (CFG-Only: diminished_lighting)
  • Screen Wipe speed percentage setting
  • Alternative Intermission Background setting, to replace the intermission graphic with a darkened spinning camera view
  • Sound Clipping Distance selection, to optionally double the distance at which sound effects become audible
  • One-Key Quick Save/Load setting, to skip the confirmation prompt
  • Rewinding [i.b. DSDA-Doom]
  • Play Internal Demos setting
  • Quick "Quit Game" setting, to skip the confirmation prompt [p.f. Crispy Doom]
  • Toggle for Weapon Flash Lighting [p.f. Crispy Doom]
  • Toggle for Weapon Flash Sprite [p.f. Crispy Doom]
  • Toggle for Invulnerability Colormap [p.f. Crispy Doom]

Weapons

  • Extended View/Weapon Bob percentages
  • Restored Weapon Recoil menu item
  • No Horizontal Autoaim setting
  • Switch [Weapon] on Pickup setting
  • Key to equip last used weapon [i.b. Cherry Doom]
  • Horizontal Weapon Centering setting [i.b. DSDA-Doom]
  • Always Bob setting (CFG-Only: always_bob)
  • Bobbing Styles selection [p.f. Zandronum]
  • Weapon Inertia setting (scale determined by the CFG-Only weapon_inertia_scale_pct CVAR) [by ceski]
  • Weapon Squat Upon Landing setting [p.f. Crispy Doom]
  • Translucent Flashes setting [i.b. Crispy Doom]
  • Show Berserk availability setting [partially p.f. Crispy Doom]
  • "Correct" first person sprite centering setting, to toggle the 1px first-person sprite misalignment (CFG-Only: sx_fix)

Status Bar/HUD

  • Nugget HUD, highly customizable through means of the NUGHUD lump (see docs/nughud.md)
  • Crosshair:
    • Vertical-only target lock-on;
    • Horizontal-autoaim indicators;
    • Option to account for fuzzy targets [i.b. From Doom With Love];
    • Dedicated toggle key.
  • Secret count in "secret revealed" message [p.f. Crispy Doom]
  • Show Save Messages setting (CFG-Only: show_save_messages)
  • Milestone Completion Announcements setting, to report completion of milestones (e.g. all items acquired)
  • Restored Upward Message Scrolling setting, and enabled it by default
  • Restored various message-related menu items
  • Show Powerup Timers setting
  • Show SSG availability in the Shotgun slot of the Arms widget setting (CFG-Only: show_ssg) [p.f. Crispy Doom]
  • Support for Stats icons, to be used in place of the "K/I/S" letter-labels: HUDKILLS, HUDITEMS and HUDSCRTS graphic lumps
  • Level Stats Format settings [i.b. Crispy Doom]
  • Alternative Arms Display setting, to show the Chainsaw or SSG's availability on the Arms widget in place of the trivial Pistol
  • Event Timers:
    • Teleport Timer [i.b. Crispy Doom];
    • Key-Pickup Timer [same as above].
  • Extended HUD color customization
  • Armor count is colored gray when in God Mode
  • Support for Berserk (STBERSRK) and Infinite Ammo (STINFNTY) icons

Automap

  • Minimap mode [i.b. DSDA-Doom]
  • Key to Blink [Automap] Marks (default: B)
  • Tag Finder: Position the Automap pointer over a sector and press the Tag Finder key to highlight its activator line(s), and vice versa [p.f. PrBoomX]
  • Key to Teleport to Automap pointer

Enemies

  • Extra Gibbing setting, to force Berserk Fist/Chainsaw/SSG gibbing (configurable through the CFG-Only extra_gibbing_# CVARs) [i.b. Smooth Doom]
  • Bloodier Gibbing setting [i.b. Smooth Doom]
  • ZDoom-like item drops setting [of course, i.b. ZDoom]

Doom Compatibility settings

All of these are CFG-Only, so their CVAR names are included.

  • Bruiser attack (A_BruisAttack) doesn't face target (comp_bruistarget)
  • Disable melee snapping (comp_nomeleesnap)
  • Double autoaim range (comp_longautoaim)
  • Fix Lost Soul colliding with items (comp_lscollision)
  • Lost Soul forgets target upon impact (comp_lsamnesia)
  • Fuzzy things bleed fuzzy blood (comp_fuzzyblood) [i.b. Crispy Doom]
  • Non-bleeders don't bleed when crushed (comp_nonbleeders) [i.b. Crispy Doom]
  • Fix lopsided Icon of Sin explosions (comp_iosdeath)
  • Permanent IDCHOPPERS invulnerability (comp_choppers)
  • Blazing doors reopen with wrong sound (comp_blazing2) [p.f. Crispy Doom]
  • Manually-toggled moving doors are silent (comp_manualdoor) [p.f. Crispy Doom]
  • Corrected switch sound source (comp_switchsource) [p.f. Crispy Doom]
  • Chaingun makes two sounds with one bullet (comp_cgundblsnd)
  • Chaingunner uses pistol/chaingun sound (comp_cgunnersfx)
  • Arch-Vile fire plays flame start sound (comp_flamst) [p.f. Crispy Doom]
  • Higher god-mode face priority (comp_godface) [p.f. International Doom]
  • Dead players can still play "oof" sound (comp_deadoof) [p.f. Crispy Doom]
  • Use unused pain/bonus palettes (comp_unusedpals)
  • Key pickup resets palette (comp_keypal)

Cheats

  • 'FULLCLIP' for infinite ammo
  • 'VALIANT' for fast weapons [i.b. ZDoom]
    • 'BOBBERS' serves as a shortcut to toggle the two cheats mentioned above, plus IDFA
  • 'GIBBERS' to force gibbing on dying enemies, independently of damage dealt
  • 'IDFLY' to fly (uses jumping/crouching keys) [i.b. PrBoom+, ZDoom]
  • 'SUMMON' to spawn an actor based on its type index [i.b. ZDoom, PrBoomX]
  • 'IDDF' to find a key on the Automap
  • 'RESURRECT' / 'IDRES' to resurrect the player without toggling IDDQD [i.b. ZDoom]
  • 'LINETARGET' to give some info on the player's linetarget [i.b. ZDoom]
  • 'MDK' to perform a hitscan attack of 1-million damage [i.b. ZDoom]
  • 'SAITAMA' to enable the MDK Fist
  • 'BOOMCAN' for explosive hitscan attacks
  • 'NEXTMAP' to exit the level [i.b. ZDoom]
  • 'NEXTSECRET' to exit the level as if using a secret exit [i.b. ZDoom]
  • 'TURBO' to change the player speed in-game
  • 'TNTEM' as an alternative to 'KILLEM'
  • 'FPS' as a replacement for 'SHOWFPS'
  • Mid-air control while in noclipping mode [p.f. Crispy Doom]
  • Reenabled 'NOMOMENTUM' cheat [p.f. Crispy Doom]

For more details, see the New Nugget Doom cheats section of docs/cheats.md.

Miscellaneous

  • SDL render driver setting (CFG-Only: sdl_renderdriver) [p.f. Woof! 14.0.0]
  • Key to toggle zoom
  • Autoload folder for all games (autoload/all)
  • Setting of savegame and screenshot paths in config file (CFG-Only: savegame_dir and screenshot_dir)
  • Keep palette changes in screenshots setting (CFG-Only: screenshot_palette)
  • Allowed mouselook while dead
  • Interactive character cast (Turn keys to rotate enemy, Run key to gib, Strafe keys to skip) [p.f. Crispy Doom]
  • Support for optional sounds: [partially p.f. Crispy Doom]
    • Jumping: DSPLJUMP;
    • Landing: DSPLLAND;
    • Key-locked door: DSLOCKED;
    • Key pickup: DSKEYUP;
    • Key blinking on HUD: DSKEYBNK;
    • Menus: DSMNUOPN, DSMNUCLS, DSMNUACT, DSMNUBAK, DSMNUMOV, DSMNUSLI, DSMNUERR;
    • Intermission: DSINTTIC, DSINTTOT, DSINTNEX, DSINTNET, DSINTDMS;
    • Health-based player pain sounds: DSPPAI25, DSPPAI50, DSPPAI75, DSPPA100 [i.b. ZDoom].
  • Customizable darkening level for dark menu background and Automap overlay (CFG-Only: menu_background_darkening and automap_overlay_darkening) [i.b. Cherry Doom]
  • The Chaingun can be given a custom sound effect by providing a DSCHGUN sound effect lump
  • Toggle to allow chat in singleplayer (CFG-Only: sp_chat)
  • Restored -cdrom command-line parameter
  • Decreased minimum window size to 200p (240p with aspect-ratio correction)

Releases

Source code and Windows binaries (MSVC builds for Windows 7 and newer) for the latest release can be found on the Release page.

The most recent list of changes can be found in the Changelog.

A complete history of changes and releases can be found on the Releases page.

Versioning

Nugget Doom follows a fairly simple (albeit arbitrary) X.Y.Z versioning system:

  • X is increased in the event of major implementations, as were arbitrary/dynamic resolution and voxel support;
  • Y is increased in the event of minor implementations, such as a new cheat;
  • Z is increased in the event of bug fixes or text/code reformatting.

Incrementing any of the first values will reset the latter (i.e. a major change to 1.1.2 would shift it to 2.0.0).

The merging of changes from Woof! releases may affect any of the version values, but not necessarily in the same way as Woof!'s own version (i.e. Woof! 11.Y.Z -> 12.Y.Z doesn't necessarily mean Nugget 2.Y.Z -> 3.Y.Z).

Compiling

As a Woof! fork, its build instructions should also apply here:

The Nugget Doom source code is available at GitHub: https://github.com/MrAlaux/Nugget-Doom.

Linux, and Windows with MSYS2

The following build system and libraries need to be installed:

Usually your distribution should have the corresponding packages in its repositories, and if your distribution has "dev" versions of those libraries, those are the ones you'll need.

Once installed, compilation should be as simple as:

 cd nugget-doom
 mkdir build; cd build
 cmake ..
 make

After successful compilation the resulting binary can be found in the src/ directory.

Windows with Visual Studio

Visual Studio 2019 and VSCode comes with built-in support for CMake by opening the source tree as a folder.

Install vcpkg https://github.com/Microsoft/vcpkg#quick-start-windows. Integrate it into CMake or use toolchain file:

 cd nugget-doom
 cmake -B build -DCMAKE_TOOLCHAIN_FILE="[path to vcpkg]/scripts/buildsystems/vcpkg.cmake"
 cmake --build build

CMake will automatically download and build all dependencies for you.

Contact

The homepage for Nugget Doom is https://github.com/MrAlaux/Nugget-Doom.

Please report any bugs, glitches or crashes that you encounter to the GitHub Issue Tracker.

Acknowledgement

Help was provided by:

Thanks to all of you!

Legalese

Files: *
Copyright:
© 1993-1996 Id Software, Inc.;
© 1993-2008 Raven Software;
© 1999 by id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman;
© 1999-2004 by Jess Haas, Nicolas Kalkhof, Colin Phipps, Florian Schulze;
© 2004 James Haley;
© 2005-2006 by Florian Schulze, Colin Phipps, Neil Stevens, Andrey Budko;
© 2005-2018 Simon Howard;
© 2006 Ben Ryves;
© 2007-2011 Moritz "Ripper" Kroll;
© 2008-2019 Simon Judd;
© 2017 Christoph Oelckers;
© 2019 Fernando Carmona Varo;
© 2020 Alex Mayfield;
© 2020 JadingTsunami;
© 2020-2024 Fabian Greffrath;
© 2020-2024 Roman Fomin;
© 2021 Ryan Krafnick;
© 2021-2024 Alaux;
© 2022 Julia Nechaevskaya;
© 2022-2024 ceski;
© 2023 Andrew Apted;
© 2023 liPillON.
License: GPL-2.0+

Files: src/beta.h
Copyright: © 2001-2019 Contributors to the Freedoom project.
License: BSD-3-Clause

Files: src/dogs.h
Copyright:
© 2017 Nash Muhandes;
© apolloaiello;
© TobiasKosmos.
License: CC-BY-3.0 and CC0-1.0

Files: src/nano_bsp.*
Copyright: © 2023 Andrew Apted.
License: MIT

Files: src/u_scanner.*
Copyright:
© 2010 Braden "Blzut3" Obrzut;
© 2019 Fernando Carmona Varo.
License: BSD-3-Clause

Files: src/v_flextran.*
Copyright:
© 2013 James Haley et al.;
© 1998-2012 Marisa Heit.
License: GPL-3.0+

Files: src/v_video.*
Copyright:
© 1999 by id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman;
© 2013 James Haley et al.
License: GPL-3.0+

Files: cmake/FindSDL2.cmake, cmake/FindSDL2_net.cmake
Copyright: © 2018 Alex Mayfield.
License: BSD-3-Clause

Files: data/nugget-doom.ico, data/nugget-doom.png, src/icon.c, data/setup.ico, data/nugget-doom-setup.png, setup/setup_icon.c
Copyright: © 2022 Korp.
License: CC BY-NC-SA 4.0

Files: miniz/*
Copyright:
© 2010-2014 Rich Geldreich and Tenacious Software LLC;
© 2013-2014 RAD Game Tools and Valve Software.
License: MIT

Files: opl/*
Copyright:
© 2005-2014 Simon Howard;
© 2013-2018 Alexey Khokholov (Nuke.YKT).
License: GPL-2.0+

Files: soundfonts/TimGM6mb.sf2
Copyright:
© 2004 Tim Brechbill;
© 2010 David Bolton.
License: GPL-2.0

Files: textscreen/*
Copyright:
© 1993-1996 Id Software, Inc.;
© 2002-2004 The DOSBox Team;
© 2005-2017 Simon Howard.
License: GPL-2.0+

Files: win32/win_opendir.*
License: public-domain