Repérer et corriger les leaks

Écrit le 28/11/2003 par squintik
Dernière mise à jour : 30/01/2006

Introduction

Les leaks sont un des ennemis du mappeur (si si.. c'est même très vilain des fois), c'est une erreur dans la map qui est parfois très dure à repérer, surtout quand il y en a plusieurs ... donc autant connaître différentes méthodes pour les repérer !

Qu'est-ce-qu'un leak ?

Un leak est un "trou" dans une map, c'est-à-dire un passage entre le vide et l'intérieur de la map ... mais ça peut être aussi une entité située à l'extérieur de la map (dans le vide).

Pour savoir si vous avez un leak dans votre map, faîtes une compilation rapide et si vous avez une erreur :
- LEAK LEAK LEAK (avec les outils de compilation classiques)
- Leak in hull 0 (avec les zhlt .. d'ailleurs si vous les avez pas, allez les télécharger de suite)

Comment les repérer, et les corriger ?

Il y a différentes méthodes pour les repérer et chacun a sa préférée. Donc, je vous conseille de les essayer toutes ; vous verrez bien celle qui vous va le mieux.

Les méthodes les plus pratiques peuvent aussi varier selon la situation (nombre de leaks, taille de la map... etc).

1 ère méthode :

Tout d'abord, lancez HL avec les paramètres -dev -console puis lancez votre map et quand vous êtes dedans tapez pointfile à la console. Explorez votre map et trouvez une traînée de points qui se balade dans un coin de la map.

Suivez cette ligne et regardez bien l'endroit précis où il sort de la map ; le leak devrait se situer là !
Si vous ne voyez pas de points, vous pouvez lancer HL avec les mêmes paramètres, et rajoutez "-particules 10000" (sans les guillemets).

Si vous n'arrivez pas à localiser le leak, essayez une autre méthode.

2 ème méthode :

Dans Worldcraft, il y a une commande qui s'appelle load pointfile (dans le menu Map) qui charge un fichier .pts ou .lin et qui peut vous permettre de localiser le leak en suivant les lignes que vous voyez. Si vous le faîtes, vous verrez que c'est assez le bordel ... Il faut arriver à suivre le trait à l'aide des 3 vues et vous devez voir l'endroit où le trait traverse un mur et rentre dans votre map. Je trouve cette méthode plutôt nulle parce que c'est le bordel pour suivre le trait :p

3 ème méthode :

A mon avis, c'est la meilleure méthode, simple et efficace : l'outil cordon  !
http://www.game-lab.com/images/tuts/hl1_leaks/cordon.gif

Grâce à cet outil, vous pouvez définir une zone de la map que Worldcraft compilera, et il ne s'occupera pas du reste. Procédez en éliminant par moitié à peu près... c'est-à-dire compiler à l'aide du cordon la moitié de votre map et regardez si vous avez toujours l'erreur du leak, si c'est le cas repartagez cette zone en moitié... et ainsi de suite ; et si vous n'avez pas l'erreur du leak, c'est qu'il est dans l'autre partie bien sur. Cette méthode est la mieux si vous n'avez pas trouvé votre leak dès le début.

4 ème méthode :

Cette méthode est très semblable à la 3 ème méthode... elle consiste à faire un gros bloc qui recouvre toute une surface de la map. Si ce bloc est situé sur la partie où il y avait le leak, vous n'aurez pas d'erreur de compilation... donc procédez comme auparavant : moitié par moitié...
Vous arriverez donc à repérer précisément l'endroit où se trouve le leak .

Je me sers de cette méthode quand j'ai plusieurs leaks dans mes maps... mais c'est vraiment chiant quand il y en a plusieurs. Je place les blocs là où je pense qu'il y a un leak (les derniers éléments que j'ai rajouté...) et je supprime les blocs au fur et à mesure ; comme ça je connais à peu près les endroits où ils se trouvent...

Conclusion

J'espère qu'au moins une de ces méthodes vous aura permis de trouver votre leak ...
Sinon, la méthode à ne surtout pas utiliser est de faire un bloc ave la texture sky qui entoure votre map et de faire Hollow sur ce bloc... vous perdriez toute l'optimisation de votre map (et pas qu'un peu) ! Il vaut mieux avoir une map bien optimisée et passer du temps à chercher ces leaks ; qu'avoir une map qui rame, même si vous vous êtes pas fait chier pour les leaks !
Fin bon le mieux c'est toujours de bien faire gaffe dès qu'on commence la map et de faire des petites compils de temps en temps.