Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: matiascarpello en Febrero 13, 2015, 09:40:31 PM

Título: Consulta sobre rooms persistentes
Publicado por: matiascarpello en Febrero 13, 2015, 09:40:31 PM
Hola comunidad. Antes de proseguir con mi juego, quisiera sacarme una duda en cuanto a las rooms persistentes y el rendimiento del juego.

Como 30 fps me parece ya en estos días muy lento, he decidido que mi juego tenga 60 fps y la verdad me encanta, se nota todo más fluido.

La resolución de mi juego es 1280x720. Que sería ya HD 720p.

Ya aclarado las características técnicas de mi juego voy a la pregunta.

¿Si en todas mis rooms establezco en persistente podré tener problemas de rendimiento? La razón de establecer mis rooms en persistente es porque quiero que por ejemplo, si mi personaje entra por la puerta "A" valla a la room2. Y en la room 2 al entrar a la puerta "B", valla a la room1, y se guarde la posición de mi personaje al lado de la puerta "A".

Ese es uno de los motivos. El otro motivo es que quiero que las variables que se establecen en la room, al ser persistente se queden guardadas. Es verdad que puedo guardar las variables en archivos INI, pero no quiero hacer eso porque cualquiera edita el archivo INI con un block de notas y puede hacer hacks, trucos o como lo llamen y alterar la experiencia de juego. Simplemente mi juego se guarda con un save y load. Así de simple.

Y mi última duda en cuanto a las rooms persistentes. Quisiera saber si al ser una room persistente, comprueba todas las instancias de todos los objetos que hay en ellas sin importar en que room me encuentre. Porque si es así, ahí si creo que podría tener problemas en el rendimiento, porque tengo varios objetos con eventos steep y por ahí supongo que se podría ralentizar un poco.
Título: Re:Consulta sobre rooms persistentes
Publicado por: Clamud en Febrero 14, 2015, 06:17:42 AM
Se va a usar mayor cantidad de memoria (RAM), el uso del procesador no va a aumentar. Cuando se sale de una room persistente las instancias que están ahí no ejecutan ningún evento, sólo se conservan sus variables en la memoria.

Los problemas pueden ocurrir si se visitan muchas rooms persistentes, que van agregando variables a la memoria, y si hay muchas instancias en las rooms. Como el juego será en HD, ya es un requisito que el dispositivo tenga una cantidad considerable de memoria, tal vez las variables guardadas no sobrepasen la cantidad de memoria requerida para los gráficos, pero conviene meditar si las rooms persistentes son el mejor método, toma en cuenta que cada instancia en la room tiene unas 100 variables aproximadamente (son las variables predefinidas de GMS), aunque el objeto esté inmóvil y no tenga eventos cuenta con esas variables, multiplícalas por la cantidad de instancias en la room, suma las variables que vas a definir y suma las variables de todas las instancias de las otras rooms persistentes, tal vez sea mejor implementar un método que guarde sólo las variables que necesitas.