Juego de estrategia por turnos

Strife
12 de Junio del 2008
Hola a todos!

Quería ver si me podríais orientar un poco con un proyecto de juego que me he propuesto en java. Mi nivel es aproximadamente el de un 60% o 70% del necesario para ser un Programador Certificado Java, y creo tener los conocimientos suficientes para mi proyecto; el problema que tengo es que no sé como organizar y gestionar exactamente el programa.

Se trata de un juego de estrategia por turnos de ciencia ficcion implementado en un applet. Un juego de mesa “sencillo” pasado a un applet de java, vamos. Tenemos un tablero-mapa de varias dimensiones (galaxia, sistema, etc), diversas civilizaciones (una por jugador) con sus planetas, unidades, etc. Está pensado para llevar partidas largas, que pretendo guardar con una simple serialización en un fichero.

El mayor problema que encuentro es que no se cómo gestionar exactamente las listas de las unidades, planetas, posiciones, civilizaciones, etc. Casi todas están relaccionadas entre si: la posición de una unidad, por ejemplo, puede coincidir con la de un planeta u otra unidad. Me he planteado que ha de poderse acceder a dicha posición tanto desde la unidad como desde el mapa, al igual que ha de poderse acceder al Jugador a través de su unidad y viceversa… Tengo ArrayList por todos los lados! Y creo que ha de haber métodos mas efectivos xD

También me estoy comiendo la cabeza sobre como representar las 20 o 30 unidades diferentes que tengo pensadas y como identificarlas, si con un simple String o un numero identificativo único o una Clase en si misma de la que hereden las 20 o 30 unidades…

Por otro lado, también ando un poco perdido en la forma en la que debería llevar los turnos de los jugadores. Sus acciones se acumularan en una lista de tareas que se efectuaran al pulsar el botón “Fin del turno”… Y luego cambio el turno del jugador representándolo en una simple variable numérica??

Llevo mucho tiempo investigando, y la única información que he conseguido hasta ahora ha sido que para llevar a cabo mi proyecto no me queda otra que “practicar”; sin embargo estoy seguro de que me podréis ayudar con algún consejo orientativo ;)

Un saludo y muchas gracias a todos!