PrBoom+ - Le Bottin des Jeux Linux

PrBoom+

Specifications

Title: PrBoom+ Type: Tool
Genre: Adventure & Action Temporary:
Category: Adventure & Action ➤ Shooter ➤ Fantasy & Sci-fi ➤ Doom 1&2, Hexen 1, Heretic, Strife Commercial:
Tags: 3D engine; id Tech 1 engine; libretro compatible; Cross-platform; Doom Demo:
Version: Stable : 2.5.1.4 / Dev. : 2.5.1.5.Test Stage of dev.:
Released: 2017-02-03 Package Name: prboom-plus
License: GPL v2 Repository: Debian
View: First person Package: ✓
Graphic: 3D Binary: ✓
Mechanics: Real Time Source: ✓
Played: Single & Multi PDA:
Quality (record): 5 stars Quality (game): 5 stars
Contrib.: Goupil & Louis ID: 12369
Created: 2010-08-20 Updated: 2017-11-04

Summary

[fr]: Un port source libre et multi-plateforme du moteur de Doom, exclusivement compatible avec Doom 1 et 2 dont l'objectif est d'étendre les fonctionnalités en préservant la compatibilité. Il apporte notamment le support d'OpenGL, des synthétiseurs MIDI, de MUSINFO, des formats Ogg et MP3, des textures et sprites haute résolution, de la vue vers le haut / le bas, du changement de vitesse de jeu, d'une caméra suiveuse, des tapis roulants, des téléporteurs silencieux, des monstres amicaux (chiens), des effets de friction, et beaucoup d'améliorations (sur l'Heads up, les cartes, les menus, les contrôles, ...). [en]: A free/libre, cross-platform, Doom source port, exclusively compatible with Doom 1 and 2, whose objectives are to extend the functionalities while preserving compatibility. It includes support for OpenGL, MIDI synthesizers, MUSINFO, Ogg and MP3 formats, high resolution for textures and sprites, up / down view, game speed change, chasecam for demo playbacks, conveyor effects, silent teleporters, friendly monsters (dogs), friction effects, and many other improvements (heads up, maps, menus, controls ...).

Trailer & Reviews

Trailer / Gameplay [en] / [en] / [fr] :


Stress test for PrBoom+ :


Some interesting wads for PrBoom +:


Linux joue / Linux plays :

Links

Website & videos
[Homepage] [Dev site 1 2] [Features/About] [Screenshots] [Videos t ts gd id r lp g d d d g g g g[fr] g[de] g[ru] g[pl] g[cz] g[sp] g[pt] g[it] g[tr] g g] [Reviews] [WIKI] [FAQ] [Changelog 1 2]

Commercial : (empty)

Resources
• Port of this emulator to libretro : [Libretro (PrBoom)]
• Maps :
- Resurgence (a 32 maps megawad project that requires Boom-compatible source ports to play), by Josh Sealy with Guest Mapper Darkwave0000 : [DoomWorld] [video]
- Mogor's Winter (a small wad for boom, 11 maps. Prboom-plus with "-complevel 9" is recommended), by Shadowman : [DoomWorld] [video]
- Estranged (a 32 level megawad, cleanly detailed levels with a variety of environments), by Foodles : [DoomWorld] [video]
Technical informations
[Open Hub] [Doom Wiki] [Wikia]

Social
Devs (PrBoom Team [en]) : [Site] [Forums] [twitter] [YouTube] [Interview 1 2]
Devs (Andrey Budko [en]) : [Site 1 2] [Forums] [twitter] [YouTube] [Interview 1 2]
Devs (DOSDoom Team [fr] [en]) : [Site 1 2] [twitter] [YouTube] [Interview 1 2]
Devs (id Software [fr] [en]) : [Site 1 2] [twitter] [Facebook] [YouTube] [Interviews (J. Carmack, 2011) (J. Romero, 2006)]
Game : [Blog] [Forums] [twitter] [YouTube]

On other sites
[Wikipedia (Boom et dérivés / Boom and derivatives) [fr] [en] [de]]
[Wikipedia (Doom (série)) [fr] [en] [de]]
[Wikipedia (Doom) [fr] [en] [de]]
[Debian]

