psdoom-ng is a First Person Shooter operating system process killer based on psDooM and Chocolate Doom.
Linux requirements:
| Package | version | Required or optional? | Build time or run time? | Purpose |
|---|---|---|---|---|
| autoconf | Required | Build time | For Autotools build scripts | |
| automake | >= 1.8.0 | Required | Build time | For Autotools build scripts |
| coreutils | Required | Build time | For setting file permissions | |
| CMake | >= 3.7.2 | Optional | Build time | An alternative to Autotools build system |
| grep | Required | Build time | For build scripts | |
| Bash | Required | Build time and run time | For the psd wrapper script | |
| binutils | Required | Build time | For linking programs | |
| Clang | Optional | Build time | An alternative to GCC | |
| GCC | Required | Build time | For building the program | |
| FLAC | >= 1.4.3 | Optional | Run time | To play FLAC based music packs |
| FluidSynth | >= 2.2.0 | Optional | Run time | To play music based on MUS or MIDI format |
| make | Required | Build time | For Autotools build scripts | |
| man-db | Optional | Run time | To view documentation with man psdoom-ng |
|
| ninja | Optional | Build time | An alternative for make for CMake build scripts | |
| libpng | >= 1.2.50 | Optional | Run time | To save screenshots in PNG format |
| libsamplerate | >= 0.1.8 | Optional | Run time | To play sound effects consistently on modern soundcards |
| libvorbis | >= 1.3.7 | Optional | Run time | To play Ogg Vorbis based music packs |
| pkg-config | Required | Build time | For package autodetection and getting package flags info | |
| procps | Required | Run time | To list processes with ps | |
| Python | 3.x | Required | Build time | For documentation generation |
| SDL 2 | >= 2.0.14 | Required | Run time | To display on KMS on TTY, X11, or Wayland |
| SDL_mixer | >= 2.0.2 | Optional | Run time | To play background music and sound effects simultaneously |
| util-linux | Required | Run time | To kill processes | |
| zenity | >= 3.44 | Optional | Run time | For config settings security review if using saved configs in /home/${USER}/.psdoom-ng/psdoom-ng.conf or /etc/psdoom-ng.conf and Wayland or X11 |
Quick guide with Autotools:
- Install all dependencies
cd psdoom-ng1-psdoom-ng-<version or commit>./configure --help#review your prefix, other paths, and extra optionsmakemake installman psdoom-ng#read up on how to set it up the wrapper script psd- Get a copy of Doom, to copy the file Doom2.wad.
- Action! Run with
psdorpsdoom-ng. psd is preferred to auto load settings.
Quick guide with CMake:
- Install all dependencies
cd psdoom-ng1-psdoom-ng-<version or commit>cmake -B build -S . -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_SDL2_MIXER=ON# For features, see option() in CMakeLists.txtcd buildninja -vninja -v installman psdoom-ng#read up on how to set it up the wrapper script psd- Get a copy of Doom, to copy the file Doom2.wad.
- Action! Run with
psdorpsdoom-ng. psd is preferred to auto load settings.
Find more information in:
You can find the ebuild at https://github.com/orsonteodoro/oiledmachine-overlay
Now with support for Mac OS X!
It is recommended use brew to install the depenedencies.
You can use external commands as interface to retrieve, renice and kill process.
This makes it easy to adapt the tool to your needs, or even integrate it with external services (AWS, heroku, vmware, etc).
For that, you only need to override these environment variables:
- PSDOOM_NG_PS_CMD List the processes. The command must print one space separated
line per process with the format:
<user> <pid> <processname> <is_daemon=[1|0]>
keymon 29 web4 1
keymon 30 web3 1
keymon 31 adis3 1
keymon 32 core15 1
keymon 20 core2 1-
PSDOOM_NG_RENICE_CMD Command to renice the process. Will get the pid as argument
-
PSDOOM_NG_KILL_CMD Command to kill the process. Will get the pid as argument
For example, in contrib you can find a script that interacts with cloudfoundry:
cd trunk
PSDOOM_NG_PS_CMD="./contrib/psdoom-cf-ctl ps" \
PSDOOM_NG_RENICE_CMD="true" \
PSDOOM_NG_KILL_CMD="./contrib/psdoom-cf-ctl kill" \
./src/psdoomNOTE: psdoom does a synchronous call to the external commands (mono-thread). If your command takes too long, you will feel hipcuts in the game. Try to make your commands respond really fast!
The example script can be installed by adding --enable-cloudfoundry on configure and is installed in /usr/local/portage/psdoom-ng-cf-ctl
The custom wads referred in psDooM readme can be found at contrib/psdoom-2000.05.03-data.tar.gz
Dennis Chao came up with the original idea and wrote much of the mod.
David Koppenhofer was the previous maintainer of the mod psDooM.
Simon Howard wrote Chocolate Doom which is the current game engine used.
Hector Rivas Gandara added support for external sources and cloud services.
Jesse Speilman added support for Mac OS X.
Orson Teodoro was responsible for making psDooM mod work on Chocolate Doom.
Fork it ( https://github.com/orsonteodoro/psdoom-ng1/fork )
Create your feature branch (git checkout -b my-new-feature)
Commit your changes (git commit -am 'Add some feature') or (for multiline commit message: git commit -F- <<EOF \n blah blah blah \n EOF)
Push to the branch (git push origin my-new-feature)
Create new Pull Request
psDooM was based on GNU General Public License 2.0.
Chocolate Doom was based on GNU General Public License 2.0.
You can view more about the GPL-2 at http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html