sábado, julho 28

O status do jogo... e o futuro

Caros leitores,


Esse será um post que foge um pouco ao usual "Pessoa fez isso, outro fez aquilo, mais um fez outra coisa e o último está de férias". Neste post apresentarei como está o jogo atualmente, adicionarei uma tradução do Changelog (mudanças feitas) que contem detalhadamente tudo o que foi feito no jogo e no servidor, desde o início do desenvolvimento (sim, será um longo post), e falarei sobre o que o futuro nos espera.
No presente, o nosso jogo não tem muitas características esperadas de um jogo. Você pode andar pelos mapas criados, e é basicamente isso que pode ser feito. Grande parte do trabalho feito até agora foi fora do jogo em si, nos menus. Agora, tudo o que não é o jogo em si foi finalizado, então o foco será na parte do jogo em si, ou seja, adição de inimigos, dano, itens, baús, missões, e assim por diante.
Mas, o que eu quero dizer por "o que não é o jogo em si", e por que tanta demora para essa parte ficar pronta?
As telas. A tela principal, a tela de opções gerais, a tela de mudança de controles, a tela de seleção de personagens, a tela de criação de personagens, a tela de login para o multiplayer, a tela de criação de contas para o multiplayer, a tela de seleção de salas para o multiplayer e a tela de criação de salas para o multiplayer, além das versões multiplayer das telas de criação e seleção de personagem. Fazer tudo isso funcionar não foi uma tarefa fácil, especialmente as partes que envolvem o servidor (multiplayer).
A primeira grande dificuldade é que não é agradável utilizar componentes Swing, como JTextBox, JLabel, JOptionPane, e seus companheiros. Para utilizá-los, teríamos de deixar as telas serem repintadas de forma normal, teríamos de fazer um mosaico de painéis, e, o maior problema, ficaríamos dependentes de um look and feel para as aparências. Os componentes Swing não combinam com um jogo. Portanto, tudo foi feito "na mão". Os componentes foram desenhados com Graphics2D, alinhados e dimensionados com uma míriade de cálculos matemáticos, e sua lógica de funcionamento foi feita do zero. Dessa forma, pudemos fazer tudo do jeito que queríamos, e de forma que a aparência ficasse agradável, e condizente com o tema do jogo, além de não perder funcionalidade em geral. Mas fazer tudo isso para tantas telas demanda tempo, especialmente quando várias telas tem algo diferente das outras, um componente novo, fazendo com que reaproveitamento seja difícil. 
A outra dificuldade é a comunicação entre cliente e servidor. Fazê-los conversar harmoniosamente com vários pacotes sendo enviados de um lado para o outro é complexo no início, até que se aprenda melhor como fazer a comunicação. Um problema enfrentado foi o de múltiplas tentativas de acesso às mesmas instâncias de objetos, devido às várias Threads utilizadas, causando erros de modificações concorrentes. Atualmente as soluções encontradas vêm funcionando, portanto este obstáculo em específico foi vencido.
Essas duas dificuldades foram as principais responsáveis pela demora na finalização dessa parte do jogo. De agora em diante, o desenvolvimento será voltado ao jogo em si, começando pela persistência de dados de jogadores, e adaptação do que já existe para o multiplayer, o que havia sido prometido para o mês de Junho, mas foi adiado até que todas as telas estivessem funcionando plenamente. 
Acreditamos que é possível que não tenhamos tempo para finalizar tudo o que foi prometido. O foco será nas funcionalidades do jogo, mas é provável que as "cinematics" feitas dentro do jogo sejam cortadas, e o modo história seja encurtado. Para compensar, cogitamos adicionar um modo de jogo infinito, em que o jogador começaria no nível 1 e lutaria por sua sobrevivência pelo máximo tempo que conseguisse, competindo contra outros jogadores para ver quem teria mais pontos, calculados de acordo com nível alcançado, qualidade de equipamentos e tempo de sobrevivência.
Bom, por enquanto é isso para este post de status. Anexarei traduções dos changelogs do jogo e do servidor, e amanhã teremos o usual post de atualização semanal.


Atenciosamente,
Grupo PE

Changelog do jogo
Changelog do servidor

Nenhum comentário:

Postar um comentário