Optimizar nuestro juego

GameMaker Studio developers

Optimizar nuestro juego

El rendimiento es importante, y un buen desarrollador tiene esto siempre en mente. No existe una formula secreta para optimizar cualquier tipo de entorno, y tenemos que lidiar con las limitaciones de la manera más eficiente según las circunstancias.

En este tutorial os mostramos de manera sencilla como optimizar la carga gráfica de nuestro vídeo juego.

SoloStudio Tech Youtube Channel


1.0 – Junta de fricción

Antes de pasar a hablar de rendimiento, repasemos de forma breve la junta de fricción. Esta es la ultima opción que ofrecemos por defecto en la librería de físicas.

Así que haremos lo propio creando dos objetos que uniremos con la junta FRICTION JOINT. En sus opciones se nos permite configurar los valores de fuerza motriz, de tal modo que se ejerce una fuerza contraria a la gravedad asignada.

Nos dará la sensación de que nuestra instancia flota en el aire, recibiendo una fuerza de fricción desde el punto que le indiquemos desde la interfaz.

Imaginaos que nos posamos sobre una nube, o mismamente sobre un chorro de agua disparada de una fuente…Con este tipo de configuración y los activos adecuados podremos simular estos efectos.


1.1 – Optimizando la carga gráfica

Llegados hasta aquí, pasemos a hablar de el rendimiento y como optimizar cada uno de nuestros niveles…

Para ello, haremos un test que pondrá a prueba nuestro hardware.

En el caso que nos presenta en este tutorial decidimos duplicar una familia completa, dicha familia está compuesta por 2 terrenos, 8 sistemas de particulas que proyecta 2 particulas cada uno, 8 animaciones y 6 patrones de texturas.

Nuestro objetivo es duplicar esta familia hasta alcanzar los 1000 objetos en pantalla, tomar datos de rendimiento tanto en el modo editor como en el modo test.


1.2 – Cómo funciona nuestra GPU

Con los paneles abiertos y 11 cajas de texto activas nuestro panel alcanza 254 saltos de textura. Ahora os preguntareis…¿Que es un salto de textura o Texture Swap? Intentaré ser breve y conciso, cada vez que GameMaker dibuja tu contenido, tiene que elegir una imagen que se encuentra en una textura y dibuja el área que lo define.

El gráfico a mostrar puede ocupar el tamaño de nuestra textura. Puesto que en un escenario es un conjunto de dibujos almacenados en imágenes, cada vez que se dibuja un activo que contenga una imagen/textura distinta al anterior, nuestra tarjeta gráfica necesita dar un salto en la memoria para escoger la textura adecuada.

De este modo puede seguir dibujando nuestros activos y a esto se le llama salto de textura. Cuanto más potente es nuestra gráfica, más saltos de textura podrá producir sin bajar el rendimiento.

Ahora vamos a explicar que son los Vertex Batches

Nuestra GPU tiene unos valores asignados de como debe representar en pantalla lo que dibuja, y se nos permite modificar la matriz de como se visualiza el mundo. Podemos manipular nuestras imágenes para que luzcan de un determinado color, brillo, además de poder crear efectos manipulando cada pixel de nuestras texturas.

Podemos crear modelos manipulados con una matriz independiente, que se encarga de manipular las transformaciones de estos.

En definitiva, cada una de estas acciones añade un ciclo nuevo. Una nueva llamada para cambiar valores de como debe dibujar nuestra tarjeta gráfica.

A esto se le llama un VERTEX BATCH. Cuantas más “interrupciones de dibujado” necesite nuestra GPU para “resetear” su modo de dibujar, mayor será la potencia necesaria para mover nuestro nivel.

En la imagen de abajo pueden ver los resultados de nuestro test en modo edición y sin haber optimizado nuestro nivel…

Y estos son los resultados en le modo Test, donde nuestro editor es destruido al 99%, dedicando todo el rendimiento de nuestra GPU en reproducir el juego.


1.3 – Ejecutando mejoras

A estas alturas comenzáis a preguntaros…¿Entonces, que debo hacer para mejorar el rendimiento de mi nivel? Pues es muy sencillo, gracias a un Script (función/pieza de código) que se ejecuta pulsado la tecla F1 de nuestro teclado, DarkSpine se encarga de optimizar automáticamente nuestro nivel.

Como observamos en la imagen de abajo, en el modo edición hemos mejorado en casi un 50% la eficiencia de cómo y que debe dibujar nuestra Gpu con la menor cantidad de saltos de textura posibles.

En el modo Test nuestra tarjeta gráfica prescinde de 48 saltos para reproducir todo el contenido. Es una mejora considerable que nos permite crear mundos de gran tamaño con texturas HD.

En nuestro canal de Youtube, pueden visualizar vídeos donde el contenido de nuestros activos es de alta definición.


Recomendaciones:

Os recomendamos encarecidamente que visualicen el vídeo situado en el comienzo de este articulo para tener una idea clara de este apartado.

Los vídeo tutoriales suministrados en el canal de Youtube admiten aportaciones de subtitulo de los usuarios. Esto quiere decir que cualquier usuario puede contribuir para agregar subtitulo con el editor y el nuevo programa de aportaciones de los suscriptores de Youtube.


Iremos hablando de otros métodos para optimizar nuestro nivel en siguientes artículos. Pero de momento no queremos que os preocupéis por construir pensando si estáis haciendo las cosas de manera adecuada.

Con lo explicado en este articulo y nuestro gestor de imágenes, tenéis más que suficiente para comenzar a crear verdaderas obras de arte.

¡Les mandamos un gran saludo y nos vemos en el próximo tutorial!

También te puede interesar:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.