Gzdoom

Network modes

ZDoom provides two networking modes to change how nodes connect to each-other. Depending on networking conditions, one may be more favorable then the other. You can force a netmode using the .

Peer-to-Peer

Netmode 0, the default, is the traditional netmode. The faster of the two, each node talks to each other node directly, and the game is only slowed down by the slowest connection between two nodes. In Internet games, this does require all nodes to be able to contact all other nodes, or the game will appear to lock up when it starts (this only applies if you have 3 or more players). Hole punching is used by all guest nodes to connect to other nodes.

Packet Server

Netmode 1, which must be forced on, is an alternate mode added to ZDoom. The slowest of the two (depending on networking conditions), each node talks to the arbitrator (typically the first player), and the arbitrator then routes the info to each other node. As you are adding the time it takes the arbitrator to route the information to each node, Internet games can be slowed down significantly by this netmode, but with the advantage of a simpler network setup (only the host needs to be contactable).
It’s recommended that you do not force this netmode in 2 player games, as it’s not needed (nothing changes about how the connection is initiated and maintained) and just results in larger packets.

Backup

If you want to backup GZDoom, do the following:

Create and name a directory with the corresponding GZDoom version/revision, build type and copy gzdoom, gzdoom.pk3, lights.pk3, brightmaps.pk3, game_support.pk3 and game_widescreen_gfx.pk3 to it. If you compiled GZDoom 2.x or older versions with FMOD sound support, copy liboutput_sdl.so to the destination directory.

cd ~/gzdoom_build/gzdoom/build &&
if ; then
k="$(sed -n 's/.*CMAKE_BUILD_TYPE:STRING=\(.*\)/\1/p' CMakeCache.txt)"; else k=''; fi &&
if ; then b="-BuildType$k"; else b=''; fi &&
BACKUPGZDOOM="../../$(sed -n 's/.*#define GIT_DESCRIPTION "\(.*\)".*/\1/p' ../src/gitinfo.h)$b" &&
mkdir -pv "$BACKUPGZDOOM" &&
o=output_sdl/liboutput_sdl.so && if ; then l="$o"; else l=''; fi &&
if ; then p=game_support.pk3; else p=zd_extra.pk3; fi &&
cp -v gzdoom gzdoom.pk3 lights.pk3 brightmaps.pk3 game_widescreen_gfx.pk3 $p $l \
"$BACKUPGZDOOM"/

Files are located at:

/home/<your username>/gzdoom_build/<your newly created directory>

Example

// This is an example LANGUAGE LUMP

 
/* This section is both for American English (enu -> en US) and the default language
   (used if there are no available translations for the user's own language).        */

S_SUPERWEAPON = "Picked up the ultimate superweapon!";
NEEDMAUVEKEYD = "You need a mauve key to open this door.";
NEEDMAUVEKEYO = "You need a mauve key to activate this object.";


/* And now a French translation for the above lines */

S_SUPERWEAPON = "La super-arme ultime !";
NEEDMAUVEKEYD = "Il vous faut la clef mauve pour ouvrir cette porte.";
NEEDMAUVEKEYO = "Il vous faut la clef mauve pour actionner cet objet.";


/* In German, too */
S_SUPERWEAPON = "Die maximale Überwaffe !";
// Oh no, what about the mauve key messages? They don't have a translation!
// Then they'll just use the English versions above since they're also defined as being the default.

From DoomWiki.org

GZDoom
Codebase ZDoom
Developer(s) Graf Zahl
Initial release 0.9.1 (2005-08-30, 16 years ago)
Latest release 4.6.01 (2021-05-22, 3 months ago)
Development status Active
Written in C++
Target Platform Windows and Linux
License GPL v3 since version 3.0.0.Previously Doom Source License, 3-point BSD, others.
Website
Source Repository

(Git)

GZDoom is a ZDoom-based port which is maintained by Christoph Oelckers (Graf Zahl). It was first released on and runs on Linux, Windows and MacOS. Its development was temporarily halted on April 14, 2010, with development resuming in 2014.

Historyedit

