Problème
Après le premier lancement du niveau test généré en session 119, plusieurs
observations à ajuster :
- Plafond trop bas :
roofH = -256(= 8 JME) suffisant pour la plupart
des aliens, mais le Mantis Boss acolHeight = 800(= 25 JME) et
dépassait largement le plafond. - Échelle : les aliens ont des hauteurs très variées dans definitions.json
(Droid = 40, Mantis = 800, soit un facteur 20×). Le plafond doit accommoder
le plus grand. - Espacement : 450 unités entre aliens était trop serré quand un boss
volumineux côtoyait un alien standard. - « Doublons » visuels : signalés par l’utilisateur. Après analyse, ce
n’est pas un bug mais une particularité d’AB3D2 original où plusieurs
aliens partagent le même sprite (cf.ALIEN_WAD_BY_GFXTYPE). Ex. : Droid,
Ashnarg et AlienPriest ont tous gfxType=2 et utilisent le sprite
robotright. La distinction se fait au niveau du comportement (bulType,
vitesse, HP), pas du visuel. Documenté dans le code et dans les logs de
génération.
Modifications
TestLevelGenerator.java — dimensions de la salle ajustées :
roofH:-256→-1280(= 40 JME au-dessus du sol, marge x5 pour Mantis)spacingentre aliens :450→700(= 22 JME, isole les boss visuellement)sizeZ:4000→5000(un peu plus de profondeur pour reculer)- Spawn joueur reculé à 500 unités du mur sud (au lieu de 400)
Logs améliorés
./gradlew genTestLevels produit maintenant un tableau détaillé :
=== test_alien_bullets : layout ===
Salle : 12600x5000 unites Amiga (393x156 JME)
Plafond : roofH=-1280 (40 JME au-dessus du sol)
Joueur : (0, 2000) face NORD
Aliens : 16 types, espaces de 700 unites
Position (X) | Alien | bulType attendu
--------------+-----------------------+----------------
-5250 | Red Alien | 0
-4550 | SnakeScanner | 9
-3850 | Guard | 9
...
Avec la position X exacte de chaque alien, tu peux identifier qui est qui en
jeu malgré les sprites partagés.
Note : pourquoi des sprites partagés
Dans AB3D2 original (Amiga, 1996), la mémoire était limitée : réutiliser un
même sprite pour plusieurs comportements était normal. C’est une fidélité au
jeu, pas une régression. Pour la suite, on pourra envisager un mode
« diagnostic » qui ajoute un label texte au-dessus de chaque alien pour les
identifier sans regarder la console, mais ce n’est pas critique.