Aller au contenu
NetHack — le jeu et ses outils
STATUS:PAGE LOADED — 2026-11-03

Code source.

https://github.com/HackTechDev/CyberNethack

NetHack — le jeu et ses outils

Ce dossier réunit une version de NetHack 5.0.0 traduite en français (avec une variante cyberpunk « Night City »), quatre applications en mode terminal écrites en Python pour l'accompagner, des outils pour convertir des niveaux de Doom en niveaux NetHack, un serveur de jeu en ligne (dgamelaunch) et un design de t-shirt.

Dossier Contenu
NetHack-5.0.0/ Le jeu : sources, traduction française, thème cyberpunk
Nethack_Launcher/ Lanceur : menu pour démarrer le jeu et les éditeurs
NetHack_MapEditor/ nhmapedit : éditeur de cartes des niveaux spéciaux
NetHack_MonsterEditor/ nhmonedit : éditeur de monstres (robots et mechas)
NetHack_HeroEditor/ nhheroedit : éditeur de héros (rôle, race, départ)
Doom2Nethack/ Conversion de niveaux Doom (WAD) en niveaux NetHack
YadexEditor/ Yadex, éditeur de niveaux Doom (WAD) sous X11
DGameLaunch/ Installation d'un serveur NetHack public (dgamelaunch, SSH)
TShirt/ Design de t-shirt et logo NetHack en SVG

Chaque dossier a son propre README.md, plus détaillé.

Ce dossier est un dépôt git dont chaque sous-dossier est un sous-module (un dépôt GitHub séparé). Pour tout récupérer d'un coup :

git clone --recursive https://github.com/HackTechDev/CyberNethack.git
git submodule update --remote      # amener chaque sous-module à sa branche

Le dossier Doom/ (fichiers WAD, dont Freedoom, utilisés par Doom2Nethack) n'est pas versionné.

Le jeu : NetHack 5.0.0

Code source de NetHack 5.0.0, compilé et installé sous Lubuntu 26.04, branche cybernethack du dépôt HackTechDev/Nethack500_Lubuntu2604.

  • Traduction française complète (option OPTIONS=language:fr) : messages, menus, noms des monstres et des objets, quêtes, rumeurs, encyclopédie, aide et guide du joueur, pour les interfaces tty, curses, X11 et Qt.
  • Thème cyberpunk (option OPTIONS=language:fr@cyber) : le donjon devient Night City, les potions des stims, les gnomes des squatteurs… sans changer les règles du jeu (voir CYBERPUNK.md).
  • Script d'installation automatique :
cd NetHack-5.0.0
./install.sh                     # ou ./install.sh --console (tty et curses seulement)
~/nh/install/games/nethack

Détails : NetHack-5.0.0/README.md et INSTALL.md.

Les applications

Les quatre outils sont écrits en Python 3 avec curses, sans dépendance externe. Ils demandent un terminal d'au moins 80×24 et se pilotent au clavier ou à la souris.

Nethack_Launcher — le lanceur

Menu plein écran qui démarre NetHack, l'éditeur de cartes (« éditeur de secteurs »), l'éditeur de monstres (« fabrique de robots ») ou l'éditeur de héros (« clinique d'identités »). Avec le thème cyberpunk, il prend l'apparence d'un terminal de Night City.

  • choix aux flèches, par numéro, par touche (n, e, m, h) ou à la souris ;
  • affiche une rumeur au hasard, les meilleurs scores et la dernière partie, lus dans le xlogfile du jeu, avec le détail de chaque partie ;
  • lancement direct sans menu : ./nethack_launcher.sh nethack -u MonPerso ;
  • entrées et chemins configurables dans config.ini.
cd Nethack_Launcher
./nethack_launcher.sh

Menu du lanceur

NetHack_MapEditor — l'éditeur de cartes (nhmapedit)

