Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: bygdle en Agosto 28, 2017, 01:57:20 AM

Título: ¿Daños en texturas al redimensionar application_surface?
Publicado por: bygdle en Agosto 28, 2017, 01:57:20 AM
Hola, buenas.
A ver, les cuento la historia.

Resulta que todo mi juego lo he venido haciendo para resolución de 1920x1080; las salas, vistas, imágenes, todo está hecho para esta resolución.

Ahora bien, mi pc es 1600x900 y ni siquiera tiene tarjeta gráfica dedicada (vamos, es una mierda), por lo que el juego suele andar un poco lageado. No presté atención a eso hasta que compilé y probé para mi táblet Android, que es peor aún (800x450, creo). El juego iba pero lagueadísimo, injugable.

Gracias a esto, se me ocurrió la idea de redimensionar automáticamente la application_surface y permitir al jugador escojer la calidad (un múltiplo entre 0.5 y 1, ya lo explico), todo basándose en la resolución real (display_get_width() y la otra) del dispositivo.

Esto es lo que programé:
[gml]
var quality = ini_read_real("settings", "quality", 1);

var width  = display_get_width ();
var height = display_get_height();

width  = min(width, view_wview[0]) * quality;
width  = floor(width/16) * 16;
height = floor(width*9/16);

surface_resize(application_surface, width, height);
[/gml]
Ya ven, quality la lee desde un archivo ini, que el usuario en su menú de opciones establece de 0.5 a 1 con un deslizador.

En general funciona bien: Con calidad 1, la surface se redimensiona al tamaño original del dispositivo (manteniendo la relación 16:9), y con calidad 0.5 se redimensiona a la mitad. Con esto, a menor calidad, más velocidad y fluidez tiene el juego; diría que fue un éxito, peeero...

El problema es que algunas texturas se pintan con bordes, como si la textura se agarrara a medias y se repitiera un pedacito. Este error varía dependiendo de la calidad que se escoja, y con algunos valores no sucede, pero en mi pc (1600x900) se nota mucho con la calidad inicial (1), como se ve a continuación:
(https://image.prntscr.com/image/cj-M9rxGT8i7aLfFJmX9zQ.png)
(En esta imagen se ve una línea blanca en el agua)

Con algunas otras calidades, como 0.89, el error se nota hasta en los barcos, como esta imagen:
(https://image.prntscr.com/image/Rkq_QeNJS2_wOiEfiuZfvQ.png)
(Ésta la tomé desde la táblet, se ve una línea café sobre el barco)

La verdad no tengo ni la más mínima idea de lo que pueda suceder, o de qué esté haciendo mal.

Agradecería su ayuda.
¡Saludos!  :D
Título: Re:¿Daños en texturas al redimensionar application_surface?
Publicado por: desplo en Agosto 28, 2017, 02:35:30 AM
A mi me ha pasado ese problema con las imágenes con mayor resolución a la de texture pages.
Intenta ir a Global game settings, en android, graphics y en texture pages coloca 2048x2048 (ya que tu juego esta basando en una resolucion 1920x1080).

También prueba ir a global game settings en texture groups, a los grupos de las texturas habilita la opción "texture group NOT scaled"
Título: Re:¿Daños en texturas al redimensionar application_surface?
Publicado por: Clamud en Agosto 28, 2017, 05:25:49 PM
Si un background no está hecho para repetirse continuamente, desmarca las opciones Tile: Horizontal y Tile: Vertical.