Estoy construyendo un juego de mazmorras RPG en Java y estoy atascado en la creación de una estructura de datos.¿Qué es una buena estructura de datos de Java para almacenar elementos de juegos de rol?
Tengo un montón de objetos Thing con los que puedo copiar para poblar una mazmorra. Por ejemplo, hay un objeto Thing de pan, y un objeto Thing de espada, un objeto Thing de correo de cadena, y Thing (s) de monstruo, etc. Quiero almacenarlos en una Biblioteca central y luego poder recuperar un objeto usando cierta consultas. Quiero almacenarlos usando los siguientes campos:
int minLevel
int maxLevel
double probability
int[] types
Así que una espada oxidada tendría un minLevel
de 1, un maxLevel
de 3, un probability
de rareza (3%), y [type.SWORD,type.WEAPON,type.ITEM,TYPE.EQUIP]
. Una espada mejor tendría minLevel
2, maxLevel
10, rareza (1%).
Luego quiero recuperar un type.SWORD
aleatorio de la biblioteca y decir que estoy en el nivel 3. Debo obtener una espada oxidada con más frecuencia que la mejor espada según sus probabilidades. Si obtuve un type.SWORD
de la biblioteca solicitando el nivel 10, solo obtendría la mejor espada.
Espero que esto tenga sentido.
EDIT En la etapa de inicialización, se crearán todos los objetos básicos. Cosas como las armas disponibles, armaduras, alimentos, pociones, varitas, todas las cosas básicas posibles que tienen un mosaico gráfico único en el juego. Entonces, cuando quiero colocar un objeto en alguna parte, solo hago una copia de una de las Cosas disponibles, ajusto un poco sus estadísticas y la vuelco al mundo. Los elementos reales son todos subclase de la clase raíz Cosa, como la clase Criatura, Artículo, Equipar (se extiende Artículo), Arma (amplía Equipar), Armadura (amplía Equipamiento), Comida (se extiende a Artículo), etc. Pero quiero etiquetar diferentes en la base de datos de la Biblioteca, quiero usar etiquetas adicionales, como type.RARE, type.ARTIFACT, type.CURSED, así que quiero etiquetas adicionales además de la clase.
El juego utiliza LIBGDX para estar disponible en Android y como un applet. Utilizo el conjunto de Rltile gratuito, que tiene miles de buenos mosaicos. Utilizaré Pubnub o Google App Engine para proporcionar compatibilidad con varios jugadores.
ArrayList - http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html – Coffee
¿Su mundo tienen una base de datos de objetos fijos presentes en la creación? ¿O son objetos creados de la nada cuando se los necesita? – sarnold
por lo que cada cosa tiene un conjunto de tipos anidados? es decir, espada, arma, artículo, equipo? –