Jouer à Duke Nukem 3D... en 2005 !

SoULiAne

Version 1.0 (avril 2005)

Résumé

Presque neuf ans après sa sortie, Duke Nukem 3D n'a toujours pas été abandonné par sa communauté de fans. Le code source des fichiers exécutables a été libéré sous licence GPL en 2003, et depuis plusieurs projets gravitent autour du jeu, en lui permettant de tourner sous Windows XP ou Linux, en lui ajoutant des fonctionnalités, en améliorant ses graphismes. Le but de ce guide est tout d'abord de vous présenter, puis de vous montrer comment installer et utiliser les programmes qu'il est bon d'avoir en 2005 pour jouer à Duke Nukem 3D, tout seul ou bien en réseau.


Table des matières

Les version officielles du jeu
Les version non officielles
JonoF's Duke Nukem 3D Port (JFDuke3D)
Rancidmeat Duke3d_w32
Icculus Duke 3D Port
EDuke et TerminX EDuke32
Jouer avec des textures hautes définitions
Les bots et les launchers
Installation sans HRP
Installation avec HRP
Comment gérer la cohabitation JFDuke3D / Rancidmeat
Utilisation de DukesterX pour jouer en réseau
Les problèmes du jeu en réseau
Liens
Remerciements

Les version officielles du jeu

La première version complète du jeu est sortie le 24 avril 1996, c'est la version 1.3d et elle est constituée de trois scénarios. La version 1.4 est sortie quelques mois plus tard et elle a rajouté un nouveau scénario. La version 1.5 est sorti fin 1996 et a corrigé quelques bugs. Les versions 1.4 et 1.5 s'appellent toutes les deux « Atomic Edition ». Il existe un patch ou mise à jour qui s'appelle « Plutonium Pack » et qui permet de transformer la version 1.3d en « Atomic Edition ».

Le jeu n'a pas été mis à jour par ses créateurs depuis plusieurs années mais heureusement, grâce à la libération du code source, les projets non officiels ont pris le relais.

Les version non officielles

Les versions officielles du jeu sont faites pour tourner sur le système MS-DOS, et ne fonctionne normalement pas ou mal sous Windows XP ou Linux. Lorsqu'une personne prend le code source du jeu et le modifie en vue d'en distribuer une version compatible avec Windows XP ou Linux, on dit qu'elle fait un port. Il existe quatre principaux ports de Duke Nukem 3D actuellement.

JonoF's Duke Nukem 3D Port (JFDuke3D)

JFDuke3D est développé par JonoF, c'est un port pour Windows et Linux. Les fichiers binaires pour Windows sont directement téléchargeables sur le site de JonoF, mais pour Linux il faut les compiler vous-même à l'aide de l'outil make.

