Detección y eliminación de LEAKS

De LiTHiUM

Revisión de fecha 13:31 7 ene 2007; Ver revisión actual
← Revisión anterior | Revisión siguiente →
Técnicas de Optimización #2 (GoldSrc)
Requisitos: Se supone un manejo fluido del WorldCraft/Hammer en general y mucha paciencia... ;)
¡Antes de realizar experimentos y disecciones con tu mapa, no olvides hacer una copia de seguridad!

Tabla de contenidos

Introducción

LEAK LEAK LEAK


Esta famosa y temida frase indica que algo no va bien en tu mapa y que no se puede ejecutar correctamente la compilación, de modo que no se verán las cosas del mejor modo posible. Aunque hay varias razones por las que el compilador da este error, la más común es la presencia de una fuga en tu mapa.

Un mapa creado con el editor es como un globo deshinchado, el proceso de compilación sería lo mismo que ir llenando el globo de aire, se le da vida añadiendo luces, entidades, efectos...

Sin embargo si hay una fuga por más aire que le des, siempre se deshincará. El ordenador comienza a "soplar" desde el interior del mapa y si encuentra una fuga que le lleve al exterior intentará "hinchar" la totalidad del universo, lo que dará error.

Es muy importante que el ordenador tenga claro que está dentro y que fuera, de lo contrario querrá calcular todo lo que existe en el mapa de una vez, así además de las caras interiores querrá ver las exteriores y todo a un tiempo. Por eso en un mapa pequeño (diminuto) este error no es importante, ya que verlo todo a la vez no puede influir y no se ocultarán zonas, pero en uno normal será imposible poderlo procesar todo y aparte de una burrada de r_speeds, desaparecerán zonas sin razón aparente.

Para que el ordenador sepa que está dentro (y debe ser procesado) debemos ser coherentes y ponérselo fácil. Si ponemos una entidad fuera del mapa o si dejamos un hueco al exterior le será imposible saber qué es fuera y dentro.


Evitar el problema

El mapa ha de ser estanco (perfectamente sellado) como un globo. Una pequeña fuga es suficiente para que de error y nos volvamos locos buscando. Por eso lo mejor para evitarlo es:

  • Procura mapear las estructuras principales con la cuadrícula a 8 ó 4 unidades como poco, así evitarás mover sin querer alguna pared 1 unidad. Para los detalles finales puedes bajar la cuadrícula a 2 ó 1.
  • Compilar cada poco tiempo, aún en modo rápido. Así, de tener un fallo, sabremos que se produjo en las últimas construcciones o retoques que hicimos.
  • Las fugas suelen estar en las esquinas (uniones de sólidos), así que allí debes centrar tu atención.
  • Modificar los vértices manualmente puede dejar fisuras microscópicas. Mucho ojo.
  • Una recomendación de DaveJ, autor del mapa "de_dust", es que se evite en lo posible el uso de la opción "carve" al hacer túneles y demás. Siempre que podamos, deberemos hacerlo a mano. Esto nos ahorrará mas de un quebradero de cabeza.
  • Una entidad debe estar siempre dentro por completo del mapa, si está parte fuera será como dejar un hueco.
  • Los planos inclinados son lugares muy sensibles a dejar fugas (en un extremo).
  • Si tienes un pasillo complejo que unir a una sala, la manera de que la unión sea perfecta es cavar el pasillo en la pared y luego (tras desagrupar) borrar el trozo de pared que cierra el paso.
  • Si has de unir dos pasillos complejos lo mejor es crear un cubo en la unión y cavar ambos pasillos en él, tras desagrupar borra las "tapas" de cada pasillo.
  • Si dejas una entidad fuera de tu mapa, lo interpretará como LEAK.


Sin embargo, y aún todo esto, es fácil que sufras un error de LEAK, ya que los editores no son prefectos, de modo que tendrás que buscarlo y cerrarlo o perderás el mapa.


La solución

Usando el .pts

La mejor manera, y lo primero que se ha de intentar es mirar un poco en la última zona creada buscando el hueco, si esto no da resultado compila el mapa en modo rápido. Baja la consola y teclea pointfile. Esto hará que lea el fichero *.pts que ha generado al compilar y te cree una línea negra y amarilla que pase por el hueco y empiece a rebotar por las paredes. El número de partículas que lo compone es de 80000, aunque este valor suele ser más que suficiente puedes elevarlo. Para encontrar la fuga no tienes más que seguir la línea hasta que llegues al hueco por el que salga de tu mapa.



Usando luces

Si lo anterior no funciona (a veces es una locura seguir la línea de puntos) hay quien envuelve todo en un gran cubo, lo más ajustado posible a su mapa, y pone varios focos de luz muy intensos y de color chillón (morado, azul o rojo por ejemplo) entre su mapa y el mega-cubo, compila y lo juega para buscar esa luz que saldrá por el hueco.

Sellando zonas

También se puede ir sellando secciones del mapa mediante un enorme cubo (si es con paredes recuerda quitar las entidades que queden fuera). Si tras sellar un sector el error persiste es que está en otra parte, así has de ir sellando zonas cada vez más pequeñas hasta que aparezca. Este sistema es bueno si estás muy seguro de que existe una única fuga, de otra manera puedes volverte loco. Los más radicales optan por amputar trozos de mapa y sellar las heridas.

Un sistema rápido de sellar la fuga es encerrar todo el mapa o parte en una enorme caja. Este sistema tiene el inconveniente de que, siguiendo el símil del globo, es como meterlo dentro de una botella dejando que la boquilla quede fuera; a la vez que hinchas el globo pinchado llenas la botella y todo queda a la misma presión. Esta es una solución a medias, ya que más bien lo que haces es matar moscas a cañonazos. El gran inconveniente de esto es que los r_speeds se dispararán, ya que al compilar se determinará que desde cualquier punto se puede ver cualquier parte del mapa y siempre se pintarán todas las estructuras, salas y decoración aunque no las tengas a la vista... Otra cosa sería si el cubo que has creado no es gigante y es parte indispensable del mapa y parte de éste, tal y como pasa en mi mapa Faraon1, en el que la caja configura el suelo, el cielo y los laterales, pero intenta evitarlo.



Si aún así te da problemas, siempre puedes preguntar en el FORO de LiTHiUM sobre el tema.



Tutorial e imágenes por Odin, finales de septiembre de 2001.
Revisión por vEK.
Herramientas personales