GZDoom started as a new renderer for PrBoom. This early version was never publicly released, however. In 2005, Graf Zahl ported his renderer to the ZDoom Community Build, and this marked the first official release of GZDoom. The port was from then on tied to the ZDoom codebase.

On January 19, 2008, development of the port was put on hold until another official release of ZDoom is made, due to highly extensive changes to the ZDoom renderer (which consequently require extensively changing the OpenGL rendering code for compatibility) coming more frequently than Graf Zahl could catch up. An official release of ZDoom was made on February 14, 2008, and version 1.1.0 of GZDoom was released shortly afterward incorporating the changes from that version.

On April 14 2010, Graf Zahl announced on the Doomworld forums that development of GZDoom had halted. He stated his reasons as having no time to work on it, and that he was frustrated by numerous complaints about the port’s lack of compatibility with ATI video cards. Graf Zahl took down the website and all its subfolders, making GZDoom temporarily unavailable except from its mirrors. The site has since been restored.

In 2014, work on GZDoom’s renderer resumed. Upon release of 2.0 on August 2, 2014, OpenGL 2.x support was dropped, as the renderer was rewritten to use OpenGL 3.x and OpenGL 4.4, albeit in compatibility mode. After some time of having dual 1.9.x and 2.1.x releases, support for OpenGL 2.0 was reinstated with GZDoom 2.2.0 in 2016, but with fewer features than before in that legacy mode.

Beginning in December 2016, following ZDoom’s official halt in development, GZDoom’s development is now detached from ZDoom and the port is the first-level upstream for other forks (namely QZDoom and Zandronum), without looking back at ZDoom.

The current primary direction of development is ZScript, with several other things developed by contributors (for example, OpenGL renderer enhancements by dpJudas). Starting with version 4.3.2, support for the WAD files from the Doom Classic Unity port was added.

Featuresedit

  • All ZDoom features
  • Rudimentary support for Doom Legacy (To run existing Legacy mods like Ni’mRoD — IXNAY on the HOMBRE)
  • ZScript
  • Support for the DEHEXTRA standard
  • OpenGL renderer, allowing the following features:
    • Full 3D floors (including slopes)
    • Reflective floors
    • Dynamic lights, brightmaps, glowing flats, custom hardware shaders
    • Quake II and Half-Life-style skyboxes in addition to regular ZDoom skyboxes
    • Optional High-quality (HQnX) rescaling filters for graphics, sprites and textures
    • MD2, MD3 and DMD model support

Merged features from QZDoomedit

After the QZDoom codebase got merged with GZDoom, the latter gained several new features, courtesy of Magnus Norddahl (dpJudas) and Rachael Alexanderson (Eruanna). These include:

  • Polygonal, 3-point perspective truecolor software renderer (“Softpoly”)
  • Truecolor support for the classic 2-point renderer
  • Postprocessing framework (SSAO, bloom, blur, custom post process shaders, etc.)
  • Vulkan renderer backend
  • HDR monitor support
  • ZScript JIT bytecode compiler
  • Proper windowed mode support (i.e. you can freely resize the game window)
  • Correct ZDoom software light mode for the hardware renderer
  • High resolution correct version of the software fuzz, for both software and hardware renderers
  • Improved dynamic light math, shadowmaps and spotlights
  • Materials (Classic, normal and specular maps and PBR textures), but not environment maps

Referencesedit

  1. Oelckers, Christoph (4 December 2015). «How do you learn how to build source ports?» Doomworld Forums. Retrieved 17 December 2015.
Source code genealogy
Based on Name Base for
ZDoom GZDoom GZ3Doom
GZDoom for OS X
QZDoom
ScoreDoom
Skulltag
Tower of Babel

Developing

This page has helped you compile ZDoom, but perhaps you are interested in debugging the code or submitting code changes or fixes for inclusion. This section is intended for more advanced users who may be unfamiliar to CMake or debugging on Linux systems.

Debugging

Prerequisite:

gdb

Maybe you have found a way to make ZDoom crash, and are interested in debugging it. First, you need to compile a debug build of ZDoom. Inside the build directory, invoke CMake to set up for compiling, but this time, the build type is set to Debug:

cmake .. -DCMAKE_BUILD_TYPE=Debug

