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
xlogfiledu 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

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 chiend, un dragonD, un zombieZ, un lichenF, 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 ».
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).