Brincando de programar em uma nova ferramenta: Unity

Os mais chegados sabem o quanto foi traumatizante utilizar a Unity durante a pós. Não sei se foi porque estava fazendo outras matérias que também eram pesadas ou se realmente meu cérebro não estava pronto pra trocar da maneira de ver o mundo 2D para o 3D. Eu apenas sei que a bendita da Unity me dava arrepios quando tive o primeiro contato e me arrepiava até dezembro do ano passado. Acho que caiu a ficha de como ela funciona agora ou pelo menos estou menos assustada e resolvi dar uma chance pra ela. O interessante que não importava o quanto visse tutorial, documentação, stackoverflow, nada resolvia e agora está fluindo, vai entender...

Como mencionei em aqui estou brincando com mecânicas similares ao do jogo Majesty 2. Para quem não jogou Majesty 2 ele se classifica como um simulador de reino fantástico, mas eu diria que ele tende mais para um RTS do que para um simulador. Atualmente está implementado o sistema de missões com 3 tipos de missões disponíveis: exploração, ataque e defesa. Para a gerência dessas missões foi implementado um MissionManager que é responsável por gerenciar todas as missões criadas, avisar os "heróis" quando existe uma missão nova, dar novas missões para quem pedir, essas coisas...

As primeiras missões implementadas foram as missões de exploração. Foi bem simples implementa-las já que a Unity disponibiliza o NavMesh. De alguma forma esse recurso não me cheira bem, queria poder brincar mais com os pesos utilizados para definir a rota de um agente. Provavelmente vou ter que revisar tudo que utiliza o NavMesh mais para frente e substituir por outra coisa que me dê mais liberdade.

Em seguida criei um inimigo e criei missões de ataque. Ai começaram os problemas, não na lógica da missão em si, mas com a colisão. O sistema de colisão da Unity é algo que não estou acostumada, tinha hora que acionava o que eu queria, tinha hora que não... Isso com certeza vai ser algo que vou voltar mais pra frente. Por esse motivo e porque quero implementar diferentes armas dependendo da classe do herói.

Um agente que faz uma missão de ataque e em seguida faz várias missões de exploração
 As missões de defesa acabaram de ser implementadas e tem o comportamento mais complexo se comparado com o comportamento nas outras missões. O comportamento de um agente que está fazendo uma missão de defesa, mas muito complexo que acabasse precisando de muitas linhas de código. Basicamente são escolhidos pontos para que o agente patrulhe ao redor do que está sendo defendido, caso um inimigo seja visto, ele é atacado.

Um agente defendendo uma construção de um inimigo e em seguida patrulhando
O que fazer agora? Acho que vou voltar ao Blender e tentar gerar alguns modelos e animações para deixar esse projeto com uma cara melhor. Durante esse meio tempo pretendo estudar um pouco sobre a implementação de sistemas de economia em jogos. Sim, economia. Não sei qual será a longo prazo a classificação deste jogo, mas pretendo implementar um sistema diferente do implementado em Majesty 2. Em Majesty 2 o jogador cria guildas de heróis e nestas guildas ele pode controlar a criação dos heróis. Neste projeto pretendo fazer que os heróis sejam atraídos ou não para a cidade do jogador. Por isso do estudo de economia, lugares mais interessantes para magos atraem mais magos. Ainda está muito no plano das ideias e portanto não sei muito bem no que vai dar. Essa minha fase de experimentação e estudo eu acho que não vai acabar nunca. Já construi também algumas equações pra determinar o interesse de um determinado agente em aceitar ou não uma determinada missão. Nada muito complexo, mas as equações são robustas e aceitam alterações sutis. Porém para implementa-las eu também preciso dar uma estudada em economia. Acredito que nos próximos dias não haverá muitas coisas novas sendo apresentadas aqui neste blog, tenho muito que estudar/testar até descobrir coisas novas.

Compartilhar no Google Plus

Autor: Pâmela de Assis Beltrani

É Bacharel em Ciência da Computação pela PUCPR e Mestre pela UFPR. Também é especialista em Desenvolvimento de Jogos Digitais pela PUCPR.
    Blogger Comment
    Facebook Comment

0 comentários:

Postar um comentário