TUTORIAL N°4 : RÉSOUDRE LES PROBLÈMES LIÉS AUX LEAKS



Pour ce quatrième "tutorial", je vous propose simplement quelques astuces pour lutter contre les leaks, c'est-à-dire les trous dans les cartes, qui empêchent de compiler et donc de finaliser le travail. En gros, un leak c'est quand l'extérieur de votre map, le vide, est visible depuis l'intérieur de votre carte. Pour vous éviter ça :

- Formez vos murs correctement de façon à ce qu'ils se touchent et ne laissent pas entrevoir le vide.

- Les murs entités ne constituent pas une rempart au vide. Seuls les blocs "To World" le sont. En clair, si vous disposez, par exemple, plein de tableaux sur un mur, et que vous passez ce mur en func_wall pour éviter qu'il ne soit découpé par les tableaux, n'oubliez pas de mettre un brush avec la texture sky derrière pour que le ciel soit votre objet solide qui constitue la barrière avec le vide. Sinon vous récolterez un leak, car votre mur sera une entité qui ne donnera sur rien derrière. Rappelez vous bien de considérer vos entités solides comme des objets qui n'existent pas, et qui ne peuvent donc pas constituer un mur à part entière.

- Pour cette même raison, ne placez surtout pas d'entité à l'extérieur de votre carte, sinon vous aurez un ==leak in hull X== . Si vous avez cette erreur, placez vous sur l'entité en question grâce aux coordonnées qui sont fournies dans le log de compilation. Vous trouverez la source de votre erreur juste à coté. Si l'entité est à l'extérieur de votre carte, ce sont directement les coordonnées de l'objet qui vous seront indiquées. Si vous tenez absolument, pour une raison X ou Y, à placer une entité en dehors de la carte, vous devez l'entourer de blocs solides, que ce soient des murs normaux ou des murs sky.

- Parfois, les vieilles versions des zhlt génèrent des leaks qui en réalité n'existent pas. Assurez-vous d'avoir les versions les plus récentes de ces outils.

- Les textures !NomDeLaTexture (par exemple : !water), etc. ne doivent pas être utilisées comme blocs aux extrémités de la map, car elles génèrent des leaks (==leak in hull X== pour être précis). Contentez vous de mettre des solides texturés avec des textures non spéciales pour éviter ces erreurs.


Si, malgré toutes ces précautions, vous avez un leak et que vous n'arrivez pas à mettre la main dessus :
- Les manipulations très complexes de solides (vertexing par exemple) génèrent facilement des leaks. Dès que vous obtenez l'erreur, ne la cherchez pas dans le .rmf mais dans le .map. Si un solide bugge à l'ouverture du .map c'est ce solide qu'il faudra modifier dans votre .rmf. Sinon, il suffit de chercher dans le .map le solide qui est modifié par la compilation et qui crée le leak. Vous devriez le reconnaître facilement ;). Souvenez vous que c'est le .map qu'il faut vérifier avant de lancer une compilation sans soucis.

- Disposez un bloc de sky tout autour de votre carte, et après avoir compilé, si vous apercevez le ciel depuis une salle qui ne devrait pas donner sur l'extérieur, c'est dans cette salle qu'il y a le leak.

- Une autre méthode consiste à isoler le leak au fur et à mesure avant de trouver le solide incriminé. Pour cela, placez des solides énormes pour combler divers endroits de votre carte à compiler. Si cela compile correctement, c'est que votre leak se trouve là où vous avez mis vos gros blocs. Par éliminations successives, vous pourrez trouver votre erreur... Mais la solution idéale reste de vérifier votre .map !