Les Leaks

Écrit le 29/11/2004 par sUPREz
Dernière mise à jour : 30/01/2006

Avant Propos

Ce petit tutorial va vous aider à prévenir et a réparer l'erreur de compilation la plus courante : le leak.

A. Explication

Pour comprendre ce qu'est un leak, il suffit de regarder dans le dico anglais/français. Ce mot se traduit littéralement par fuite. Pour pouvoir être compilé (et donc optimisée), votre map doit être « étanche ». Il doit y avoir un intérieur du niveau et un extérieur. Et aucun passage entre les deux zones ne doit être créé.

Dans un exemple simple, on place l'info_player_start dans une pièce carré éclairé par une lumière au plafond. Il faut que tous les murs soient collés contre le sol et le plafond. Il ne faut absolument pas avoir un trou semblable à celui présent sur l'image suivante.

http://www.game-lab.com/images/tuts/hl2_leaks/screen_01.jpg

Dans un cas comme celui-ci, les compilateurs ne peuvent plus faire la différence entre l'intérieur et l'extérieur du niveau et ils se bloquent.

Pour prévenir les leaks de ce type, il faut créer indépendamment tous les murs de vos niveaux sans passer par la fonction « hollow ».

Le leak peut venir d'un deuxième cas plus rare. Si vous avez placé une entité en dohors de votre niveau, là encore les compilateurs ne peuvent plus distinguer l'intérieur de l'extérieur.

B. Précisions

Tous les élément de votre niveau de constituent pas un matériau étanche pour les compilateurs. Seuls les brush sont étanche (bloc de construction de base). Attention cependant car certains outils transforment sans le dire ces brush en matériaux non étanche. Par exemple, l'onglet « displacement » du « Face Edit Sheet » rend votre bloc perméable. Il faut donc penser à rajouter un mur derrière pour isoler le tout.

Dans notre exemple, pour rendre une pelouse plus réaliste, nous avons rajouté du relief grâce à l'outil « paint geometry » (Face Edit Sheet à Onglet Displacement à Create à Paint Geometry).

http://www.game-lab.com/images/tuts/hl2_leaks/screen_02.jpg

Pour isoler le niveau, nous avons rajouté un second sol en dessous de l'herbe. En masquant l'herbe, on apperçoit le « vrai » sol.

http://www.game-lab.com/images/tuts/hl2_leaks/screen_03.jpg

C. Réparation

Si malgré tout, vous avez l'erreur de compilation suivante (ou semblable) : « **** leaked **** Entity light (-64.00 96.00 128.00) leaked! », ne vous inquiétez pas. Il y a un moyen de réparer tout cela.

En cas de leak, un fichier « pointfile » est créé pour aider le mappeur à réparer sa faute. Cliquez sur « Load Pointfile » (menu Map de hammer) et cherchez le fichier « ma_map.lin » dans le dossier « SteamSteamAppsemailHalf-Life 2mon_modmap ». Un trait rouge partant de l'entité citée dans le compilateur se dirigera vers la fuite.

http://www.game-lab.com/images/tuts/hl2_leaks/screen_04.jpg

D. Conclusion

Les leaks sont très courant alors mapper doucement mais sûrement. Pour les éviter, faites attentions à tous les brush que vous placez, en particulier lors de copier/coller. N'utilisez pas la fonction « Make Holow » et enfin compiler le plus souvent pour éviter d'avoir 10 leaks d'affiler à corriger.

Bon mapping a tous et gare aux leaks J !!