Clientes De Juego

Consideraciones a tener en cuenta por los diseñadores de la parte cliente de los juegos:

El framework para clientes de juego permite desarrollar la parte cliente de los juegos implementando un mínimo de clases, abstrayendose de los detalles de gestion de comunicaciones con el servidor, control de recursos y demas aspectos que quedan totalmente controlados.

Las clases que componen en framework de juegos se encuentran en los ficheros AppletCliente.jar y JuegosComun.jar que deberán ser includios como librerías del proyecto así como en el MANIFEST.MF

Los implementadores de juegos deben incluir en su proyecto cliente al menos las siguientes clases heredadas desde el framework:

  • Una clase descendiente de JuegoAbstracto que contiene la lógica de cliente del juego
  • Un formulario de tipo PanelBase que se encarga de la representación gráfica del juego (lo que ve el usuario mientras juega)
  • Un dialogo de tipo DialogoConfiguracion que permitirá elegir las opciones de creación de partida
  • Una clase que herede de AppletBase que será el punto de entrada a la aplicación cliente

Como otras consideraciones:

  • Las "ventanas" devueltas mediante las funciones damePanelJuego y damePanelConfiguracion deberan tener de tamaño 800x450
  • damePanelJuego no debe terminar hasta que no estén todos los recursos necesarios cargados. Es responsabilidad del implementador de cada juego encargase de ello
  • dameNombreJuegoCorto debe devolver el nombre del juego en formato corto (sin espacios, caracteres extraños…) y coincidirá con el nombre del subdirectorio asignado para el juego
  • Los juegos estarán situados en un subdirectorio del servidor llamado /cliente/juegos/nombrejuegocorto. Todos los recursos usados colgarán de ese directorio o en caso de recursos compartidos (como barajas de cartas) de un subdirectorio de /cliente/juegos. En definitiva:

Para cargar el platano del juego del monen habria un grafico "platano.png" en el subdirectorio /cliente/juegos/monen/imagenes, y la ruta a usar al precargar sería "imagenes/platano.png". Por el contrario si un juego de cartas quiere precargar la sota de bastos debería haber algo como /cliente/recursos/barajas/esp/sotabastos.jpg y la ruta sería "../../recursos/barajas/esp/sotabastos.jpg"

  • Es aconsejable dentro de lo posible usar como formato gráfico el png con transparencia por su mayor calidad
  • Es posible tener recursos almacenados en el propio JAR aunque desaconsejable: limita la compartición y fuerza a que se carguen todos los recursos antes de que se muestre ninguna pantalla al usuario (lo cual le puede hacer pensar en juegos muy grandes que algo "no funciona"
  • La precarga de recursos iniciales es aconsejable empezarla en la constructora de la clase derivada de JuegoAbstracto
  • Si se añade algun componente por codigo en vez de por el diseñador, una llamada a autoUnionEventos(componente) lo añadirá a la lista de componentes que lanzan eventos
  • Para los componentes que se pueden insertar en el editor de Netbeans basta con añadir una llamada a autoUnionEventos() despues del initializecomponents()
  • Para crear un panel de juego en NB, se crea el tipico formulario de tipo JPanel y en el codigo se modifica el extends para que herede PanelBase