Jump to content
LeaN

tutorial [Guia] Optimizar tu mapa

Recommended Posts

En esta guía se tratará el tema de la optimización en los mapas en 5 puntos, para asi obtener un buen rendimiento del mismo en gran parte para los FPS. Los FPS son los frames por segundo, y los podes ver en el cs con el comando net_graph 3 en consola.


1. VIS modo FULL.

Es importante compilar con VIS en modo FULL, se recomienda hacerlo en la compilación final porque este modo hace que el compileo dure mas tiempo, pero que valga la pena. Para configurar el VIS en Full sigue esta ruta:
Batch Compiler > VIS > Vis Type > Full.


2. Textura Null.

Para una buena optimización de FPS hay que usar esta textura null en las caras no visibles de los sólidos, para que dichas caras sean nulas en el mapa y asi descontar todas las caras posibles. Para mas información sobre esta textura visita el siguiente enlace: [Guia] Textura Null.


3. Construcción del mapa.

Obviamente el hecho de cómo construis el mapa, es lo que más va a influir en los FPS. Por eso dejo varios tips para optimizar tu mapa de la mejor manera posible:

A ) El hecho de ver en el juego muchos models/jugadores en un espacio amplio, hace que te funcione lento (bajos FPS), pasa esto porque cuesta renderizar todos esos models/jugadores y mas si no tenes una buena placa de video, por ende, el tip es: No crear el mapa con espacios exageradamente abiertos y con distancia de vista muy amplia. No hace falta que se junten muchos models en un espacio para que los FPS bajen, si creas un espacio abierto y grande con mucho detalle ya cuesta renderizar toda esa vista, los models son el agregado para que bajen aun mas los FPS.

B ) No usar una inmensa cantidad de sólidos sin entidad juntos. Convierte algunos sólidos que no den con el "exterior" en func_wall, para disminuir la cantidad de solidos sin entidad, esto hace que se reduzcan lo polígonos siguiendo la lógica de los wpolys (abajo mas información al respecto). Si conviertes en entidad los sólidos que dan con el exterior crearias un LEAK.

C ) Las texturas, fijate de no editarlas con dimensiones menores a 1.00. Estas dimensiones de las texturas se ven con la herramienta de aplicación de textura (Shift + A), en X e Y. A medida que aumentamos el número baja la calidad de la textura y a medida que achicamos el valor aumenta la calidad de textura pero eso cuesta muchos polígonos. Por ende, en cuanto pongamos valores altos mejor.

Recomiendo usar los siguientes valores

1.00 - a nivel general y lo menos posible

2.00 - a nivel general y para espacios amplios 

5.00 - para sólidos o caras de sólidos escasamente visible entre los jugadores (por ejemplo un techo) 

10.00 - para sólidos o caras inaccesibles a la vista del jugador pero sin embargo la textura null se notaría y no la usamos. (por ejemplo un borde de ventana)

D ) No colocar varios models (cycler_sprite) juntos, baja fps, explicado en el punto A.

E ) Recomiendo no construir un Skybox (cubo de sky que cubra al mapa para descartar cualquier LEAK). Esto baja enormemente los FPS. A menos que sea un Skybox cuidadoso y adaptado a la forma del mapa, lo que llevaría mucho trabajo hacerlo. Pero crearlo para tapar un LEAK no sirve.

F ) Tratá de usar las texturas " { " (transparente) con func_wall en construcciones como rejas, escaleras, etc. en vez de usar muchísimos sólidos. Invierte en FPS y evitá crear esos sólidos de 1 unidad de medida.

G ) Se recomienda no usar nunca la herramienta carve / tallar suele generar errores los cuales te juegan en contra con los FPS. Aprende a reemplazar ésta herramienta por la de corte creando pieza por pieza.

H ) Tratá de invertir en sólidos usando la menos cantidad posible. Suele pasarle a muchos que en vez de usar 1 sólido usan 2, cuando es exactamente lo mismo a nivel estético, o que usan 6 sólidos cuando es exactamente lo mismo si usan 1 o 2. Generalmente al usar la herramienta de corte les pasa sin que lo noten y dejan creados sólidos que sobran.


4. HINT, SKIP y Visleaves.

Un visleaf (o leaf) es un espacio de superficies visibles en un mapa. Esto tiene que ver con las habitaciones en los mapas, cuando el jugador se encuentra en una habitación en el mapa tiene que renderizar la otra habitación, por mas que el jugador no pueda ver la otra habitación porque hay una pared, el juego la renderiza igual. Entonces para evitar ese renderizado innecesario se usa el HINT y el SKIP. El mal uso de estas texturas especiales causará un peor rendimiento del deseado y del que ya tenés. Pero este tema de HINT, SKIP y Visleaves se tratará con mas profundidad en otra guía mas adelante porque conlleva mucha explicación e imágenes y hará muy larga ésta guía.


5. Wpolys.