Optionally, you may want to use some of the .

After CMake is done, run or to speed up compilation, run , a recommended value for the option is the number of physical cores:

make

To run ZDoom under a debugger such as gdb, use the following command:

gdb zdoom

Now gdb should have you in its own command prompt:

(gdb)

You probably want to log the output, so lets output to a file zdoomdebug.log:

(gdb) set logging on zdoomdebug.log

Now start ZDoom by typing in run, and pressing enter:

(gdb) run

Or put any command line parameters to zdoom after run:

(gdb) run <command line parameters>

If ZDoom crashes, gdb may be able to tell you the source file and line number it crashed in. Typing in the command backtrace or bt will produce information telling the last function calls, showing how execution got to the point where it crashed:

(gdb) backtrace

All output will be copied into the zdoomdebug.log, which can then be scrutinized later, or perhaps posted to the for other developers to look at.

To exit gdb’s command prompt, type quit, q or press Ctrl-D:

(gdb) quit

If you want to free up space, run to remove the files generated by the compilation.

Build options

CMake options
Options Description Example
NO_GTK=ON Disable GTK+ dialogs. cmake .. -DNO_GTK=ON
NO_FMOD=ON Disable FMOD sound support. cmake .. -DNO_FMOD=ON
NO_OPENAL=ON Disable OpenAL sound support. cmake .. -DNO_OPENAL=ON
FMOD_LIBRARY Set path for FMOD library file. cmake .. -DFMOD_LIBRARY=/path/to/libfmodex(64)-x.y.z.so
FMOD_INCLUDE_DIR Set path for FMOD include directory. cmake .. -DFMOD_INCLUDE_DIR=/path/to/include/dir
CMAKE_C_COMPILER Set path for C compiler. cmake .. -DCMAKE_C_COMPILER=/path/to/compiler/gcc
CMAKE_CXX_COMPILER Set path for C++ compiler. cmake .. -DCMAKE_CXX_COMPILER=/path/to/compiler/g++
CMake build types
Types Description Example
Debug Debug information, -O1 optimization. cmake .. -DCMAKE_BUILD_TYPE=Debug
Release No debug information, -O3 optimization. cmake .. -DCMAKE_BUILD_TYPE=Release
RelWithDebInfo Debug information, -O2 optimization. Useful for finding optimization bugs that only show up in Release. cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
MinSizeRel Similar to Release but with less optimizations in order to save space. cmake .. -DCMAKE_BUILD_TYPE=MinSizeRel

Troubleshooting

Sound

If ZDoom starts but immediately closes with the following messages in the terminal:

...
Init Playloop state.
Setting up sound.
S_Init
Checking network game status.
player 1 of 1 (1 nodes)

This usually indicates that FMOD Ex is not loading correctly (and ZDoom is configured to use FMOD by default). There are then two solutions.

You could start ZDoom without music:

zdoom -nomusic

or you could select (in the ZDoom settings) a MIDI device other than FMOD. To change MIDI device, go to the sound options menu.

  • OPL synth emulation can work out of the box without further configuration.
  • To install TiMidity++:
sudo apt-get install timidity timidity-interfaces-extra
yast2 -i timidity or zypper in timidity
sudo emerge -avn timidity++

See the software synthesizer article for further information about ZDoom’s MIDI devices.

Installation

  • gzdoom = Stable version
  • gzdoom-alpha = Development version

Commands beginning with «sudo» will require temporary superuser privileges.

If you want to install GZDoom, do the following:

Create /usr/games/gzdoom and /usr/games/gzdoom-alpha directories:

sudo mkdir -pv /usr/games/gzdoom /usr/games/gzdoom-alpha

Copy gzdoom, gzdoom.pk3, lights.pk3, brightmaps.pk3, game_support.pk3, game_widescreen_gfx.pk3 and the soundfonts directory to /usr/games/gzdoom/ or /usr/games/gzdoom-alpha/. If you compiled GZDoom 2.x or older versions with FMOD sound support, copy liboutput_sdl.so and the FMOD library file to the destination directory.

