Resumo
ZZTT é um projeto de jogo inspirado em Transport Tycoon Deluxe, Factorio e Age of Empires, que está sendo criado por Lucas Montenegro e Thomaz Nardelli.
É um jogo de gerenciamento sobre controlar uma empresa de transporte de recursos em um mundo de fantasia.
"O jogo é um jogo de gerenciamento em estilo RTS, 3D, multiplayer, low poly e procedural."
Video
O que é ZZTT?
ZZTT é um jogo de gerenciamento sobre transporte de recursos em um mundo de fantasia. Em ZZTT você será o dono de uma empresa de transporte de recursos. Seu objetivo é atender às necessidades da população local, coletando, transportando e vendendo diversos recursos por ouro. Neste universo de fantasia, você terá que contratar prestadores de serviço para lidar com uma variedade de tarefas de transporte de recursos, desde cogumelos mágicos perigosos até loot de dungeon que atrai emboscadas. Vamos torcer para que os outros jogadores também não tentem atrapalhar seus serviços, já que, neste ambiente multiplayer, tudo pode acontecer!
Por quê?
Conforme fui ficando mais velho, passei a valorizar cada vez mais ter menos código, que seja menos "esperto" e mais legível. Ter um projeto de jogo me permite fazer meu framework crescer criando exatamente as ferramentas de que preciso.
Além disso, por que eu escolheria um RTS multiplayer? Eu não poderia criar um jogo menor? Bom, sim, claro! Mas eu estava jogando MUITO TTD e queria fazer isso, então é isso.
Contei ao Thomaz sobre essa ideia e ele me disse que queria treinar suas habilidades de computação gráfica e arte técnica. COMBINAÇÃO PERFEITA. Marcamos uma reunião e em duas semanas tínhamos um documento de design básico com o core loop do jogo.
Para onde estamos indo?
A principal intenção aqui é desenvolver meu framework, e o Thomaz quer programar uns shaders e pipelines de renderização bem bonitos. Estamos fazendo isso, então este é nosso principal objetivo por enquanto.
Já que esse é o nosso objetivo, vou tentar manter vocês informados sobre as tecnologias com que estamos trabalhando, os comos e porquês disso.
Sobre o Jogo
Core Loop
O core loop de ZZTT é:
- Contratar prestadores de serviço por moeda
- Definir missões de transporte de recursos para os prestadores de serviço
- Vender recursos por moeda
- Contratar prestadores de serviço
Nossa ideia é desenvolver as primeiras mecânicas para satisfazer esse core loop e depois adicionar algumas mecânicas para amarrá-las umas às outras. Adicionar algumas restrições, relações, dificuldades. Depois vamos trabalhar na nossa UX para que o jogo seja mais fácil de jogar. Queremos parte da incrível complexidade que TTD tem a oferecer, sem a UI e a UX dos anos 80.
Status Atual do Desenvolvimento
Ainda estamos trabalhando nos componentes básicos do framework. Tenho trabalhado bastante para criar uma boa base para adicionar novas features sem precisar mudar o que já existe. Criei um framework bacana baseado em DI Container que se integra facilmente com a Unity. Adicionei um gerenciador de escopos para separar os componentes da aplicação durante o runtime. Também adicionei o Mirage como nossa solução de rede e recentemente sincronizei servidor e clientes no mesmo nível.
Mesmo tendo feito tudo isso, ainda há muito pouco código de gameplay. Estamos trabalhando bem devagar nisso. Estou acelerando o ritmo agora, e este blog deve me ajudar a chegar lá.
O Thomaz, por outro lado, está trabalhando no sistema de renderização de tiles. Ele criou um render feature capaz de renderizar milhões de tiles usando renderização instanciada. Estamos convertendo nosso tilemap, que é uma classe de dados em c# com referências a assets (para deixar o trabalho no editor bem fácil), em algo que a GPU consiga ler diretamente. Ele também criou uns custom shaders bacanas e um mesh provider especial que nos permite ter regras diferentes de seleção de mesh para cada tile!
Vou escrever um post depois só para falar sobre as ferramentas e técnicas que estamos usando. Só a geração de mapa já dá para mais de um post.
Galeria
4 imagens