Worldpolys = Poligonos del mundo = Poligonos del mapa. Son el número de polígonos del mapa que genera el compilador VIS. El compilador genera cortes en el mapa formando muchisimos mas poligonos de los que creemos que hay en realidad.

¿Como se cuántos wpolys tiene mi mapa? Podes verlos con el comando r_speeds 1 en consola (funciona sin sxe el comando). Y agregar el comando developer 1 para mas comodidad

¿Qué pasa si me excedo de wpolys? El juego anda "tosco", se traba. A menos polígonos, mejores fps.

¿Con cuántos wpolys se que hay un buen rendimiento y con cuántos un mal rendimiento? Esto va a depender de la PC de cada jugador, por lo tanto dejo una recomedación en base a mi criterio, pero siempre varía. Los números que yo creo apropiados son:

800 wpolys: el mapa tiene un nivel de excelencia.

1200 wpolys: el mapa está bien.

1500 wpolys: comienza a bajar FPS a aquellos con PC de calidad baja.

2000 wpolys: comienza a bajar FPS a aquellos con PC de calidad media

3000 wpolys: si este número solo te aparece en un rincón del mapa muy poco accesible, safa, ya que la jugabilidad no se da en esa parte o es muy escasa. Pero si este número te tira en la mayor parte del mapa recomiendo editarlo para reducir los polígonos, ya que en el juego diario es probable que reciba quejas de algunos players

¿Cómo hacer para que el compilador genere menos cortes (wpolys)? Cuando 2 sólidos hacen contacto entre sí, el compilador genera cortes en dichos sólidos. Por ejemplo una caja esta apoyada sobre un piso (son 2 sólidos en contacto). Entonces el compilador va a generar varios cortes en los 2 sólidos. Lo que tenemos que lograr es que se generen la menor cantidad de cortes posibles. Para ello se pueden usar las 2 técnicas mas usadas y eficaces (puntos A y B).

A ) Voy a usar el ejemplo de la caja y el piso (2 sólidos). Para evitar los cortes no tiene que haber contacto uno con el otro, por ende se recomienda dejar un espacio de 1 unidad entre caja y piso, haciendo que la caja este flotando 1 unidad. Que este flotando no se va a notar en el juego (solo en algunos sólidos en algunas partes) por ende se recomienda usar este método en algunos sólidos (en la mayoria). Cuidado con causar un leak por dejar 1 unidad.

B ) Las entidades no son cortadas mientras no se toquen entre sí, por ende una caja con func_breakable en contacto con el piso no va a ser cortada, como tampoco el piso. Por lo tanto se recomienda que a los sólidos que no les dejaste 1 unidad por la mala estética los conviertas en func_wall. No así si el piso fuera una entidad por lo dicho en un principio en éste punto. 


__________________________________

 

Si tenés en cuenta los puntos de la guía seguramente tendrás un mapa bien optimizado. Si el mapa está con un rendimiento malo es muy posible también que tengas algun error en la compilación. Y si hacés un mapa y te funciona a bajos FPS o altos Wpolys, fijate en ésta guía nuevamente para analizar en dónde puede estar tu error ya que éstas son las recomendaciones mas sobresalientes. 


firma_mm8.png

Share this post


Link to post
Share on other sites

Si, es una entidad "pesada" para el renderizado. Por eso en kz hay comando para desactivar el agua, ya que se necesita si o si buenos FPS.


firma_mm8.png

Share this post


Link to post
Share on other sites

ok gracias tengo otra pregunta cuando se hace muchos solidos para bajar un poco los FPS es importante poner una entidad func_wall o func_illusionary? digamos un arbol o arbustos o algo depende el mapa porque en mi caso estoy haciendo un mapa de minecraft y tambien hice un spot que tiene varios solidos en cuadritos (tipico de minecraft) tendria que colocar alguna entidad ahi?

Share this post


Link to post
Share on other sites

La recomendación esta mas relacionada con el tema de los wpolys, los poligonos y cortes que un sólido genera en contacto con otro. Lo que sucede es que sólido sin entidad en contacto con sólido sin entidad, se genera cortes de los que hay que tratar de evitar en lo posible. Sólido con entidad en contacto con sólido con entidad también genera corte. Sólido sin entidad con sólido con entidad no genera. Bien, el consejo va con esta regla. Entonces, por poner un ejemplo sencillo mirá esta imagen:

 

kbzuvb.png

 

Se trata de 9 sólidos, el del medio es sólido entidad. Tenerlo así es lo que se recomienda, estoy siguiendo el consejo al pie de la letra y me ahorré muchos poligonos. Espero que se entienda cualquier cosa me preguntás.

 

Bueno, tampoco es tan necesario hacerlo siempre, depende de lo complejo que vaya a ser tu mapa. Si haces un árbol y no mucho mas no creo que te excedas en polígonos. Si el mapa dentro de todo es simple y no con muchos sólidos no pasa nada.