a='' &&  && a=64
cd ~/gzdoom_build/gzdoom/build &&
h="$(sed -n 's/.*#define GIT_HASH "\(.*\)".*/\1/p' ../src/gitinfo.h)" &&
if [ -z "$(git describe --exact-match --tags $h 2>/dev/null)" ]; then
d=-alpha; else d=''; fi &&
o=output_sdl/liboutput_sdl.so && if ; then l="$o \
../fmodapi44464linux/api/lib/libfmodex${a}-4.44.64.so"; else l=''; fi &&
if ; then p=game_support.pk3; else p=zd_extra.pk3; fi &&
sudo cp -rv gzdoom gzdoom.pk3 lights.pk3 brightmaps.pk3 game_widescreen_gfx.pk3 $p soundfonts $l \
/usr/games/gzdoom$d/

Create launch script:

cd ~/gzdoom_build/gzdoom/build &&
h="$(sed -n 's/.*#define GIT_HASH "\(.*\)".*/\1/p' ../src/gitinfo.h)" &&
if [ -z "$(git describe --exact-match --tags $h 2>/dev/null)" ]; then
d=-alpha; else d=''; fi &&
printf %s "\
#! /bin/sh
# The following command is for GZDoom 2.x or older versions
export LD_LIBRARY_PATH=/usr/games/gzdoom$d
exec /usr/games/gzdoom$d/gzdoom \"\$@\"
" > gzdoom$d.sh &&
chmod 755 gzdoom$d.sh &&
sudo mv -v gzdoom$d.sh /usr/bin/gzdoom$d

Now from a terminal you should be able to run gzdoom or gzdoom-alpha from any user account.

Uninstallation

Remove /usr/games/gzdoom directory and all its files:

sudo rm -rfv /usr/games/gzdoom

Remove gzdoom script:

sudo rm -fv /usr/bin/gzdoom

Remove /usr/games/gzdoom-alpha directory and all its files:

sudo rm -rfv /usr/games/gzdoom-alpha

Remove gzdoom-alpha script:

sudo rm -fv /usr/bin/gzdoom-alpha

Why would I want to use ZDoom instead of regular Doom?

Consider all these features that ZDoom has that are not found in the standard Doom originally released by id:

  • It runs well under all modern versions of Windows, from Windows Vista to Windows 10. If you have Mac or Linux, it works with that too.
  • Can play all Doom engine games, including Ultimate Doom, Doom II, Heretic, Hexen, Strife, and more.
  • Supports all the editing features of Hexen. (ACS, hubs, new map format, etc.)
  • Supports most of the Boom editing features.
  • Features complete translations of Doom, Heretic, Hexen, Strife and other games into over ten different languages with Unicode support for Latin, Cyrillic, and Hangul so far.
  • Many more all-new editing features such as:
    • Colored lighting.
    • 3D floors.
    • Portals.
    • Advanced polyobjects free from the restrictions of their original implementation in Hexen.
    • Custom monsters, weapons, items, player classes, and other entities.
    • High resolution textures and sprites.
    • Translucency (regular and additive).
    • Many, many extensions to ACS that were not present in Hexen.
    • More music formats: Ogg Vorbis, MOD, XM, IT, S3M, MIDI, and MP3 as well as old-fashioned MUS all work.
    • More sound formats: FLAC and WAVE can both be used for sound effects.
    • More texture formats: PNG and JPEG are both useable for artwork.
  • All Doom limits are gone.
  • Several softsynths for MUS and MIDI playback, including an OPL softsynth for an authentic “oldschool” flavor.
  • High resolutions.
  • Quake-style console and key bindings.
  • Crosshairs.
  • Free look (look up/down).
  • Jumping, crouching, swimming, and flying.
  • Full-featured joystick/gamepad support under Windows.
  • Up to 8 player network games using UDP/IP, including team-based gameplay.
  • Support for the Bloodbath announcer from the classic Monolith game Blood.
  • Walk over/under monsters and other things.

Install dependencies

