Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: valsek en Julio 29, 2013, 05:35:32 AM

Título: Problema de bajo FPS en cuarto con muchos objetos
Publicado por: valsek en Julio 29, 2013, 05:35:32 AM
Hola, pues verán, últimamente he estado desarrollando un videojuego al estilo Terraria (no un clon), lo cual conlleva necesariamente un generador aleatorio de mapas (eso ya lo tengo resuelto  :D ), un sistema de iluminación (lo tengo aún en perfeccionamiento  :-[ ), y un verdaderamente gigantesco mapa (el problema   ??? ).

Este gigantesco mapa es el que me ha estado provocando problemas, cuando es grande o mediano corre muy bien, pero "gigantesco" le da un FPS menor o igual a 10. Buscando en internet he encontrado una solución que considero temporal, consiste en desactivar todos los objetos que no estén en la visión del jugador, y me ha funcionado muy bien, pero, cuando haya agregado mas características al juego creo que me traerá muchos problemas.

¿Conocen alguna solución distinta?
Título: Re:Problema de bajo FPS en cuarto con muchos objetos
Publicado por: romon_28 en Julio 31, 2013, 04:15:13 PM
Sin duda desactivar las instancias es la mejor opcion.
Que clase de problemas cree que te traeria est alternativa?
Título: Re:Problema de bajo FPS en cuarto con muchos objetos
Publicado por: valsek en Julio 31, 2013, 07:33:50 PM
bueno, creo que tienes razón, lo que me preocupa es que, cuando ya tenga lista la física del agua y el jugador quiera drenar agua por ejemplo, solo podrá hacerlo mientras este al lado del agua, no va a poder irse y después regresar con el agua ya drenada.
Además, después pienso agregar multijugador, aún no se como funciona, pero pienso que sucederá algo como que los jugadores afuera de tu visión estarán desactivados y ocurrirán varias descoordinaciones entre los movimientos de los jugadores (ambas son suposiciones mías no estoy seguro que suceda así).

Gracias por responder, y perdona por no ser muy específico en esos "muchos problemas" que mencione.
Título: Re:Problema de bajo FPS en cuarto con muchos objetos
Publicado por: ReyHuno en Agosto 01, 2013, 05:34:58 PM
Podrías hacerlo de otra forma aunque en la esencia es lo mismo, puedes hacerlo cómo esta en el minecraft por ejemplo, que a partir de una cierta distancia, los desactiva, tu podrías poner que si la distancia es mayor de tanto los desactive, así, aunque no funcione siempre lo de extracción, siempre y cuando no te alejes demasiado si funcionará
Título: Re:Problema de bajo FPS en cuarto con muchos objetos
Publicado por: darius en Agosto 01, 2013, 06:07:39 PM
sin duda la desactivación es la mejor opción, no lo dudes. podrías darle más margen al agua, de forma que la agua solo se desactivase si estás realmente lejos, o poner una variable que controle el agua, aunque esto ya es más complicado...
en este tipo de juegos con muchas instancias debes de procurar que los objetos tengan poco código en el evento step, que es lo que realmente afecta al rendimiento  :-[

espero que te haya ayudado  ;)
salu2
Título: Re:Problema de bajo FPS en cuarto con muchos objetos
Publicado por: valsek en Agosto 01, 2013, 07:30:25 PM
Gracia Reyhuno y Darius por responder.

Ya había pensado algo parecido a lo que propones Darius, y ciertamente será algo complicado, quizá lo intente pero si no funciona, pienso activar todos los bloques que estén cerca del agua.
Reyhuno tu alternativa parece no muy prometedora, lo malo es que el programa calculará en cada step la distancia entre cada bloque y el jugador.
En el tema de multijugador, ¿alguien sabe si realmente vaya a afectar este script "Anti-lag"  las funcionalidades en línea?.
Título: Re:Problema de bajo FPS en cuarto con muchos objetos
Publicado por: Daz en Agosto 02, 2013, 12:07:16 AM
No tienes porqué desactivar todos los objetos, tan solo desactiva aquellos que realmente no te hagan falta fuera de la vista del jugador.

En el tema multijugador, no debe afectar, cada uno juega en su pantalla. Si los dos estamos jugando online, por ejemplo, los objetos que se están desactivando en mi sesión no se van a desactivar en los tuyos. No TODO lo que ocurre en el juego es online.