
Salut,
Je vais être honnête — je ne suis pas vraiment du genre à partager ce que je fais pendant mon temps libre. D'habitude, je code juste dans mon coin et je garde ça pour moi. Mais quelqu'un de proche m'a récemment dit "tu devrais vraiment montrer aux gens sur quoi tu travailles" — alors me voilà, sortant un peu de ma zone de confort. Soyez indulgents. 😄
Le jeu
Alien Breed 3D 2: The Killing Grounds est un jeu de tir à la première personne sorti en 1996 par Team17 pour le Commodore Amiga. À l'époque, c'était l'un des jeux les plus techniquement impressionnants sur la plateforme — un raycaster similaire à Doom tournant sur un CPU 68k sans aucune accélération 3D matérielle. Le code est un mélange d'Assembly 68k fait à la main et de C, fortement optimisé pour tirer le meilleur parti de la machine.
Si vous aviez un Amiga à l'époque, vous savez de quoi je parle. Si vous n'en aviez pas — croyez-moi, c'était de la sorcellerie.
Pourquoi le porter vers Java ?
Honnêtement ? C'est un défi et un hobby. Pas de grande ambition commerciale ici.
J'ai toujours été fasciné par le fonctionnement de ces vieux jeux sous le capot — mathématiques à virgule fixe, blitters écrits à la main, raycasting sans virgule flottante. Le porter en Java me force à vraiment comprendre chaque routine, à traduire la logique de l’Assembly en code moderne, et à voir si je peux le garder fidèle à l'original.
C'est à la fois de l'archéologie, un puzzle et un voyage nostalgique.
Où j'en suis
J'ai documenté le parcours sur TikTok (oui, TikTok — ne jugez pas 😄) :
- 🎬 Le début — premiers pas, lecture de la source ASM : https://www.tiktok.com/@g.mnt56/video/7627066983556893955?is_from_webapp=1&sender_device=pc&web_id=7633086710739076631
- 🎬 En cours — les choses commencent à prendre forme : https://www.tiktok.com/@g.mnt56/video/7630546033541467414?is_from_webapp=1&sender_device=pc&web_id=7633086710739076631
- 🎬 Travail sur les vecteurs/objets — rendu d'objets à partir des données originales : https://www.tiktok.com/@g.mnt56/video/7632808843306700055?is_from_webapp=1&sender_device=pc&web_id=7633086710739076631
Feuille de route
Voici à peu près où je vais, un pas à la fois :
- ✅ Analyser et comprendre la source ASM/C d'origine
- ✅ Structure du projet et chargement des données (niveaux, objets, textures)
- ✅ Rendu des vecteurs et des objets (géométrie de base à partir des données originales)
- ✅ Mouvement du joueur et collision
- 🔄 Rendu du raycaster / des murs — le cœur du moteur
- 🔄 Rendu du sol et du plafond
- 🔄 Portes et ascenseurs
- 🔄 Rendu des sprites (ennemis, objets)
- ⏳ IA et comportement des ennemis
- ⏳ Armes et combat
- ⏳ Son et musique
- ⏳ Complète traversée de niveaux
Pas de délai. Pas de pression. Juste profiter du voyage.
C'est vraiment un travail en cours et une aventure personnelle.
Si vous vous souvenez de ce jeu, dites bonjour. 👾