Versão 0.2.0 completa
Foi mais rápido do que eu esperava! Sou péssimo em estimar. Vamos falar sobre as novidades e o que planejei para a próxima versão.
Estimar é algo realmente difícil em um projeto que está no começo. Quando não se tem um histórico grande o suficiente para servir de base, tudo acaba sendo um grande palpite no escuro. Coloquei como regra que uma versão deve ter trabalho suficiente para me ocupar de duas a quatro semanas. Ao planejar o que entraria na versão 0.2.0, eu realmente achei que levaria cerca de 2 semanas para cumprir a meta. A verdade é que, 3 dias depois, eu já estava com tudo pronto. Errei por muito. Mas a estimativa no começo é assim mesmo. Quanto mais o projeto evoluir, mais terei um histórico e mais assertivas as estimativas vão ficar. Vamos então dar uma olhada nos detalhes do que foi feito e depois falar um pouco sobre o que vem por aí na versão 0.3.0.
Versão 0.2.0
Com uma fundação minimamente pronta na versão 0.1.0, chegou o momento de expandir um pouco as funcionalidades e iterar sobre as existentes. Relembrando quais eram os objetivos da versão 0.2.0:
O suporte a múltiplos personagens é algo que, desde o início, faz parte dos meus planos. Poder criar diferentes personagens torna tudo mais divertido. Geralmente, um jogador tem um personagem principal, com o qual joga a maior parte do tempo, mas acaba criando outros para testar diferentes funcionalidades do jogo, como diferentes classes de personagens, etc. Houve uma grande mudança no servidor para que as contas suportem o conceito de personagem (Characters) e, no cliente, foi criada a tela de seleção de personagem logo após o login:
A rotação de personagem é algo muito básico para o jogo. Ser capaz de virar para outro personagem para mostrar que está olhando para ele é algo que considero essencial para a imersão. Além disso, o personagem agora é rotacionado dependendo da direção do movimento. Enquanto o jogador pode movimentar seu personagem utilizando WASD, é possível rotacioná-lo utilizando as setinhas. No teste do servidor desta versão, foi bem legal conversar com o pessoal virado na direção deles:
Na primeira versão, já era possível trocar mensagens pelo chat. O problema é que, se o jogador não conseguisse ler a mensagem a tempo, ela se perderia para sempre. Para resolver isso, coloquei um histórico para o chat público, o que permite que o jogador possa ler as últimas 100 mensagens enviadas:
E, por fim, trabalhei em algumas refatorações internas do servidor porque é sempre bom manter a base de código a mais saudável possível para facilitar as próximas funcionalidades. O Fabrício do futuro agradece! Mais uma vez, um muito obrigado ao Joel, Diguifi e Lu pelos testes durante o servidor teste desta versão.
O que vem por aí na Versão 0.3.0
Ao pensar no que fazer para a próxima versão, o primeiro objetivo é ter uma quantidade de trabalho suficiente para pelo menos duas semanas. Tentei ser mais ousado nas escolhas. A primeira delas foi começar alguns testes para o redimensionamento de telas. Até agora, o tamanho da tela do cliente é fixo, não sendo possível ser redimensionada. Quero permitir que o jogador escolha o tamanho da tela que deseja e que ela se adapte a diferentes tipos de tela. Seguindo em funcionalidades básicas, está na hora de permitir o logout sem precisar fechar o cliente. Isso é essencial para trabalhar junto com a funcionalidade de seleção de personagem. Imagine ter que fechar tudo e abrir novamente só para trocar de personagem!
O sistema de chat vai ganhar novas melhorias. Um atalho para entrar de forma fácil no chat, evitar a possibilidade de enviar mensagens vazias, mostrar as mensagens de inspeção no histórico do chat e permitir gritar ou sussurrar suas mensagens. Basicamente, sussurrar e gritar modifica o alcance das mensagens pelos jogadores ao seu redor.
Na parte do menu, além do botão de logout dentro do jogo, vou adicionar um menu para que o jogador possa consultar os controles do jogo.
Por último, a funcionalidade que considero mais trabalhosa desta versão: o sistema básico de outfit. Nesta primeira versão, quero criar as fundações para a troca de outfit do jogador. A ideia inicial é que, depois de entrar no jogo, o jogador possa clicar no seu personagem e selecionar um visual diferente. No servidor, será importante salvar essa escolha para que o visual do personagem seja persistente. É crucial que a troca de visual também seja enviada para todos os outros jogadores, para que todos vejam o quão legal seu personagem está. O planejamento final ficou assim:
Estou planejando fazer pelo menos um post durante o desenvolvimento dessa versão para falar sobre algum aspecto do jogo. Até lá!