GZDoom needs certain tools and development files in order to compile:

  • Required

    • gcc 4.8 or later
    • make
    • cmake 2.8.7 or later
    • SDL 2.0.2 or later
    • libGL and libGLU (SDL or libSDL pull in libGLU) or any other GL implementation provider.
  • Recommended

    • GTK3 or GTK2
    • git (needed in order to download the source and compile in commit meta data)
    • nasm 0.98.39 or later (x86-32 only)
  • Optional

    • zlib (GZDoom has a copy of it and will be statically compiled in if not found)
    • libbzip2 (possibly static)
    • libjpeg (possibly static)
    • libgme or game-music-emu (possibly static)
    • SDL 1.2.8 or later 1.2.x versions (for GZDoom 1.x)
    • libglew (for GZDoom 1.x)
  • Runtime

    • gxmessage (optional — needed to show the crash log in a window)
    • kdialog (optional — for KDE users)
    • fluidsynth (optional — for MIDI playback)

In addition to or instead of FMOD, OpenAL can be used for sound in which case the following are required:

  • libmpg123
  • libsndfile

Install the following as root/superuser:

Debian/Ubuntu

sudo apt-get install g++ make cmake libsdl2-dev git zlib1g-dev \
libbz2-dev libjpeg-dev libfluidsynth-dev libgme-dev libopenal-dev \
libmpg123-dev libsndfile1-dev libgtk-3-dev timidity nasm \
libgl1-mesa-dev tar libsdl1.2-dev libglew-dev

Fedora

dnf install gcc-c++ make cmake SDL2-devel git zlib-devel bzip2-devel \
libjpeg-turbo-devel fluidsynth-devel game-music-emu-devel openal-soft-devel \
libmpg123-devel libsndfile-devel gtk3-devel timidity++ nasm \
mesa-libGL-devel tar SDL-devel glew-devel

Mageia

a='' &&  && a=64
urpmi gcc-c++ make cmake lib${a}sdl2.0-devel git lib${a}zlib-devel \
lib${a}bzip2-devel lib${a}jpeg-devel lib${a}fluidsynth-devel \
lib${a}gme-devel lib${a}openal-devel lib${a}mpg123-devel lib${a}sndfile-devel \
lib${a}gtk+3.0-devel lib${a}cairo-devel TiMidity++ nasm \
lib${a}mesagl1-devel tar lib${a}SDL-devel lib${a}glew-devel

Arch Linux

pacman -S --needed gcc make cmake sdl2 git zlib bzip2 libjpeg-turbo \
fluidsynth libgme openal mpg123 libsndfile gtk3 timidity++ nasm \
mesa glu tar sdl glew

Gentoo

emerge -avn sys-devel/gcc sys-devel/make dev-util/cmake media-libs/libsdl2 \
dev-vcs/git sys-libs/zlib app-arch/bzip2 media-libs/libjpeg-turbo media-sound/fluidsynth \
media-libs/game-music-emu media-libs/openal media-sound/mpg123 media-libs/libsndfile \
x11-libs/gtk+ media-sound/timidity++ dev-lang/nasm media-libs/mesa \
media-libs/glu app-arch/tar media-libs/libsdl media-libs/glew

Update (29.12.2016):
Jacendi overlay has an ebuild for gzdoom

emerge -n layman
layman -a jacendi-overlay
emerge -av gzdoom

PCLinuxOS

a='' &&  && a=64
apt-get install gcc-c++ make cmake lib${a}sdl2.0-devel git zlib1-devel \
lib${a}bzip2-devel lib${a}jpeg62-devel lib${a}fluidsynth1-devel lib${a}openal-devel \
lib${a}mpg123-devel lib${a}sndfile-devel lib${a}gtk+3.0-devel TiMidity++ nasm \
lib${a}mesagl1-devel tar lib${a}SDL-devel lib${a}glew-devel

Solus

sudo eopkg install g++ make cmake binutils glibc-devel pkg-config sdl2-devel \
git zlib-devel bzip2-devel libjpeg-turbo-devel fluidsynth-devel openal-soft-devel \
mpg123-devel libsndfile-devel libgtk-3-devel nasm mesalib-devel \
libglu-devel tar sdl1-devel glew-devel

Do the following sections as normal user.

Game modes

ZDoom supports three different multiplayer game modes. may also implement additional game modes, such as Capture The Flag or Domination.

Deathmatch

