Hola,
Soy novato en esto del GM y estoy desarrollando un juego de plataformas (como no) con diferentes tipos de enemigos.
Como cada tipo de enemigo es un objeto diferente, tengo que crear un evento de colisión para cada uno.

Me preocupa la optimización del juego pues pienso hacer muchas fases, así que me gustaría dejar las cosas depuradas desde un principio.

¿Sería recomendable poner TODOS los eventos de colisión en el objeto JUGADOR ó no ponerle ninguno y ponerlos uno a uno en cada uno de los enemigos?

Hay que tener en cuenta que en cada fase podría tener varias (2 o 3) instancias de un mismo enemigo, además de varios enemigos diferentes.

Por otro lado, al superar cada una de las fases:
¿Convendría ejecutar algún código de limpieza de memoria o algo parecido para no ir acumulando basura a lo largo del juego?
¿Cómo se haría ésto?


Saludos y gracias por vuestra ayuda de antemano.

Te refieres a colisión con el jugador o con el suelo?

Si es con el jugador,si,puedes ponerlo todo tranquilamente en objeto del jugador.

Si te refieres a colisión con el suelo o plataforma,no,debes ponerselo a cada enemigo.

y por otra parte:

No hace falta para nada añadir ningún codigo de limpieza,ya que cuando creas el ejecutable del juego,todos los archivos se comprimen dentro del ejecutable.Es decir,esta todo cargado desde el principio y no te creas que ocupa mucho...

Salu2

#2 Marzo 19, 2014, 10:28:09 AM Ultima modificación: Marzo 19, 2014, 10:29:53 AM por penumbra
Cita de: xXchopliXx en Marzo 19, 2014, 10:24:32 AM
Te refieres a colisión con el jugador o con el suelo?
Se refiere a colisiones con enemigos, lo dice claramente.

Cita de: xXchopliXx en Marzo 19, 2014, 10:24:32 AM
No hace falta para nada añadir ningún codigo de limpieza,ya que cuando creas el ejecutable del juego,todos los archivos se comprimen dentro del ejecutable.Es decir,esta todo cargado desde el principio y no te creas que ocupa mucho...

Pero no está preopcupado por el espacio en disco, sino más bien por el uso de RAM.


Cita de: roolandoo en Marzo 19, 2014, 10:00:48 AM
¿Sería recomendable poner TODOS los eventos de colisión en el objeto JUGADOR ó no ponerle ninguno y ponerlos uno a uno en cada uno de los enemigos?

No estoy seguro de dónde, me parece recordar que se recomienda poner los eventos de colisión en el objeto del cual haya menos instancias en la habitación, esto sería el jugador, pero yo no lo haría así. Poner todas las colisiones en un solo objeto se me hace muy desordenado/confuso, personalmente optaría por poner cada colisión con el jugador en el objeto enemigo. Si acaso hubiera diferencia en el desempeño, creo que sería algo que el usuario no notaría a la hora de jugar.

Cita de: roolandoo en Marzo 19, 2014, 10:00:48 AM
Hay que tener en cuenta que en cada fase podría tener varias (2 o 3) instancias de un mismo enemigo, además de varios enemigos diferentes.

Es muy relativo el número de enemigos y el tipo. El desempeño depende mucho de cuánto código en STEP lleve cada enemigo y qué tan optimizado esté ese código, pero 10, 20 o 30 enemigos por habitación no creo que causen problemas.

Cita de: roolandoo en Marzo 19, 2014, 10:00:48 AM
¿Convendría ejecutar algún código de limpieza de memoria o algo parecido para no ir acumulando basura a lo largo del juego?
¿Cómo se haría ésto?


A lo mejor te interesa la dll "cleanmem" que libera el exceso de memoria del juego. he leído buenas referencias de ella aunque no la he usado aun.
http://gmc.yoyogames.com/index.php?showtopic=438215

Según entiendo, al cambiar de habitación, las instancias no persistentes se destruyen automaticamente, aunq ue de todas maneras he visto que muchos makeros aconsejan destruír instancias en el evento [ROOM END].

Sobre las colisiones, quizás lo mejor es hacer un objeto padre y hacer que todos los enemigos sean sus hijos, de esta manera sólo necesitarías un evento de colisión para manejar cualquier colisión con cualquier enemigo.

Cita de: roolandoo en Marzo 19, 2014, 10:00:48 AMComo cada tipo de enemigo es un objeto diferente, tengo que crear un evento de colisión para cada uno.

Como verás dice:
Cita de: roolandoo en Marzo 19, 2014, 10:00:48 AMtengo que crear un evento de colisión para cada uno.

No dice de que... yo no lo veo tan claro...

Vengo a ayudar al chaval como puedo y vienes a corregirme...

...odio que me corrijan de manera absurda...

Bastaba con decir "Tienes que hacerlo asi y asi",pero no... tienes que pisar,para dejar huella...

Muchas gracias a los dos por vuestras respuestas.

Efectivamente, me refería a la colisión con los enemigos y a la gestión de la RAM, no del disco.

Mis disculpas si no se ha entendido bien.

Saludos.

Estoy de acuerdo con xXchopliXx
Citar...odio que me corrijan de manera absurda...

Bastaba con decir "Tienes que hacerlo asi y asi",pero no... tienes que pisar,para dejar huella...

he visto en varias preguntas que este amigo penun... hace comentarios muy sarcásticos o ofensivos para los usuarios!!! creo que con un simple "es asi" basta!!! no TENES xq estar corrigiendo a nadie!!!

Esto es una comunidad para ayudarnos todos a todos no para andar discutiendo!!!

PURA VIDA



Cita de: roolandoo en Marzo 19, 2014, 03:17:55 PMMis disculpas si no se ha entendido bien.

No hay por que disculparse,un fallo lo tiene cualquiera,ademas como tu mismo has dicho estas empezando en esto asi que es comprensible.

Cita de: ocarina en Marzo 19, 2014, 04:34:59 PMEsto es una comunidad para ayudarnos todos a todos no para andar discutiendo!!!

Estoy totalmente de acuerdo contigo,pero alguien le tenia que decir algo...

Cita de: ocarina en Marzo 19, 2014, 04:34:59 PM
he visto en varias preguntas que este amigo penun... hace comentarios muy sarcásticos o ofensivos para los usuarios!!! creo que con un simple "es asi" basta!!! no TENES xq estar corrigiendo a nadie!!!

Esto es una comunidad para ayudarnos todos a todos no para andar discutiendo!!!

Sarcásticos puede ser, pero ofensivos, nunca. Si algún comentario mío ha sido ofensivo para contigo o cualquier otro usuario, no dudes en reportarlo a los moderadores.

No sé por qué el rechazo a la palabra discutir. Por la naturaleza del foro, no es de extrañarse que pueda haber discusiones. Las he visto antes en el foro, en los foros de YoYo y en muchos otros foros. Una cosa es discutir por discutir, y si lo he hecho en este foro habrán sido un par de veces, pero siempre dando argumentos y nunca faltando al respeto.

De lo que recuerdo del reglamento, puede haber discusiones siempre y cuando se mantengan dentro del respeto y las reglas del foro. No pretendo ser monedita de oro para caerle bien a todo mundo, pero mi ánimo no fue exponer al makero xXchopliXx, simplemente aclaré que el post se refería a otro asunto, pero si le falté en algo, mis disculpas sinceras para el makero xXchopliXx.

Cita de: penumbra en Marzo 19, 2014, 08:53:20 PMNo pretendo ser monedita de oro para caerle bien a todo mundo, pero mi ánimo no fue exponer al makero xXchopliXx, simplemente aclaré que el post se refería a otro asunto, pero si le falté en algo, mis disculpas sinceras para el makero xXchopliXx.

Se ve que tienes cabeza y no eres el típico niño de 5 años con ganas de fastidiar.

Por mi,borrón y cuenta nueva...

Cita de: xXchopliXx en Marzo 19, 2014, 09:05:40 PM
Cita de: penumbra en Marzo 19, 2014, 08:53:20 PMNo pretendo ser monedita de oro para caerle bien a todo mundo, pero mi ánimo no fue exponer al makero xXchopliXx, simplemente aclaré que el post se refería a otro asunto, pero si le falté en algo, mis disculpas sinceras para el makero xXchopliXx.

Se ve que tienes cabeza y no eres el típico niño de 5 años con ganas de fastidiar.

Por mi,borrón y cuenta nueva...

Gracias man,  no vuelve a pasar. Que no estoy acá por el afán de pelarme con nadie