Bienvenidos sean a este post, hoy veremos uno de los patrones para nuestro juego.
Este patron es un mecanismo arquitectonico que permite suscribirnos a los cambios de estado de un objeto, en realidad «observamos» los cambios del objeto, y este tambien es un patron de diseño de comportamiento.
La mayoria, por no decir todos, de los juegos de estrategia incorporan el concepto de recurso, estos van a ser rocas, madera, etc. Por ejemplo, para poder construir un edificio el jugador debe usar 20 unidades de madera, 40 de piedra y 10 de oro. Con el tiempo, estos recursos se terminaran y deberemos salir a recolectar. Esto hace que debamos crear mas unidades y asignarles la recoleccion de estos recursos. Vamos a aplicarlo en nuestro juego, para ello cuando el jugador asigne unidades para esta tarea necesitaremos una notificacion cada vez que una determinada de recursos es recolectada. Esto convierte al jugador en un suscriptor para el evento «recurso recolectado». Esto mismo se aplica para los edificios, ya que al producir una unidad envia una notificacion a los suscriptores, una unidad termina un edificio y tambien una notificacion, etc. En la gran mayoria de los casos el suscriptor no es otro que el jugador. Otra cosa que debemos hacer es actualizar el panel del jugador para que sepa de cuantos recursos dispone, asi como unidades y edifficios mientras juega.
El observador involucra la implementacion de una clase que almacena a los suscriptores y llama a la funcion especificada en un evento. Este consiste de dos entidades: el publicador y el suscriptor, siendo este ultimo todos los que sean necesarios. Tomemos como ejemplo una unidad es asignada para construir un edificio, lo hara hasta que sea detenido, y esto puede ser por varias razones:
- Se cancela el proceso de construccion del edificio
- La unidad es atacada y debe defenderse por lo tanto se pausa la construccion
- Se termino la construccion del edificio
Al jugador seguramente le gustaria ser notificado cuando el edificio fue completado porque puede tener otros planes para esa unidad. Se puede diseñar el proceso del edificio para asi notificar a los suscriptores cuando se completo el evento. Desarrollarlo de esta manera, nos lleva a que las clases en algun punto casi todas las entidades van a ser publicadores, suscriptores o ambos. Una opcion interesante que disponemos es al patron mediador. Los objetos se comunican uno con el otro atraves de un objeto mediador. Cuando un objeto comienza un evento deja que el mediador sepa sobre esto. El mediador luego pasa el mensaje a cualquier objeto relacionado que esta suscripto al estado del objeto.
Cada objeto contiene un mediador que es usado para notificar los cambios. Este objeto mediado usualmente contiene todos los objetos que se comunican uno con el otro. Ante un evento, cada objeto notifica a la partes interesadas mediante el mediador. Tomemos nuevamente el ejemplo de la construccion del edificio. Cuando este finalizado, envia a traves del mediador todas las notificaciones a las partes suscriptas. Y no olviden, que para recibir estas notificaciones toda las partes deben estar susccriptas de antemano.
En resumen, hoy hemos visto al patron observador, que es, para que sirve, como se compone, y como podriamos aplicarlo para nuestro juego asi como otro patron relacionado con este. Espero les haya resultado de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
