Série da semana: Primeiros passos no React

Veja mais

Criação de objetos aleatoriamente e métodos de save/load.

02/01/2016

1

Boa tarde e feliz ano novo a todos. Antes de mais nada gostaria de me desculpar caso isso seja uma duvida já resolvida, mas não consegui encontrar nada relacionado.

Bem, sou relativamente iniciante em programação Java e estou desenvolvendo um pequeno game de RPG como meu primeiro projeto. Estou com dois problemas:

1. Como em jogos clássicos de RPG os monstros aparecem aleatoriamente. Eu criei uma classe Monstro com todos os atributos necessários. Quero criar uma lista, tipo uma database, com os nomes e demais atributos de cada monstro. Porém, para uma melhor desempenho, pretendo instanciar um único objeto da classe Monstro e sempre substitui-lo pelo atual monstro que o player esteja enfrentando que terá suas informações obtidas naquela lista/database. Além disto, o monstro será sorteado aleatoriamente. No geral quero instanciar aleatoriamente um objeto pré-definido de uma classe qualquer.
Até agora não consegui pensar em um método eficiente para tal. Mas já cogitei:
Fazer a classe Monstro ser abstract e cada monstro ser uma classe filha da classe Monstro. Isso geraria inúmeras classes e também parei no problema da aleatoriedade de criação do objeto.
Listas os monstros em uma JavaDB e utiliza-lá, porém não sei até que ponto eu teria ferramentas para fazer o que eu pretendo pois não sei muito sobre JDB e pretendo aprofundar meus estudos sobre, caso essa seja uma boa opção.


2. Ao final da criação do jogo eu precisarei implementar um método de save e de load. Já imagino quais dados devo salvar, porém meu problema seria como fazer.
Eu cogitei a ideia de escrever os dados necessários em uma arquivo txt e depois resgata-los no load. Mas penso nisso como um método pouco seguro e suscetível a falhas.

Gostaria de saber a opinião dos senhores que já programam a mais tempo. Quais caminhos eu poderia seguir? Existem alguma outra ferramenta que eu poderia me aprofundar para tal?
Obrigado pela atenção.
Responder