Se me ha venido una duda, y es que en mi juego "Ant War Simulator", el room es relativamente grande (10240 x 10240). Pues obviamente no ves todo el mapa, ves una parte, como cualquier RTS como Age of Empires. La prwgunta es, tengo que poner una condicion en el evento Dtaw de todos lo objetos para que solo hagan draw_self() si se encuentran dentro de la room?

No puedo desactivarlos ya que al tratarse de un RTS... no se puede

Muchas gracias :)

hmm depende de varios factores, pero digamos que la regla general es que si no ves que sea necesario (que se ponga lento el juego) entonces no hace falta que lo implementes, obviamente hay un limite, si tienes 100 instancias puede que no lo notes, pero si tienes 1000 puede que sea mas notable (o no)

así que primero puedes probar rapidamente colocando el maximo numero de unidades que crees que puedan existir (deberia existir un limite incluso siendo un rts) y mira si se pone lento (en varios pcs si puedes hacerlo)

saludos.

Checa mi canal de Youtube para tutoriales y charlas sobre desarrollo de videojuegos.


hay dos tipos de instancias para esto... las que no tienen interacciones con otras y las que si... por ejemplo... en un nivel dungeon donde tienes tiles (un objeto pared), monedas, enemigos, puertas y botones... está bien desactivar los tiles, los enemigos, las monedas... pero cuando desactivas por ejemplo una puerta por estar fuera de la view, y vas y pulsas el botón que abre esa puerta, entonces, como ese botón interactua con la puerta y la puerta está desactivada, pues simplemente no se abrirá, entonces conviene mantener las puertas activas en todo momento para pode ser interactuadas, me explico??... yo para eso uso el clásico instance_deactivate_region con coordenadas relativas a la view, desactivando todo lo de afuera con el último argumento... y un activate_region para activar lo que esté dentro... ADEMÁS uso el instance_activate_object, para especificamente las instancias, como las puertas esas, pues hago una lista de objetos así de importantes y las vuelvo a activar justo después del deactivate_region...

aquí un ejemplo de lo que hay en mi actual proyecto, en el step del player
[gml]///cleanmem

instance_deactivate_region(view_xview[0],view_yview[0],view_wview[0],view_hview[0],false,true);

instance_activate_object(odrawvida);
instance_activate_object(odrawcoins);
instance_activate_object(ocoinauto);
instance_activate_object(oactivadorboss1);
instance_activate_object(oboss1intro);
instance_activate_object(ofrenarboss1);
instance_activate_object(oboss1);
instance_activate_object(odisparoboss1);
instance_activate_object(ovolumenfinboss);
instance_activate_object(opuertaswitch);
instance_activate_object(owallreboteenemigos);
instance_activate_object(ospiderH);
instance_activate_object(ospiderV);

instance_activate_region(view_xview[0]-64,view_yview[0]-64,view_wview[0]+128,view_hview[0]+128,true);[/gml]
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

Si, el problema es que al tratarse de un RTS no puedo desactivar a los enemigos. No sabia que los tiles podian desactivarse, como se hace?

los tiles literalmente no, por eso puse entre parentesis (objeto pared xdd)
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]