Éditeur des niveaux spéciaux de NetHack, qui sont des scripts Lua (dat/*.lua, avec des.map(), des.monster(), des.stair()…).

  • outils de dessin : pinceau, ligne, rectangle, salle, ellipse, remplissage, labyrinthe, symétrie, copier/coller, annulation illimitée ;
  • placement des escaliers, monstres, objets, pièges, portes, autels… et des régions (temples, boutiques, zones éclairées…) ;
  • ouverture des niveaux existants du jeu sans perte du script Lua ;
  • vérification du niveau (connexité, règles de NetHack, exécution Lua) ;
  • essai immédiat dans le jeu (via tmux) et ajout au donjon ;
  • export en texte, SVG ou PNG ; une cinquantaine de modèles fournis (modeles/), dont des lieux de Night City ;
  • interface en français ou en anglais.
cd NetHack_MapEditor
./nhmapedit.sh mon_niveau.lua

Pour commencer : TUTORIAL.md ; liste complète des fonctions : FEATURES.md.

NetHack_MonsterEditor — l'éditeur de monstres (nhmonedit)

Éditeur pour créer les robots et mechas de la version cyberpunk et les ajouter au jeu (entrées MON() de include/monsters.h).

  • tous les réglages d'un monstre : noms français et anglais (avec genre et pluriel), lettre et couleur, niveau, vitesse, armure, six attaques, résistances, drapeaux, texte d'encyclopédie ;
  • tuile 16×16 générée à partir d'une silhouette, ou dessinée dans un éditeur de pixels ;
  • difficulté calculée comme dans le jeu, comparaison avec les monstres existants pour l'équilibrage ;
  • modèles prêts à adapter (drone, androïde, mecha, tourelle…) ;
  • installation des monstres dans les sources, puis recompilation du jeu.
cd NetHack_MonsterEditor
./nhmonedit.sh                   # projet monstres.json, sources ../NetHack-5.0.0

Pour commencer : TUTORIAL.md ; liste complète des fonctions : FEATURES.md.

NetHack_HeroEditor — l'éditeur de héros (nhheroedit)

Éditeur des héros de la version cyberpunk : on choisit la profession, la race, le sexe, l'alignement, l'animal… et on lance le jeu avec eux ; on peut aussi changer les règles de départ d'un rôle et les ajouter au jeu.

  • héros : nom, rôle, race, sexe et alignement (seules les combinaisons permises par le jeu), animal et son nom, fruit, conduites, biographie ;
  • noms du thème Night City (Solo, Netrunner, réplicant, chaton-robot…), 13 archétypes prêts à jouer ;
  • rôle modifié : titres de rang (anglais, français, Night City), dieux, races permises, attributs, PV, énergie, or, intrinsèques, inventaire de départ ;
  • tuile 16×16 du rôle dans un éditeur de pixels ;
  • intégration réversible dans les sources, recompilation, partie lancée avec le héros.
cd NetHack_HeroEditor
./nhheroedit.sh                  # projet heros.json, sources ../NetHack-5.0.0

Détails : README ; liste des fonctions : FEATURES.md.

Le serveur : DGameLaunch

Le script install-serveur-nethack.sh installe automatiquement un serveur NetHack public : la version cyberpunk du jeu (branche cybernethack) derrière dgamelaunch, dans un conteneur LXD. Les joueurs s'y connectent en SSH, sans installer le jeu, s'inscrivent dans le menu de dgamelaunch et jouent dans leur terminal.

Joueur ──ssh -p 2222──▶ Hôte ──proxy LXD──▶ Conteneur « nethack »
                                              └─ dgamelaunch (comptes SQLite)
                                                 └─ chroot /opt/nethack/chroot
                                                    └─ nethack (fr@cyber)
  • installation complète en une commande : LXD, conteneur Ubuntu 26.04, compilation de NetHack et de dgamelaunch, chroot des joueurs, sshd ;
  • script ré-exécutable : il met le jeu à jour en conservant les comptes, les parties sauvegardées et les scores, et réapplique les réglages (nom du serveur, nombre de joueurs, langue, port…) ;
  • sécurité : parties sous un compte système sans accès réseau, mots de passe dgamelaunch hachés en yescrypt (correctif appliqué), limites de connexions SSH, mode debug réservé à un compte confirmé par l'admin ;
  • entretien quotidien : sauvegardes sur l'hôte, restauration (nethack-restaurer), purge des anciens enregistrements de parties.
cd DGameLaunch
sudo ./install-serveur-nethack.sh
ssh -p 2222 nethack@<ip-de-l-hôte>     # côté joueur

Réglages, fonctionnement détaillé, administration et dépannage : DGameLaunch/README.md.

Les niveaux de Doom dans NetHack

Doom2Nethack — le convertisseur

Convertit un niveau Doom / Doom II (fichier WAD) en niveau spécial NetHack au format Lua. Les hauteurs sont ignorées : seule la disposition des salles est conservée. Python 3, sans dépendance externe.

  • conversion d'une carte en un niveau, ou d'un grand niveau en une branche de plusieurs niveaux, déclarée dans dat/dungeon.lua ;
  • deux modes de conversion, installation directe dans le jeu, retrait des branches Doom (--restore) ;
  • menu interactif au design du lanceur, avec le thème Night City pour la version cyberpunk ; essai d'un niveau dans le jeu en mode wizard.
cd Doom2Nethack
./Doom2Nethack.sh freedoom-0.13.0/freedoom1.wad                        # menu
./convertDoom2Nethack.sh freedoom-0.13.0/freedoom1.wad E1M1            # un niveau
./convertDoom2Nethack.sh -n auto freedoom-0.13.0/freedoom1.wad E1M1    # une branche

Les WAD sont cherchés dans ../Doom/Wad (variable WAD_DIR). Pour commencer : TUTORIAL.md ; détails : Doom2Nethack/README.md.

YadexEditor — l'éditeur de niveaux Doom

Yadex 1.7.1, éditeur de niveaux Doom (WAD) pour Unix et X11, corrigé pour compiler sur un système récent. Il sert à dessiner ou modifier les niveaux Doom que Doom2Nethack convertit ensuite.

cd YadexEditor
./configure && make yadex          # produit obj/0/yadex

Corrections apportées : ANALYSE.md.

Le t-shirt

Le dossier TShirt/ contient un design de t-shirt en hommage à NetHack, en images vectorielles (texte vectorisé, aucune police à installer) :

Fichier Contenu
nethack-tshirt.svg Design complet, 1236×1330
nethack-logo.svg Logo seul, 1091×430, pour un petit visuel (poitrine, manche, dos)

Le design complet reprend un écran de jeu en caractères ASCII :

  • le titre NetHack en grandes lettres ASCII ambre ;
  • un message du jeu : « You hear the footsteps of a guard on patrol. » ;
  • un niveau de donjon : trois salles reliées par des couloirs (#), avec le héros @ et son chien d, un dragon D, un zombie Z, un lichen F, de l'or $, une potion !, des portes + et les escaliers < > ;
  • la ligne d'état du personnage LeSanglier the Ninja (Dlvl:1 … T:1337) ;
  • la devise « NetHack - a roguelike adventure since 1987 ».

Design du t-shirt

Les fonds sont transparents et le texte clair : le design est prévu pour un t-shirt noir ou de couleur foncée. Les couleurs sont celles du terminal de NetHack : ambre #FFB000 pour le titre, gris pour les murs, couleurs vives pour les monstres et les objets.

Pour l'impression, envoyer le fichier SVG tel quel, ou le convertir en PNG haute résolution, par exemple :

rsvg-convert -w 4000 TShirt/nethack-tshirt.svg -o nethack-tshirt.png

Licence

NetHack est distribué sous la NetHack General Public License (voir NetHack-5.0.0/dat/license). Le lanceur et l'éditeur de cartes sont sous licence MIT (fichier LICENSE dans leur dossier) ; les éditeurs de monstres et de héros n'ont pas encore de fichier de licence. Yadex est sous licence GPL (voir YadexEditor/copying).