Deathmatch is a multiplayer game style pioneered by Doom in which players face off against each other, connected to a common area via a network.

  • A point, called a frag, is granted to a player whenever he or she kills an opponent.
  • Upon death, players restart at a random deathmatch start.
  • Players spawn with all keys, and keys are never placed on the map (there is currently no clean way to circumvent this).

Team deathmatch

Team deathmatch is a variant of deathmatch where players are placed into two or more teams. Players score frags by killing members of opposing teams. Gameplay options allow to reduce or remove friendly fire damage.

Cooperative

Cooperative gameplay, often referred to as co-op or coop, is a multiplayer game mode in which human players cooperate against a given game’s monsters. Cooperative play is the default game mode if the -deathmatch parameter is not specified at the command line.

Install dependencies

ZDoom needs certain tools and development files in order to compile:

  • Required

    • gcc 4.8 or later
    • make
    • cmake 2.8.7 or later
    • SDL 2.0.2 or later
    • Mesa (if compiling GZDoom) or any other GL implementation provider. Compile GZDoom on Linux
  • Recommended

    • GTK3 or GTK2
    • git (needed in order to download the source and compile in commit meta data)
    • nasm 0.98.39 or later (x86-32 only)
  • Optional

    • zlib (ZDoom has a copy of it and will be statically compiled in if not found)
    • libbzip2 (possibly static)
    • libjpeg (possibly static)
    • libgme or game-music-emu (possibly static)
    • wildmidi (possibly static)
  • Runtime

    • gxmessage (optional — needed to show the crash log in a window)
    • kdialog (optional — for KDE users)
    • fluidsynth or timidity (optional — for MIDI playback)

In addition to or instead of FMOD, OpenAL can be used for sound in which case the following are required:

  • libmpg123
  • libsndfile

Debian/Ubuntu

sudo apt-get install g++ make cmake libsdl2-dev git zlib1g-dev libbz2-dev \
libjpeg-dev libfluidsynth-dev libgme-dev libopenal-dev libmpg123-dev \
libsndfile1-dev libwildmidi-dev libgtk-3-dev timidity nasm tar chrpath

Fedora

dnf install gcc-c++ make cmake SDL2-devel git zlib-devel bzip2-devel \
libjpeg-turbo-devel fluidsynth-devel game-music-emu-devel openal-soft-devel \
libmpg123-devel libsndfile-devel wildmidi-devel gtk3-devel timidity++ nasm tar \
chrpath

openSUSE

(Tumbleweed and Leap 15+):

zypper si -d gzdoom
zypper in gcc-c++ make

(old):

zypper install gcc-c++ make cmake libSDL2-devel git zlib-devel libbz2-devel \
libjpeg-devel fluidsynth-devel libgme-devel openal-soft-devel mpg123-devel \
libsndfile-devel gtk3-devel timidity nasm tar chrpath

Mageia

a='' &&  && a=64
urpmi gcc-c++ make cmake lib${a}sdl2.0-devel git lib${a}zlib-devel \
lib${a}bzip2-devel lib${a}jpeg-devel lib${a}fluidsynth-devel lib${a}gme-devel \
lib${a}openal-devel lib${a}mpg123-devel lib${a}sndfile-devel lib${a}wildmidi-devel \
lib${a}gtk+3.0-devel lib${a}cairo-devel TiMidity++ nasm tar chrpath

Arch Linux

pacman -S --needed gcc make cmake sdl2 git zlib bzip2 libjpeg-turbo fluidsynth \
libgme openal mpg123 libsndfile wildmidi gtk3 timidity++ nasm tar fmodex chrpath

Gentoo

emerge -avn sys-devel/gcc sys-devel/make dev-util/cmake media-libs/libsdl2 \
dev-vcs/git sys-libs/zlib app-arch/bzip2 media-libs/libjpeg-turbo media-sound/fluidsynth \
media-libs/game-music-emu media-libs/openal media-sound/mpg123 media-libs/libsndfile \
media-sound/wildmidi x11-libs/gtk+ media-sound/timidity++ dev-lang/nasm app-arch/tar \
app-admin/chrpath

PCLinuxOS