JFDuke ajoute beaucoup de nouvelles fonctionnalités au jeu, entre autres le rendu OpenGL et le support des textures hautes définitions (voir la section intitulée « Jouer avec des textures hautes définitions »). Il devrait bientôt supporter aussi les fichiers sonores au format MP3 et OGG Vorbis. JFDuke embellit énormément le jeu, il est très fluide et ajoute des petites fonctionnalités très appréciables. Le menu des options est complet et permet de configurer les touches sans quitter le jeu. Son seul défaut est qu'il pose actuellement des problèmes lorsque l'on joue en réseau, mais ceci devrait être corrigé prochainement (on l'espère tous !).

http://jonof.edgenetwork.org/index.php?p=jfduke3d

Rancidmeat Duke3d_w32

Rancidmeat n'apporte pas vraiment de nouvelles fonctionnalités au jeu d'origine, cependant il le rend compatible Windows XP et il fonctionne très bien en réseau ! La très grande majorité des parties qui se jouent actuellement sur internet se font avec Rancidmeat.

La configuration des touches a été temporairement désactivée, que ce soit dans le setup ou à l'intérieur du jeu (il vous faudra donc les configurer en utilisant le setup de JonoF ou un éditeur de texte). Je dois aussi signaler le problème que je rencontre chez moi avec ce port : le jeu tourne très lentement (en fait je suis obligé de jouer en 640*480 pour obtenir une fluidité correcte). Mais la plupart des gens ne rencontrent pas ce souci de performance, et certains préfèrent même Rancidmeat à JFDuke car ils le trouvent plus conforme à l'original.

http://www.rancidmeat.com/project.php3?id=1

Icculus Duke 3D Port

Icculus est un port pour Windows XP et Linux. Je ne l'ai pas encore testé mais il parait très proche du jeu original. Pour l'essayer vous devrez télécharger les fichiers sources sur le CVS et les compiler avec make. Icculus n'est pas beaucoup utilisé avec Windows, peut-être justement à cause de cet absence de fichiers binaires.

http://icculus.org/duke3d

EDuke et TerminX EDuke32

EDuke est une amélioration du jeu original qui facilite la création de « mods » ou « total conversions ».

EDuke32 est une version d'EDuke basée sur JFDuke qui reprend le meilleur des deux projets tout en rajoutant ses propres petites nouveautés. Les améliorations apportées à JFDuke par JonoF sont régulièrement répercutées sur EDuke32 par TerminX. EDuke32 dispose aussi de son propre éditeur de niveau, un « Build » amélioré qui s'appelle Mapster32.

http://www.saettler.com/eduke

http://www.eduke32.com

Jouer avec des textures hautes définitions

Seuls JFDuke et EDuke32 nous offre ce petit bonheur, et la différence par rapport aux graphismes originaux est énorme. Grâce à la communauté de fans, un pack de 80mo contenant des centaines de textures et modèles 3D a été créé afin de transformer votre jeu sans le moindre effort.

Ce pack s'appelle « High Resolution Pack » (HRP) et il inclue, en plus de toutes les textures, la dernière version de JFDuke. Pour les petits modems ou les vieilles machines que ces textures hautes définitions risquent de faire ramer un peu, une version « light » a été créée. Elle ne fait que 20mo et contient toutes les textures du HRP normal, mais en plus basse résolution.

http://www.planetduke.com/hrp

Les bots et les launchers

Il existe de nombreux programmes non officiels qui vous permettent par exemple de jouer avec des bots ou de faciliter le jeu en réseau. Voici une liste non exhaustive des programmes les plus intéressants :

  • SOB-Bot vous permet de jouer avec des bots dont l'intelligence et les capacités sont paramétrables. L'Atomic Edition du jeu permet elle aussi de jouer avec des bots de plutôt bon niveau, mais je trouve les SOB-Bot's meilleurs car ils peuvent utiliser le jetpack, les steroids, presque toutes les armes... vous pouvez aussi choisir de jouer contre des SOB-Bot's et des bots de l'Atomic Edition, en même temps.

    http://www.bur.st/~duke3d/patches.shtml

  • Dukeroch est un launcher pour jeu en solo. C'est un outil qui vous permet de lancer des parties paramétrées sans vous fatiguer avec la ligne de commande.

    http://www.bur.st/~duke3d/utilities.shtml

  • DukesterX est un launcher pour jeu en réseau (LAN ou internet). Il est beaucoup utilisé, et vous pourrez grâce à lui rencontrer d'autres dukers ! Notez qu'il est encore un peu bogué, mais ce n'est pas trop gênant. Il supporte les ports de Rancidmeat et de JonoF.

    http://www.dukesterx.net

  • Duke3D Multiplayer Setup est développé par Vatvit et comme DukesterX, il permet de lancer des parties en réseau. Il supporte Icculus et Rancidmeat. Apparemment on peut grâce à lui faire des parties avec certains clients sous Linux et les autres sous Windows.

    http://duke3dmp.sourceforge.net

Installation sans HRP

Maintenant que vous avez pris connaissance des différentes versions du jeu ainsi que des programmes utiles, voyons comment les installer. Vous devez tout d'abord disposer du jeu original, car si le code source des fichiers exécutables est librement diffusable, les données telles que les textures, les sons et les cartes ne le sont pas. Heureusement pour vous, toutes ces données ne sont pas dispersées dans 50 répertoires différents. En fait elles sont toutes regroupées dans un gros fichier qui représente la base du jeu : DUKE3D.GRP. Ce fichier GRP est le seul pré requis pour que vous puissiez jouer à Duke Nukem 3D.

Remarque : le fichier GRP de la version 1.3d n'est pas le même que celui de l'« Atomic Edition ». Dans la version 1.3d il fait 26524524 octets, et dans la version 1.5 il fait 44356548 octets. Pour jouer en réseau, tous les joueurs doivent utiliser le même fichier GRP. En plus des données dont nous avons parlé plus haut (textures, sons, cartes), le GRP devrait aussi contenir trois fichiers essentiels : les fichiers CON. Certaines versions trafiquées du GRP, qui sont donc non officielles, ne contiennent pas ces fichiers CON. Sachez-le pour la suite.

Je vais ici présenter une installation classique qui comprend :

  • votre fichier DUKE3D.GRP ;

  • les ports JFDuke32 et Rancidmeat ;

  • DukesterX (launcher réseau) ;

  • Dukeroch (launcher solo)

  • SOB-Bot (bots intelligents).

  1. Copiez le fichier GRP dans un répertoire de votre choix. C'est dans ce répertoire que nous allons installer le jeu, alors choisissez-le bien. Nous l'appelerons à partir de maintenant « répertoire de base ».

  2. Téléchargez les derniers binaires JFDuke32 sur le site de JonoF. Décompressez l'archive dans le répertoire de base. Vous avez dès maintenant une installation fonctionnelle du jeu, et vous pouvez commencez à le lancer ! Mais je vous conseille d'attendre un peu car nous avons d'autres choses à installer si vous voulez profiter du jeu à fond.

  3. Téléchargez les derniers binaires Duke3d_win32 sur le site de Rancidmeat. Décompressez l'archive dans le répertoire de base.

  4. Téléchargez la version full de DukesterX et installez-la. La version full contient, en plus de DukesterX, certaines librairies qui sont utilisées par le programme : les « Visual Basic Runtimes » ainsi que le fichier « msinet.ocx ». Si donc vous décidez pour une raison ou pour une autre d'installer DukesterX dans sa version minimale, sachez que vous aurez peut-être besoin d'installer ces librairies. Les VBRuntimes s'installent facilement, il suffit de double cliquer dessus. Quand à msinet.ocx, il faut le copier soit dans C:\WINDOWS\system32 soit dans le répertoire de base.

  5. Téléchargez et décompressez dans le répertoire de base Dukeroch et SOB-bot. Il existe deux versions de SOB-Bot : une pour la version 1.3d et une pour les versions « Atomic ». Choisissez celle qui correspond à votre fichier GRP.

Installation avec HRP

Veuillez tout d'abord prendre conscience que le HRP ne fonctionne qu'avec JFDuke3D ou EDuke32, et pas avec Rancidmeat ou Icculus...

La procédure est la même que pour l'installation sans HRP, à l'exception du 2. Au lieu de télécharger et de décompresser JFDuke32, téléchargez le HRP puis lancez son installation. Vous pouvez choisir d'installer JFDuke3D en même temps que le HRP qui est inclus dans le pack : faites-le donc ! N'oubliez pas de cocher « Duke Nukem 3D » si votre GRP est celui de la version 1.3d, et « Atomic / Plutonium » si vous avez la version 1.4 ou 1.5. Vous pouvez aussi cocher « WASD+Mouse » si vous souhaitez bénéficier d'une configuration des touches à base du classique « ZQSD + souris ». Vous devez ensuite indiquer dans quel répertoire installer le HRP : choisissez le répertoire de base (celui dans lequel vous avez copié le fichier GRP au début de la procédure).

Pour lancer le jeu avec le HRP actif, il faut utiliser le raccourci qui a été créé à cet effet. Ce raccourci lance en fait JFDuke (duke3d.exe) avec les arguments « /gduke3d_hrp.zip » et « /ghacks.zip » : duke3d_hrp.zip et hacks.zip sont deux fichiers zip qui ont été copiés dans le répertoire de base par l'installation du HRP. Ils contiennent toutes les textures et modèles du HRP ainsi que des bidouillages de cartes. Le « /g » devant chacun d'eux signifie qu'il faut les charger au lancement de duke3d.exe.

Si vous voulez toujours profiter du HRP sans passer par le raccourci ou la ligne de commande, c'est possible. Il vous suffit d'extraire directement dans le répertoire de base le contenu des fichiers zip. Vous devrez ainsi vous retrouver avec un répertoire de base contenant :

  • un fichier duke3d.def ;

  • une quarantaine de fichiers *.mhk ;

  • un sous-répertoire « highres » contenant lui-même plusieurs sous-répertoires et environ 2000 fichiers.

Vous pouvez maintenant lancer JFDuke sans aucun argument tout en bénéficiant du HRP ! Si vous voulez désactiver le HRP, il suffit de renommer le fichier duke3d.def en duke3d.def.hrp (par exemple). Nommez-le de nouveau duke3d.def pour réactiver le HRP.

Le sous-répertoire « highres » contient de nombreuses textures portant l'extension PNG. Vous pouvez vous amusez à les modifier à l'aide d'un logiciel de graphisme comme Photoshop ou The Gimp. Vos textures modifiées seront automatiquement prises en compte lors des prochains lancements du jeu.

Comment gérer la cohabitation JFDuke3D / Rancidmeat

Je vous ai parlé de fichiers CON à la section intitulée « Installation sans HRP ». Ces fichiers définissent et paramètrent les aspects du jeu, ils sont essentiels. Un autre fichier important est le fichier DUKE3D.CFG dans lequel est stocké votre configuration personnelle (entre autre celle du clavier et de la souris).

Faire cohabiter JFDuke et Rancidmeat n'est pas aisé car chacun des deux ports utilisent des fichiers CON et CFG qui ne sont pas compatibles avec l'autre port. JFDuke utilise les fichiers CON originaux du jeu (ceux qui sont inclus dans le GRP original) alors que Rancidmeat utilise des fichiers CON trafiqués. Je vous conseille de créer dans votre répertoire de base un sous-répertoire « jonof » (respectivement « rancid ») qui contiendra les trois fichiers CON et le fichier CFG spécifique à JFDuke (respectivement Rancidmeat). Ainsi, chaque fois que vous déciderez d'utiliser JFDuke (le fichier duke3d.exe) ou Rancidmeat (le fichier duke3d_w32.exe), vous n'aurez qu'à copier dans le répertoire de base les quatre fichiers du sous-répertoire correspondant. Pour vous faciliter la tâche, j'ai déjà fait une archive zip qui contient ces deux sous-répertoires et les fichiers CON de chacuns. Cette archive est disponible ici, téléchargez-la et décompressez-la dans le répertoire de base. Par contre, c'est à vous de créer vous-même vos fichiers de configuration. Je vous explique comment faire :

  1. Configurez d'abord votre jeu pour JFDuke.

    • En lançant le fichier setup.exe : si vous disposez d'un clavier AZERTY vous devez inverser les touches A/Q et Z/W, car pendant le jeu votre clavier sera considéré comme étant un QWERTY.

    • A l'intérieur du jeu (duke3d.exe) : allez dans le menu des options, puis dans « KEYS SETUP » et « MOUSE SETUP » pour configurer les contrôles.

  2. Lancez JFDuke avec duke3d.exe et faites un partie pendant une ou deux minutes pour vérifier si vos touches réagissent comme prévu.

  3. Faites une sauvegarde de votre fichier DUKE3D.CFG en le copiant dans le sous-répertoire « jonof ».

  4. Rancidmeat sait reconnaître un clavier AZERTY, vous pouvez donc configurer avec lui les touches normalement. Par contre ni son setup_w32.exe ni le menu des options dans le jeu ne vous permettent encore de le faire... Je vous conseille alors de reprendre le fichier DUKE3D.CFG de JFDuke, et de le modifier avec un éditeur de texte pour changer les A en Q, les Z en W, et inversement. Lancez ensuite le setup_w32.exe de Rancidmeat et cliquez sur "Save configuration" pour rendre le fichier CFG compatible avec Rancidmeat.

  5. Lancez Rancidmeat avec duke3d_w32.exe et testez si vos touches fonctionnent comme prévu. Si le jeu rame (comme chez moi), baissez la résolution avec setup_w32.exe et réessayez jusqu'à ce que la fluidité soit correcte.

  6. Faites une sauvegarde de votre fichier DUKE3D.CFG en le copiant dans le sous-répertoire « rancid ».

Utilisation de DukesterX pour jouer en réseau

Je considère ici que DukesterX et les librairies qu'il utilise sont déjà correctement installés. Si vous obtenez un message d'erreur en essayant de lancer DukesterX ou pendant l'éxécution du programme, veuillez relire 4. Il pourrait aussi s'agir d'un bug du programme... Bon, exécutez DukesterX en double-cliquant sur DukesterX.exe, une fenêtre apparaît :

  • Entrez votre nom dans le champ « Your Name ». Choisissez, dans « Duke Port », Rancidmeat ou JFDuke3D... pour jouer avec d'autres personnes, tous les joueurs doivent utiliser le même port.

  • Si vous voulez héberger la partie (être le serveur), cliquez sur « Host ». Une nouvelle fenêtre apparait.

    Pour que les autres joueurs puissent voir votre serveur, vous devez le rendre public. Pour cela donnez-lui un nom en tapant « /servername=nom » puis cliquez sur « Make Public ».

    Cliquez ensuite sur « Game Options », choisissez une carte, configurez le jeu... cliquez sur « More Options » et choisissez la valeur « High » pour l'entrée qui s'appelle « CheckSum Validation ». C'est très important car si vous ne cochez pas « High », DukesterX va autoriser le lancement d'une partie entre plusieurs joueurs qui utilisent des versions différentes de DUKE3D.GRP et des fichiers CON, et ceci conduira probablement à des erreurs de synchronisations pendant que vous serez en train de jouer.

  • Si vous voulez rejoindre un serveur, cliquez sur « Join ». Le programme vérifie la liste des serveurs publics et l'affiche. Double-cliquez sur le serveur de votre choix et cliquer sur « OK » pour valider.

    Si vous voulez rejoindre un serveur privé qui n'apparaît pas dans la liste, cliquez sur « Join Manually » et rentrer l'adresse IP du serveur ainsi que son port réseau (8501 par défaut).

  • Avant le lancement d'une partie, les joueurs connectés au serveur peuvent discuter entre eux en écrivant dans la barre située en bas de la fenêtre. Cette barre sert aussi à entrer des commandes, comme « /mycheck » pour calculer les checksums de vos fichiers GRP et CON. Il faut taper ensuite « /check » pour afficher le résultat de ce calcul. Le serveur peut taper « forcecheck », ceci équivaut à faire un « /mycheck » chez chacun des joueurs puis à renvoyer les résultats au serveur qui saura alors qui n'utilise pas la même version du jeu que lui.

Les problèmes du jeu en réseau

On rencontre malheureusement fréquemment des problèmes lorsque l'on joue en réseau, surtout avec JFDuke3D. Je ne sais pas vraiment comment résoudre ces problèmes, mais je peux vous donner une liste de choses à essayer car ça marche parfois... Faites vous votre propre expérience en essayant chacun des points suivants :

  • Quand le serveur clique sur « Start! » pour démarrer une partie, la fenêtre de chargement se bloque sur "Waiting for other players..." ?

    • Réessayez deux ou trois fois.

    • Si ça ne marche toujours pas, c'est peut-être à cause d'un joueur qui a une mauvaise adresse IP (comme par exemple 192.168.x.x) ou un mauvais port (attention, je ne parle pas ici de port comme JFDuke ou Rancidmeat, mais de port réseau, ça n'a absolument rien à voir... le port est le nombre qui est écrit derrière l'adresse IP du joueur, et on utilise par défaut le port 8500).

    • Vous pouvez aussi essayer de lancer la partie sans utiliser DukesterX, mais en faisant un fichier BAT dans lequel vous écrivez une ligne de commande. Pour savoir quelle commande taper, lisez l'aide de JFDuke (elle se trouve dans le fichier releasenotes.html).

  • Lorsque l'on commence à se tirer dessus, il y a un message d'erreur en haut à gauche de l'écran qui dit « Out Of Sync » (erreur de synchronisation). Le jeu devient alors très saccadé, les adversaires bougent bizarrement ou bien on est carrément tout seul dans la carte... et au bout de quelques minutes, le jeu se bloque complètement. Ce fameux « Out Of Sync » est LE gros problème que l'on rencontre avec JFDuke, et il sera normalement bientôt corrigé. En attentant :

    • Assurez-vous que tous les joueurs utilisent le même fichier GRP et les mêmes fichiers CON. C'est expliqué à la section intitulée « Utilisation de DukesterX pour jouer en réseau ».

    • Essayez de jouer dans une autre carte. Si vous avez l'habitude de ne toujours jouer que dans les cartes officielles, essayez un peu les « user maps ». Certaines cartes comme Stadium sont réputées pour devenir injouables au bout de 30 secondes (avec JFDuke). A l'inverse, LA Rumble ou la « user map » BP23 semblent ne poser aucun problème...

    • Beaucoup de gens disent qu'il faut désactiver l'Autoaim (visée automatique) pour faire disparaître ces erreurs. Le jeu devient alors moins fun, mais c'est pas pire que de ne pas jouer du tout...

    • Certains disent qu'un logiciel de messagerie instantanée comme MSN ou ICQ peuvent faire apparaître le « Out Of Sync ». Je ne sais pas du tout pourquoi ou comment mais vous ne perdrez rien à essayer !

    • Vous obtiendrez sûrement moins d'erreurs en jouant à deux qu'à trois ou plus.

Voilà... ce ne sont pas des remèdes miracles mais ca peut aider. Essayez toutes ces « astuces », et si ça ne marche toujours pas, soyez patient ! J'espère moi aussi très fort que la prochaine version de JFDuke corrigera ce problème. Et d'après JonoF, elle le fera. Nous pouvons d'ores et déjà commencer à nous réjouir, car nous savons qu'un jour viendra où nous pourrons jouer en réseau sans problème, avec la fluidité et la beauté que procure le port de JonoF !

Liens

Remerciements

  • Sothiro pour ses remarques pertinentes ainsi que sa relecture attentive.

  • 3D Realms pour avoir développé et libéré le code de Duke Nukem 3D.

  • Tous les développeurs ou mainteneurs de projets non officiels, la communauté d'infographistes qui est derrière le HRP.

  • Parkar, Plagman et TerminX pour leur soutien.