Reviews
[OS Reviews (Comparison between Nexuiz (89%), PrBoom (65%) and OpenArena(86%)]

News / Source of this Entry (SotE) / News (SotN)

Description [fr]

Un moteur compatible et amélioré des jeux Doom 1 et Doom 2 (exclusivement), par Andrey Budko (aka e6y) / la PrBoom Team.

PrBoom+ (aka Proff Boom Plus) est un port source libre et multi-plateforme du moteur de Doom, exclusivement compatible avec Doom 1 et 2 dont l'objectif est d'étendre les fonctionnalités en préservant la compatibilité.
Il apporte notamment le support d'OpenGL, des synthétiseurs MIDI, de MUSINFO, des formats Ogg et MP3, des textures et sprites haute résolution, de la vue vers le haut / le bas, du changement de vitesse de jeu, d'une caméra suiveuse, des tapis roulants, des téléporteurs silencieux, des monstres amicaux (chiens), des effets de friction, et beaucoup d'améliorations (sur l'Heads up, les cartes, les menus, les contrôles, ...).

• PrBoom+ est un fork du projet PrBoom (dans le Bottin, lui-même issu du moteur Boom (dérivé de DOSDoom) puis d'une fusion avec LxDoom et LsdlDoom).
• Un fork du source (voir la section "Resources" ci-dessus) le rend compatible avec libretro (pour plus de précision concernant l'application libreto, voir la fiche "Libretro (& RetroArch)"

Ressources et documentations disponibles : voir les fiches "Ressources - Doom 1&2, Heretic, Hexen 1, Strife" et "Freedoom".


PrBoom + est un port source de Doom développé à partir du projet original PrBoom par Andrey Budko (Андрей Будько).

L'objectif du projet est d'étendre le port d'origine avec des fonctionnalités qui me sont nécessaires ou utiles ainsi qu'à tous ceux qui s'intéressent à mon travail.
Il est intéressant de noter que tous les changements que j'ai introduit ne rompent en rien la compatibilité de PrBoom avec les moteurs Doom / Doom2 originaux, et que vous pouvez avoir l'assurance que cela n'arrivera jamais à l'avenir puisque la compatibilité a une valeur aussi importante pour le projet PrBoom que pour moi.



Wikipedia:

DOSDoom et dérivés

DOSDoom est le tout premier portage pour DOS, construit à partir de la source Linux comme expliqué plus haut. Il est la base du développement de Boom, mais également d'autres portages encore actualisés à ce jour comme EDGE, 3DGE (son héritier appelé également Hyper3DGE) et Doom Legacy (sous Windows et Linux).

(...)

Boom et dérivés

Boom est créé par la TeamTNT, par ailleurs développeurs de l'extension officielle Final Doom. Boom élimine des limitations du Doom Engine, et rajoute de nombreuses possibilités comme les tapis roulants, les téléporteurs silencieux, etc. Ce moteur est devenu une référence, au point que la plupart des extensions pour le jeu, ou les autres ports, se définissent comme étant « Boom-compatible » ou non. Par exemple, la version libre alternative de Doom, Freedoom, ne peut normalement fonctionner qu'avec un portage Boom-compatible.

MBF (Marine's Best Friend) est un successeur direct de Boom, qui introduit notamment la possibilité de monstres amicaux (des chiens). Ses successeurs sont SMMU (Smack My Marine Up) et Eternity Engine, ce dernier étant encore actualisé régulièrement.

PrBoom est un autre dérivé de Boom, cherchant un maximum de compatibilité avec le Doom Engine tout en apportant quelques améliorations à Boom, comme l'OpenGL. Il intègre également plusieurs modifications issues de MBF, comme les chiens amis. Son successeur PrBoom+ apporte quelques améliorations supplémentaires : possibilité de regarder vers le haut et le bas, etc.

La version officielle de Doom pour iPhone, Doom Classic, est partiellement basée sur PrBoom.

Description [en]

PrBoom+ is a Doom source port developed from the original PrBoom project by Andrey Budko (Андрей Будько).

The target of the project is to extend the original port with features that are necessary or useful for me personally and to all those interested in my work. It is worth noting that all changes introduced by me in no way break PrBoom's compatibility with the original Doom/Doom2 engines, and it is possible to be confident this will never happen in the future since compatibility is as important a merit of PrBoom as it is to me.


DoomWiki (CC BY-SA 4.0 International) :

PrBoom+ (also PrBoom-plus) is a source port based on PrBoom. GLBoom+ is a common name for a build of PrBoom+ compiled with OpenGL support. It is developed by Andrey Budko (entryway).

PrBoom+ is based on the PrBoom 2.5.x line of development. It can currently be compiled in POSIX, Windows and Mac OS X environments. The current version is 2.5.1.4, released on 2016-01-10. The project saw its first developments in 2004, starting off as an unnamed PrBoom modification, but after gaining numerous additions over PrBoom it eventually adopted the separate PrBoom+ title in 2005.

In addition to all PrBoom features, PrBoom+ offers

• Chasecam for demo playbacks
• Changing the speed of the game in-game (for demo playback, recoding TAS demos, and for just playing at different speed)
• Automatic loading of WADs necessary for playback, chosen by demo name or by information present in demo file (if recorded with PrBoom+)
• Accurate Doom v1.2 emulation if needed during demo playback or requested by user
• Support for DeePBSP and ZDBSP extended nodes
• Support for the MUSINFO lump shared with Risen3D, ZDoom and GZDoom
• MIDI output with OPL emulation, FluidSynth, PortMidi, or SDL
• Ogg Vorbis and MP3 playback
• Speed optimisations for very large levels, compared to PrBoom
• Customizable HUD with the -PRBHUD- lump
• Video capture with the -viddump parameter (requires external programs)
• Support for jumping when not recording demos

OpenGL mode features

In addition to all aforementioned PrBoom+ features, in OpenGL mode PrBoom+ can also use:

• ZDoom-style high-resolution textures/flats/sprites (replacements located between HI_START and HI_END markers)
• Support for PNG and DDS formats for high-res textures
• GZDoom-style skyboxes through the GLDEFS lump (or its alias GLBDEFS)
• Optional animation blending for animated flats and textures, similar to ZDoomGL
• Optional free look (though aiming is not affected and autoaim behaves as if the line of sight remained horizontal)
• Details textures (also defined in GLDEFS lump)
• Optional textured automap

PrBoom

PrBoom, originally short for "Proff Boom", is a source port for Windows, Linux/POSIX, OpenVMS and Mac OS X based initially on Boom, but later merged with LxDoom and LsdlDoom. As a result of this merger, PrBoom is compatible with both Boom and MBF. It includes OpenGL features for the renderer (as GLBoom) as well as some enhancements over the engines it is based on, such as being able to handle levels with twice as many segs, vertices and sidedefs than usual. In addition to the code from its predecessors, it incorporates bits of code from the Eternity Engine, and PrBoom+.

PrBoom is currently maintained by Rob Young (RjY), with occasional contributions from Andrey Budko. Florian Schulze (Proff) and Colin Phipps (cph) (who accompanied Proff for the first few years after the merge with LxDoom), have retired from the PrBoom development team. Most development now occurs in PrBoom+ instead.

Unlike other source ports that concentrate on offering many new game features or changes, such as ZDoom, EDGE and the Eternity Engine, PrBoom aims to act as a stable port of the more established or traditional engines.

PrBoom uses the SDL library to abstract away operating system or platform specifics. As a result it supports a very large variety of platforms In addition to the PC, it has been compiled for the GP2X and various Mac models, among others. The source port, packaged with Freedoom, is included in the Fedora RPM software repository.

Compatibility modes and settings

PrBoom supports various of compatibility settings to adjust its behavior, much like those initially implemented for MBF. In addition to individual settings for each difference in behavior, it allows the user to set compatibility levels to behave like earlier versions and modifications of the Doom engine. With the compatibility levels PrBoom may provide almost flawless compatibility with regular demos, as well as those recorded with Boom engines.

To change compatibility levels, the cheat code tntcomp can be used ingame. The game can also be launched with the -complevel parameter, or with default_compatibility_level in the config file, followed by one of the following numbers:

(...)


Wikipedia:

Boom was a port for DOS of the Doom source code by TeamTNT. Boom fixed numerous software glitches and added numerous other software enhancements into the engine to such a degree that its additions have been incorporated into most modern versions of Doom source ports (such as PrBoom+, ZDoom and Doom Legacy). The last update of Boom, version 2.02, was released on October 22, 1998. In October 1999, Boom's source code was released. Further development of Boom as a source port was continued for DOS as MBF, for Windows as PrBoom, and for Linux as LxDoom. The latter two later merged as PrBoom and also took on many of the MBF features, so PrBoom's own successor, PrBoom+, is effectively the modern equivalent of Boom.

LxDoom

LxDoom was a source port for Linux created by Colin Phipps in 1999 based on Boom. It particularly focussed on removing the limitations and bugs inherited from the original Doom, and increasing computational efficiency. In 2000 it was combined with PrBoom, a Windows source port, becoming its basis. PrBoom was from then available in both Windows and Linux versions.

PrBoom

PrBoom is a Doom source port derived from Linux and Windows ports of Boom and MBF that includes an optional OpenGL renderer, as well as options allowing it to restore the behavior of earlier executables (such as Doom 1.9, Boom, and MBF) in essential ways. Initially designed for use in Windows and Linux, it has also been ported to AmigaOS 4, AROS, Dreamcast, GP2X, MorphOS, Nintendo DS, Nintendo 3DS, Wii, and Rockbox. A variation named PrBoom+ provides enhanced demo recording and viewing capabilities. id Software's official Doom iPhone port is based on PrBoom. The source port is packaged in the Ubuntu Software Center as well as Fedora's RPM software repository alongside Freedoom. PrBoom was last updated as version 2.5.0 on November 9, 2008. PrBoom+ was last updated as version 2.5.1.4 on January 10, 2016.

Although PrBoom and PrBoom+ are simpler than some other Doom source ports, they are often preferred as staying relatively close to the behavior of the original games, and have good demo support. However, some of the bug fixes and behavior changes of other ports may unbalance how levels made for the original games play, giving players certain advantages or disadvantages.

Features

☑ Framerate non plafonné,
☑ vitesse du jeu variable,
☑ ré-enregistrement et caméra de marche, caméra suiveuse,
☑ observation complète avec la souris,
☑ les fonctionnalités supplémentaires ne remettent pas en cause la compatibilité complète avec le jeu Doom original.



This is all the features PrBoom has compared to the original Doom game - it's intended to give you an idea of the enhancements, rather than burying you in details. The docs included with PrBoom cover the use of some of the extra features.

This is shamelessly modelled on Boom's changes pages. By each change, there's the name of the port the feature comes from (so it's compatible with).

☯ Playing the game

☑ Supports loading dehacked files at the command line, or in WADs (BOOM, MBF)
☑ Supports PWADs containing sprites and flats (BOOM)
☑ Save games and demos completely store game parameters (BOOM, MBF)
☑ Savegames store list of loaded WAD files, warning if wrong files loaded (BOOM, MBF)

☯ Game engine

☑ Player bobbing improved, optional (BOOM, MBF)
☑ Friction effects (BOOM), affecting players and monsters (MBF)
☑ Wind, current, conveyor effects (BOOM)
☑ Far more flexible scrolling wall/floor types (BOOM)
☑ Always run (BOOM)
☑ Weapon change logic overhauled and improved (BOOM)
☑ Support for friendly monsters, helper dogs (MBF)
☑ Monster target finding code improved (MBF)
☑ AI improvements (MBF)
☑ Bouncy and touchy things (MBF)
☑ New code pointers (MBF)
☑ Per-level and animated skies (MBF)
☑ Generalised line types system gives complete flexibility (BOOM)
☑ Elevators (BOOM)
☑ Translucent sprites, walls (BOOM)
☑ Independent floor and ceiling lighting (BOOM)
☑ Silent teleports (BOOM)
☑ Deep water, true underwater areas (BOOM)
☑ Icon of Sin telefragging made more consistent (MBF)
☑ Fix large numbers of game bugs (BOOM, MBF, LxDoom)
☑ Support arbitrary texture heights (BOOM)

☯ Screen

☑ High resolution support (PrBoom)
☑ Optional message console, multiple message lines (BOOM)
☑ Status bar shows health/armour/ammo in colours (BOOM)
☑ Heads up display, showing ammo, health, keys overlayed on view (BOOM)
☑ OpenGL renderer which renders as original to software Doom as possible while greatly improving the visual quality (PrBoom)

☯ Multiplayer

☑ Spy mode improved (BOOM)
☑ Support for loadgame in a net game (LxDoom)
☑ Client server style network games (LxDoom)

☯ Automap

☑ No limit on marks (BOOM)
☑ Rotation and overlay modes (DOSDoom, LxDoom)
☑ Map shows coordinates (BOOM), optionally follow pointer (MBF)
☑ Teleport lines, key doors marked specially (BOOM)
☑ Keys, secrets visible on map with cheat codes (BOOM)
☑ Colours fully configurable from menus (BOOM)

☯ Intermission screens

☑ Par times hidden when not relevant (BOOM)
☑ Total episode time shown (LxDoom)

☯ Menus

☑ F1 help screen shows current key setup (BOOM)
☑ Key bindings, monster behaviour, and compatibility settings all set in menus (BOOM, MBF)

☯ Compatibility

☑ Game is capable of behaving like any of: original Doom v1.9, Boom v2.02, MBF (BOOM, MBF, LxDoom)
☑ Plays most original Doom v1.9 demos (more than Boom or MBF)
☑ Plays most Boom v2.02 demos (apart from levels with friction effects everything should work).
☑ Plays some DosDoom, earlier Doom, earlier Boom, and LxDoom demos.
☑ Plays all MBF demos.
☑ Auto-correction of common bugs in old levels (MBF), with warnings (LxDoom)
☑ Fine control of options controlling compatibility and new features (MBF)

☯ Controls

☑ Greater control of key bindings from in game menus (BOOM)
☑ More accurate mouse sensitivity control (BOOM, LxDoom)

☯ Misc

☑ Screenshot code improved, supports BMPs (BOOM)
☑ Support for ENDOOM and ENDBOOM (BOOM, LxDoom)
☑ -timedemo and -fastdemo options (BOOM)
☑ Real time frame rate, segs, visplanes, sprites display (LxDoom)
☑ Various extra cheat codes (BOOM, LxDoom)

☯ Internals

☑ Greatly improved internal memory management (BOOM, LxDoom)
☑ Startup time greatly shortened by lazy generation of some lookups (DOSDoom, LxDoom)
☑ Removed internal limits (BOOM)

Installation [fr]

INSTALLATION :

➥ Installation à partir du binaire du jeu :

Le jeu est en dépôt, il suffit d'installer le paquet.

➥ Installation à partir du source du jeu :

Si vous souhaitez quelque-chose de récent (versions de développement), la compilation du source est généralement indispensable.
• Installez les bibliothèques SDL (voir la fiche "006 - Glossaire & licences courantes" du Bottin).
• Décompressez son source, puis dans son répertoire racine lancez successivement :
$ ./configure
$ make
(ou "$ make -j8" si vous disposez d'un processeur 8 threads, pour accélérer la compilation)

Vous obtenez les 2 binaires prboom-plus et prboom-plus-game-server

➥ Les données :

• Données libres et/ou gratuites pour l'équivalent du jeu Doom 1 :
✔ - pour la version libre, voir la fiche Freedoom (paquet éponyme en dépôts Debian) : copiez les livrables (fichiers wad obtenus après décompression du zip, sans les renommer) dans le répertoire du moteur : ok

Non testé :
- pour la version gratuite et limitée d'origine (shareware, quelques niveaux de démo), installez le paquet "doom-wad-shareware" (en dépôts).
- sinon il existe aussi des tonnes de données créées par des passionnés (voir la fiche du Bottin "Ressources - Doom 1&2, Heretic, Hexen 1&2, Strife").

• Données commerciales (achat de la version Windows dont on récupère les données), voir les fiches dans le Bottin :
- pour Doom 1, la fiche "Ultimate Doom",
- pour Doom 2, la fiche "Doom II: Hell on Earth",
- pour Heretic, la fiche "Heretic: Shadow of the Serpent Riders",
- pour Hexen, la fiche "HeXen: Beyond Heretic".


LANCEMENT DU JEU :

• Si vous avez installé le jeu à partir d'un paquet : Alt F2 puis saisissez : prboom-plus
• Si vous avez compilé le jeu à partir de son source, en console dans le répertoire du binaire compilé (prboom-plus-2.5.1.4/src/) lancez : $ ./prboom-plus
• Si vous souhaitez tester des mods ou contenus externes en solo (elle fonctionne également pour le multi, mais je ne l'ai pas testé en multi), le plus simple me semble être d'utiliser QZDL (voir la fiche dans le Bottin), une interface simple permettant de lancer un moteur de Doom avec différents contenus.

Reviews & comments [fr]

Test (2.5.1.4 et 2.5.1.5.test) de goupildb :

(test de fonctionnement)
Le moteur est dans les dépôts (en version 2.5.1.5.test: testé, fonctionne bien) et il se compile facilement (testé : ok).
Lancé depuis son répertoire source, il sait trouver automatiquement un certain nombre de données (pas toutes, il n'a pas trouvé par exemple les données de FreeDoom 1 & 2) sur le disque dur, en console il affiche :
"(...)
W_Init: Init WADfiles.
adding /usr/share/games/doom/doom1.wad
adding /usr/share/games/doom/prboom-plus.wad
(...)"
Ces données ont été installées via le paquet doom-wad-shareware (pour doom1.wad) et prboom-plus (pour prboom-plus.wad)

Je l'ai également testé avec le mod "WolfenDOOM: Spear of Destiny", voir ci-après.
Globalement il m'a donné satisfaction, sauf pour la vue haut/bas que je n'ai pas trouvé.
À condition d'activer OpenGL et d'autres options (scale2x, ...), son graphisme est plutôt bon.

Côté ☺ :
• Une excellente réalisation : l'interface est claire et bien organisée
• Il supporte bien le joystick (mais le jeu au joystick ne présente que peu d'intérêt car trop difficile du fait d'une précision bien moindre qu'au clavier)
• Son rendu graphique est assez bon (comparable à GZDoom 3.1.0 pour le mod WolfenDOOM: Spear of Destiny).
• Supporte l'OpenGL (testé), les synthés MIDI (testé fluidsynth notamment : ok), l'interpolation (scale2x, scale3x, ... : testé), ...
• Supporte la barre de statut des ennemis (testé : j'ai bien aimé).

Côté ☹ :
• Pas de vue haut/bas (l'affichage du viseur présente du coup peu d'intérêt car on ne peux pas viser correctement les ennemis situés en hauteur ou à un niveau plus bas)
• Il ne recherche pas le contenu libre au démarrage (mais on peux lui l'indiquer manuellement via un outil tel que QZDL).

☯ Conclusion :

PrBoom-plus 2.5.14 est un bon moteur qui fait le job pour lequel il a été fait : celui de préserver la compatibilité tout en apportant quelques apports sympas (rendu OpenGL, le support des synthés MIDI, ....). Il est dommage qu'il ne supporte pas encore la vue haut/bas (du moins je ne l'ai pas trouvé).
Un grand bravo et merci à son auteur !


Quelques mods testés et appréciés (récapitulatif, liens ci-dessus section "Resources") :
J'ai testé quelques mods via l'outil QZDL (voir la fiche correspondante pour le mode d'emploi).

➜ Mods :
• WolfenDOOM: Spear of Destiny (lien sur la fiche "GZDoom & QZDoom") : une série de scénarios à télécharger sur le site de l'auteur, à jouer en utilisant le wad de Doom 2 en plus du wad du scénario. Je l'ai testé avec GZDoom 3.1.0, Zandronum 3.0 et PrBoom-plus 2.5.14 : le meilleur rendu a été obtenu avec GZDoom 3.1.0, néanmoins celui de PrBoom-plus 2.5.14 est lui aussi assez bon à condition d'activer l'OpenGL. Le problème de PrBoom-plus 2.5.14 est que si l'on active la mire de visée, l'on ne peut pas viser correctement les ennemis car il ne supporte pas la vue haut/bas, contrairement aux autres.
WolfenDOOM: Spear of Destiny peut aussi se jouer avec un contenu alternatif (testé avec FreeDoom2) mais dans ce cas il présente nettement moins d'intérêt car les décors de Wolfenstein ne sont pas reproduits (seuls les armes et le HUD sont affichés, donc pas trop d'intérêt). Si vous cherchez un peu de difficulté, prenez un niveau difficile car les ennemis sont plutôt faciles à éliminer. Le problème est que les medikits sont rares, et dans le niveau maxi de difficulté les ennemis réapparaissent mais pas les medikits. Assez bien, sans plus.