a='' &&  && a=64
apt-get install gcc-c++ make cmake lib${a}sdl2.0-devel git zlib1-devel \
lib${a}bzip2-devel lib${a}jpeg62-devel lib${a}fluidsynth1-devel lib${a}openal-devel \
lib${a}mpg123-devel lib${a}sndfile-devel lib${a}gtk+3.0-devel TiMidity++ nasm tar \
chrpath

Solus

sudo eopkg install g++ make cmake binutils glibc-devel pkg-config sdl2-devel \
git zlib-devel bzip2-devel libjpeg-turbo-devel fluidsynth-devel openal-soft-devel \
mpg123-devel libsndfile-devel wildmidi-devel libgtk-3-devel nasm tar chrpath

Do the following sections as normal user.

Doom 2D: Forever (2009)

Дум 2D — двумерная игра, основанная на трёхмерной войнушке дум. В дум 2D было перенесено все оружие и враги из дум, так же есть несколько новых видов монстров и супер оружие. С игрой распространялись карты для игры друг против друга и редактор, позволяющий создавать свои уровни. В дум могут играть двое человек за одной клавиатурой, при эт …

Год выпуска: 2009Жанр: Arcade (Platform)Разработчик: Prikol SoftwareИздательство: Prikol SoftwareСайт разработчика: http://doom2d.org/download/df/Язык интерфейса: русскийПлатформа: PCОперационная система: Windows XP/VistaПроцессор: 1.0 GHzОперативная память: 512 МбДополнительное программное обеспечение: DirectX 9.0

New monsters[edit]

Knee-Deep in ZDoom makes use of DECORATE to provide an array of new monsters, mostly close variants on the original cast of creatures. Several came from the Monster Resource WAD but with new art and small tweaks. Many of these creatures have subsequently been featured in other modifications and even ported to other content definition languages.

Blood Demon
A darker variant of the pinky demon with cybernetic enhancements and 300 hit points. Killing them causes their right arm to fall off.
Chaingunner
These are mostly equivalent to the chaingunners from Doom 2 but with a new sprite set.
Chainsaw Zombie
A chainsaw-wielding zombie in a brown suit, with 30 hit points. Drops a chainsaw when killed.
Dark Imp
There are three variants of the Dark Imp, all of which have black skin and more hit points than regular Imps.
  1. The first variant looks like a regular Imp with black skin, yellow eyes and large fangs. They will fire blue homing balls of energy, and have 120 hit points.
  2. The second variant has thin, red eyes and skinny limbs, and 110 hit points. Its behavior is based off the Dark Imps from Skulltag, as it attacks with fast, blue balls of energy. Its death animation is slightly different to the regular Imps.
  3. The third variant has sunken, orange eyes, a wide mouth with many visible teeth and 130 hit points. Its behavior bears a resemblance to that of the Dark Imps from Mike «Cyb» Watson’s Void, which are basically reskinned undead warriors. They will shoot blue balls of magic/energy and also pink balls of energy that leave trails and do more damage. This variant also has an entirely unique death animation.
