O começo do meu próximo jogo

A ideia para este jogo está na minha cabeça faz algum tempo e esse mês resolvi começar o desenvolvimento dele. Ainda sem um nome definido, é inspirado em jogos como Kingdom e Age of Empires. A ideia inicial é que o jogo seja um tower defense em que o jogador terá que coletar recursos para construir suas defesas e resistir a ondas de inimigos cada vez maiores e mais fortes.

Diferente dos outros jogos que desenvolvi ou planejo desenvolver esse ano. Este é um projeto maior e que irá levar mais tempo para ser concluído. E apesar de ter uma estimativa de quando quero lançar ele, irei levar o tempo que julgar necessário para criar o melhor game que posso. Na prática isso significa que esse blog e o jogo serão meus principais projetos pelos próximos meses.

Assim como eu fiz com The Adventures of the Lone Bounty Hunter, irei compartilhar aqui o processo de desenvolvimento do jogo. Neste primeiro post irei falar como montei o projeto inicial e desenvolvi o primeiro protótipo do jogo durante esse mês.

Caso veja algum assunto que gostaria que eu entrasse em mais detalhes ou fizesse um tutorial, neste ou em qualquer outro post do blog, sinta-se à vontade para entrar em contato comigo através de comentários, e-mail ou redes sociais. Todo feedback será super bem-vindo.

Planejando o primeiro protótipo

A primeira coisa que fiz ao começar o projeto foi pesquisar por jogos similares e “estudar” os que me chamaram mais minha atenção. Essa pesquisa inicial é importante, especialmente por ser um gênero que não sou muito familiar. Também é uma ótima oportunidade para se inspirar no trabalho de outras pessoas e ter uma ideia do que funciona e do que não funciona.

Durante a pesquisa também escrevi um Documento de Design de Jogo ou Game Design Document (GDD) bem simples. Este documento descreve do que o jogo se trata, como os controles funcionam e como o será gameplay. O GDD é um documento vivo, isto é, ele irá mudar conforme o projeto avance e novas ideias surjam. Porém, mesmo em seu estado inicial, já me ajudou a planejar as tarefas para o primeiro protótipo do jogo.

Com a ideia mais clara do que gostaria que o jogador pudesse fazer durante o jogo e com tarefas definidas, coloquei a mão na massa e comecei a desenvolver o jogo com a meta de ter o primeiro protótipo jogável ainda esse mês.

Quadro no Trello no momento em que estava escrevendo este diário de desenvolvimento.

Desenvolvendo o protótipo

Primeiramente, acho importante deixar bem claro que o projeto está em seu estágio inicial e sua função no momento é criar e testar ideias, por isso não dediquei nenhum tempo para criar a arte, nem sequer decidi qual será o estilo visual do jogo. Todas as imagens que você verá foram criadas usando objetos primitivos que a própria engine oferece. Por favor, perdoe a falta de qualidade na apresentação, no futuro terei algo mais bonito para mostrar.

Com as tarefas definidas, a primeira coisa que fiz após criar o projeto na Unity foi criar o mapa em que o jogador terá uma faixa onde poderá construir suas forças econômica e militar. No momento esse espaço é bem limitado, mas será aumentado conforme o projeto avance. Também criei a movimentação da câmera. Como a ideia é que os inimigos apareçam na esquerda e na direita do mapa, a câmera só se move nessas direções.

Em seguida, criei a estrutura principal que o jogador deve defender. Por enquanto sua função é ajudar a entender quais ações o jogador tomará durante o jogo. No futuro essa estrutura irá servir como centro de recrutamento de diferentes unidades e pesquisa de tecnologia. E caso for destruída será Game Over.

Com essa estrutura posicionada no meio do mapa, o próximo passo é começar a criar algumas de suas funcionalidades. E a primeira dessas funções é o recrutamento de aldeões, eles serão a força trabalhadora, e deve ser uma das primeiras coisas que o jogador vai fazer ao iniciar uma partida.

Agora o jogador pode recrutar aldeões, porém eles ainda não sabem como se mover pelo mapa. Para resolver esse problema, utilizei o mesmo sistema de pathfinding que desenvolvi para The Adventures of the Lone Bounty Hunter com algumas modificações em como o grid é gerado e na posição algumas variáveis no código por conta deste novo jogo ser em 3D ao invés de 2D.

Porém devido a diferença de gameplay entre os dois jogos, esse sistema simplesmente não funciona do jeito que eu quero. O problema não está no algoritmo A*, ele funciona perfeitamente e é mais usado em games por um motivo, mas sim na forma em que implementei.

Provavelmente poderia fazer ele funcionar, mas as vezes é melhor só começar do zero e fazer algo que se encaixe perfeitamente nas minhas necessidades. Porém, por enquanto ele funciona bem o suficiente para permitir que eu termine o protótipo.

Com os aldeões podendo se mover pelo mapa, o próximo passo foi criar algumas estruturas para que eles possam trabalhar e gerar recursos. No momento estas estruturas, assim como os aldeões, são construídas de forma instantânea. Mas no futuro a ideia é que tanto unidades quanto estruturas precisem de algum tempo para ficarem prontas.

Com isso o jogador pode criar aldeões e algumas estruturas econômicas. Inevitavelmente isso irá chamar a atenção, e inimigos aparecerão para destruir e roubar o que foi construído. E por consequência o jogador irá criar seu próprio exército e construir estruturas defensivas para defender suas riquezas.

Problemas que quero evitar

Como descobri em outros jogos que criei, variedade é muito importante. E a geração de conteúdo é uma das partes mais difíceis, se não a mais difícil na criação de um jogo. Um exemplo disso é que uma das razões de ter publicado The Adventures of the Lone Bounty Hunter foi a dificuldade de criar conteúdo para o jogo.

No final do desenvolvimento do jogo, mesmo pequenas mudanças necessitavam que vários arquivos fossem modificados e muitas vezes era obrigado a modificar o código do jogo mesmo para conteúdo que já existia no jogo. Código que devido a falta de teste e do espaguete que se formou no final fazia várias outras partes do jogo pararem de funcionar.

Para evitar esses problemas é importante eu entender bem o que quero do jogo e qual o processo para adicionar conteúdo ao jogo, só assim poderei criar as ferramentas necessárias para facilitar esse processo. Além disso, preciso começar a criar testes desde já e refatorar sempre que grandes etapas forem concluídas.

Conclusão

No momento isso é tudo que o jogo tem a oferecer, como você pode imaginar, ainda falta muita coisa para ser feita e essa primeira versão tem muitos, mas muitos bugs mesmo. Pode não parecer muito mas vai funcionar muito bem como um protótipo para testar a ideia e descobrir em qual direção seguir. 

Agora a ideia é fazer pequenos refinamentos e passar algum tempo jogando o protótipo. Com isso espero ter uma ideia melhor de como é o gameplay e como deve ser a progressão. E mais importante definir como deixar o jogo divertido. Após isso traçar um novo plano.

Outro aspecto importante que deve ser definido logo é como vai ser a estética visual do jogo. Cubos e cilindros são ótimos para testar ideias, mas não são bons materiais de marketing. E com isso definir um pouco do mundo e da sua história. Afinal, quem é o jogador e por que ele está fazendo o que está fazendo?

Porém antes de qualquer trabalho para continuar o desenvolvimento, terei que fazer uma boa limpeza no código fonte do jogo, tanto para manter o projeto organizado, como criar ferramentas para facilitar a criação de unidades e construções para o jogo.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *