Jump to content

[Guia] Optimizar tu mapa


Description

[Guia] Optimizar tu mapa

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. 

Tutorial Videos

Optionally you can add videos from Youtube or Vimeo to your tutorial

 Share


User Feedback

Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...