Demon Cube
A spinning cube with a demonic face on the sides, inspired by the guardian cubes from Demon Eclipse which themselves were monster versions of the spawn cubes. They shoot streams of small fireballs. 50 hit points.
Hell Knight
These are simply Hell knights from Doom 2 but with a new sprite set. They are now light-brown colored barons.
Hell’s Fury
Grey-skinned and grey-legged Hell nobles with a head that resembles the Lost Soul from Doom 0.4. They have two methods of attack: either hurling a highly-damaging red baron projectile or shooting homing yellow skulls out of the sides of their head.
Hell Warrior
Orange-skinned, tan-legged Hell nobles with lion manes, 400 hit points, and a shield that bears a resemblance to the floating eye symbol. They fling yellow baron projectiles, and occasionally defend themselves with their shield when they are hurt, temporarily becoming invulnerable. They may also fire a green ripping projectile from their shield. Killing them causes them to drop their shield (which you cannot pick up).
Mauler Demon
A dark red variant of the demon with Pain Elemental horns and a damaging charge attack and 150 hit points.
Nightmare
These Imp-like creatures appear totally invisible until they get up close, then they start clawing at you, and only then can they be hurt. They have 100 hit points.
Rapid-Fire Trooper
A zombieman with a rapid fire gun. They drop pistol clips when they are killed. 30 hit points.
Rifle Zombie
A shotgun guy-like zombie with brown stains on his armor. They shoot slow-moving bullets (that is, slow compared to hitscans) and drop rifles when they are killed. 40 hit points.
Rocket Guy
A zombieman with a rocket launcher. Their low health (50 hit points) and powerful weaponry makes it easy for them to kill themselves and other nearby monsters.
Satyr
A small Hell noble with a goat-like head and dark brown skin and legs. They have 400 hit points and a powerful melee attack but no projectile attacks.
Shadow
An Imp-like creature with a slouched posture, translucent grey skin, and large red eyes. It moves quickly, leaving a motion blur behind it. When it sights its target, it will stay positioned, hurling red balls of energy towards the target, until it is shot or until its target leaves its line of sight. Its behavior seems to be based off that of the Level 2 Imps from STRAIN. It has 80 hit points.
Soul Harvester
A spiky, grey-skinned, emaciated Imp-like creature with 100 hit points. Similar to Heretic’s nitrogolems, they shoot yellow homing skull projectiles at their target (the same projectiles as those used by Hell’s Fury). Killing them causes a yellow spirit to rise from their corpse as their bodies deteriorate into skeletons.
Stone Imp
A variant of Imp made from stone. It doesn’t bleed, has 180 hit points, a powerful melee attack, no projectile attacks. When it dies it splits and half and the legs fall backwards and the top falls forwards.

Usage

Plays the specified sound.

Parameters

  • whattoplay: the desired sound to play. Default is "weapons/pistol".
  • slot: the used for the sound.
  • volume: the volume of the sound. Default is 1.0.
  • looping: if true, the sounds loops. Looping sounds can be stopped by using A_StopSound or playing another sound on the same channel. Default is false.
  • attenuation: this is a positive value that specifies how quickly the sound fades with distance from its source. The higher the value the quicker it fades out. The numbers are fairly low. You will notice dramatic drop off of volume with an attenuation value of just 3 or 4 and by the time you use a value of 20 you need to be within around 64 units of the sound source to hear it clearly. The following predefined constants exist:
  • ATTN_NONE — Plays the sound globally at the specified volume, disregarding distance.
  • ATTN_NORM — Uses the close_dist and clipping_dist fields defined in the sound definition. This is the default.
  • ATTN_IDLE — Uses DOOM’s normal default sound attenuation behavior.
  • ATTN_STATIC — Fades quickly (inaudible from 512 units).
For example, if you want to have a sound play at the specified volume regardless of distance (anywhere on the map), use ATTN_NONE.
  • local: If true, the sound is played if the player is either looking out the calling actor’s eyes, or the calling actor is the player and the player is looking out the eyes of a non-monster actor. Also, the sound is played with ATTN_NONE. Default is false.
  • pitch: the sound pitch to play the sound with. Default is 0, which means the engine will use whatever pitch shift (range) is defined in SNDINFO, if any. Standard pitch is 1.0 — lower values will slow down the sound, and higher will speed it up.

Multiplayer source ports

There are five ZDoom-based ports that have improved networking code, specialized for online multiplayer:

  • csDoom is no longer being maintained. It was based on ZDoom’s source code and had its own network code. csDoom was the first client/server multiplayer port.
  • Odamex is a continuation of csDoom developed with a «back to basics» approach and the only one to be open source. It has recently started to implement support for some features of ZDoom 1.23 beta so as to compete with ZDaemon.
  • Skulltag, not just a multiplayer-oriented source port, but full multiplayer mod with new weapons, bots with their own set of unique character traits, new levels designed to make use of the special features available in that port, and more. It was based on the modern ZDoom 2.x codebase.
  • Zandronum is the successor of Skulltag. The additional weapons, levels and other extra content have been moved to an optional add-on pack, but it is otherwise fully compatible with Skulltag.
  • ZDaemon is another continuation of csDoom by a different team and with additional features, including some features from ZDoom 1.23 betas, such as slopes.
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector