Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Tizon en Abril 25, 2016, 08:08:51 PM

Título: Opinión sobre como organizar los eventos del juego.
Publicado por: Tizon en Abril 25, 2016, 08:08:51 PM
Bien, para dar una idea, imaginemos que es un juego de estrategía y que ha de lanzar unos eventos periódicos, imaginemos por ejemplo, cada mes, cobrar los impuestos, pagar las nóminas de funcionarios, incorporación de reclutas a filas, incrementos de población, etc.Tengo hecho un timer y un Objeto que es un director de juego, que se encarga de crear las nuevas entidades según conviene, y meterlos en colecciones para tenerlos controlados y esas cosas. Lo tengo resuelto de tal forma que cuando se cumple un mes en el timer, ataca una función del director del juego la cual se encarga de recorrer uno por uno todos los elementos de las colecciones (forearch) y ejecutar a su vez las funciones de "fin de mes" para que cada uno de los pueblos paguen los impuestos, recluten los reclutas, paguen a los funcionarios, incrementen población, etc... y va bien. Ahora, trato más de aprender que no que las cosas funcionen (Aunque cuando lo hacen es un gusto, jejejejeje...) y aún me faltan muchos conceptos por asimilar, así que mi pregunta para el foro es... Se os ocurre un método mejor de hacerlo? Más eficiente? O podríamos decir que el que empleo es el más óptimo para este propósito?Nuevamente muchas gracias a todos.
Título: Opinión sobre como organizar los eventos del juego.
Publicado por: Braltor en Abril 25, 2016, 08:19:05 PM
necesitas una agenda... guardas la fecha y hora cuando va a ocurrir un evento y la accion a ejecutar... por ejemplo presiono el boton de lanzar cohete, el juego guarda en la agenda q en una semana, 3 horas y 5 minutos va a llegar a su destino... cuando se ejecuta el juego mira todos los eventos que han sucedido hasta la fecha y ejecuta sus acciones en orden, como hacer explotar el planeta donde llego el cohete. puedes usar una lista o una base de datos puede ser mas eficiente
Título: Opinión sobre como organizar los eventos del juego.
Publicado por: iRobb en Abril 26, 2016, 03:18:14 AM
También supongo que tendrás que definir dependencias en los eventos. Es decir, no puedes pagar a los funcionarios sino has cobrado los impuestos.O sea, aparte de la fecha, un orden dentro de las acciones.
Título: Opinión sobre como organizar los eventos del juego.
Publicado por: Tizon en Abril 26, 2016, 05:19:40 PM
Cita de: iRobb date=1461633494" data-ipsquote="" data-cite="iRobbTambién supongo que tendrás que definir dependencias en los eventos. Es decir, no puedes pagar a los funcionarios sino has cobrado los impuestos.O sea, aparte de la fecha, un orden dentro de las acciones.
Muchas gracias. Evidentemente si, hay que establecer un orden.Lo siento, ahora viéndolo veo que el título del hilo ya sugiere la respuesta y desvía la cuestión que quería preguntar.Esto viene a ser, teniendo controlado el momento en que se ha de "disparar" las acciones, teniendo en cuenta que afectan a varios tipos de clases diferentes y que tienes todos los elementos controlados por listas, que creéis que es más eficiente, un buce ForEach en las listas que invoque a todas las funciones de los objetos para que chequeen, eventos tal cual, o bien algún otro tipo de implementación.Disculpas a todos por mi poca claridad al formular la pregunta y muchas gracias. 
Título: Opinión sobre como organizar los eventos del juego.
Publicado por: iRobb en Abril 26, 2016, 05:41:38 PM
Vale. Tienes la implementación que comentas, que no deja de ser una cola de mensajes o la versión push, por definirla de alguna manera, que sería que cuando una clase necesita realizar algo (entiendo que no siempre) lanza un evento al proceso central. Si todas clases siempre deben realizar un evento periódicamente, la primera es la más lógica. Si esto se comporta como un gestor de estados finitos iría por la segunda.
Título: Opinión sobre como organizar los eventos del juego.
Publicado por: pioj en Abril 26, 2016, 07:51:45 PM
Estaría genial encontrar alguna forma estándar de devolver un mensaje/notificación a algún Gameobject , conforme el evento acaba de ocurrir. Lo comento porque yo tengo mi propio sistema de timers y lo más difícil es encontrar la forma 'más eficiente' de devolver la activación de un evento sin que impacte demasiado.
Título: Opinión sobre como organizar los eventos del juego.
Publicado por: iRobb en Abril 27, 2016, 02:54:14 AM
Es un tema muy interesante y práctico, porqué al inicio de la curva de aprendizaje crees que no lo vas a necesitar, y al final acabas con un montón de componentes dispersos sin orden.El mío lo he hecho en base a un bucle que consulta un hash (es muy sencillo de crear). El componente define el hash, que es lo que le identifica en caso de cambio. No utilizo timers y el 90% de mi código son coroutines, desde el inicio.
Título: Opinión sobre como organizar los eventos del juego.
Publicado por: Tizon en Abril 30, 2016, 08:44:20 PM
[quote author=iRobb" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35733" data-ipsquote-contentcommentid="130253 date=1461718454]Es un tema muy interesante y práctico, porqué al inicio de la curva de aprendizaje crees que no lo vas a necesitar, y al final acabas con un montón de componentes dispersos sin orden.El mío lo he hecho en base a un bucle que consulta un hash (es muy sencillo de crear). El componente define el hash, que es lo que le identifica en caso de cambio. No utilizo timers y el 90% de mi código son coroutines, desde el inicio.[/quote]Suena interesante. Podrías dar más detalles así a nivel de concepto? Qué diferencia habría con la suscripción a un evento? Perdón si es pregunta de novato, eh? pero es que muchos de estos conceptos aún son nuevos para mí.