firma_mm8.png

Share this post


Link to post
Share on other sites

En el juego, colocá el comando r_speeds 1 y developer 1. Ahora fijate el número de wpolys que va marcando al mirar hacia esa zona de muchos sólidos. Si te pasas de 1000, podrías optimizar algunas partes usando la técnica que te mostré, no solo en mi comentario sino lo recalcado en el punto 5 de wpolys.


firma_mm8.png

Share this post


Link to post
Share on other sites
asi lo tengo yo http://imgur.com/7CU0lJ2 todos esos sos cuadritos y todos tienen 40w 48l 40h y la escala esta en 1.00 en x y y..

Tu mapa tiene leak?

Por lo que veo en la imagen, todavía no has terminado todo. En caso que no hayas terminado, crea solidos auxiliares con texturas sky y otras texturas para cerrar el map de tal forma que no tenga leak (intenta evitar el skybox) y luego verifica tu fps.

Para comprobar si realmente funciona lento o no, es importante compilar exitosamente el proceso VIS y RAD (porque éstos mejoran el fps). Teniendo leak, siempre te tirará el peor fps.

Si este no es el caso, tendríamos que hacer un análisis un poco más complejo como el que dice LeaN. Avísanos que tal te fue.

Share this post


Link to post
Share on other sites

el skybox es cuando hago muy grande el solido con el sky? y no el mapa no lo he terminado me falta mucho solo queria saber si todos esos cuadritos podrian causar bajos fps, igual todas las partes q no se miran los quito con el NULL..

Edited by wicho

Share this post


Link to post
Share on other sites
el skybox es cuando hago muy grande el solido con el sky? y no el mapa no lo he terminado me falta mucho solo queria saber si todos esos cuadritos podrian causar bajos fps, igual todas las partes q no se miran los quito con el NULL..

Si! El skybox es eso.

 

Tengo un mapa que todavía está en desarrollo y quiero testear para ver si todo va OK (y el FPS).

24o0vg7.jpg

Le coloco unos "paredes" temporales para probar el rendimiento de una sección (tapando la parte superior también).

2hyxrn6.jpg

Verifico si no tiene leak y compilo. Ahí recien veo el fps para verificar (me sale 100 fps, muy buena).

Si compilo sin esas "paredes" me sale 13 fps porque el map tiene leak. (leak, causa de bajos fps).

Share this post


Link to post
Share on other sites
Ok gracias de cuanto de ancho haces las paredes con el sky o cuanto es lo recomendable?

No tiene una medida de ancho especifica , no importa si es fino o ancho contal de que uses bien el sky no tendras problema.

 

Por cierto un dato interesante el sky lo podes usar para las caras no visibles como si fuera null

Share this post


Link to post
Share on other sites

El Hint y el Skip lo se usar yo y te puedo decir que es un poco complejo, siempre y cuando de que manera la quiera usar y debes pensar bien el area a la que le debes colocar, el hint y el skip te puedo decir que se dan muy bien en areas de forma de ( L ) forma de ( T ) Muy pronto puede que saque algun tutorial o foto de como usarlo correctamente.

Share this post


Link to post
Share on other sites
El Hint y el Skip lo se usar yo y te puedo decir que es un poco complejo, siempre y cuando de que manera la quiera usar y debes pensar bien el area a la que le debes colocar, el hint y el skip te puedo decir que se dan muy bien en areas de forma de ( L ) forma de ( T ) Muy pronto puede que saque algun tutorial o foto de como usarlo correctamente.

 

No sabia que se podia usar hint para mapas 1.6. Espero tu tutorial


1D005644A.jpg

Share this post


Link to post
Share on other sites
Si seria bueno gracias..

 

Para no tener que esperar a que lo haga, acá te dejo 2 vídeos que te enseñan como se usa, pero el vídeo muestra como se hace en el CSS, pero es exactamente igual que para el CS 1.6. Espero que sirva.

 

 


8L4LlV.png

Share this post


Link to post
Share on other sites
ok gracias los voy a ver, tengo una pregunta cuando es recomendable usar hint y skip y cuando no?

 

Viste que en los 2 videos y sin apretar play, ya se aprecian 2 imágenes con 3 divisiones, mejor dicho una habitación dividida en 3 leafs. Bueno, principalmente es recomendado en esos 2 casos, que serían cuando la medianera no es tan alta, de manera que no se divide en 2 habitaciones, sino que sigue siendo 1. Y la otra cuando un pasillo forma esa esquina. Pero por encima de estos 2 casos, es recomendable cuando creas un mapa complejo en sólidos, de manera que los wpolys del mapa sobrepasan los 1000 polígonos. Y más cuando se trata de un mapa defuse o kreedz, ya que esos mapas requieren de la optimización en primer lugar por encima de la estética, ya que es muy importante para la jugabilidad.


firma_mm8.png

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...