Introdução
Farias, que é o principal programador do IMPUNES/2NTD, está sem tempo para ajudar, e visto que há somente 3 membros ativos, mesmo que eu (Junior_Djjr) saiba programar, desde o início eu estou encarregado da modelagem, e eu nunca programei um jogo completo, portanto eu prefiro que IMPUNES seja programado principalmente pelo Farias, que trabalha profissionalmente nisto, portanto ele faria algo melhor.
Nós da 2nibble temos 4 outras ideias de jogos, mas infelizmente somos uma só equipe, de atualmente só 3 pessoas (Junior_Djjr, Meck e Vítor Kuhn). Nós decidimos começar a focar numa dessas ideias.
Antes que você pense negativo, na verdade, um projeto paralelo nos vai ajudar muito com aprendizado e alguns sistemas podem ser reutilizados. Portanto o IMPUNES/2NTD voltará muito mais forte do que antes!
IMPUNES/2NTD está pausado há 2 anos (desde 2018; desconsiderando 3 meses usados em uma remasterização para a câmera baixa em terceira pessoa). Durante esse meio tempo, nós criamos o NPD e fizemos 2 protótipos de jogos ainda sem detalhes, um jogo mobile de corrida e um puzzle inspirado em Portal com mecânica inédita. Mas decidimos iniciar uma outra ideia, e começamos ela em Fevereiro deste ano.
Resumo
Warpunk se trata de um jogo RTS (Real Time Strategy; estratégia em tempo real) multiplayer que se passa num universo de ficções punk.
Steampunk
Solarpunk
Cada uma pode lutar contra raças diferentes ou iguais.
Gameplay
O gameplay se resume em construir construções, gerar energia, coletar recursos, construir unidades de combate e realizar pesquisas para liberar upgrades, e finalmente, destruir todas as construções e/ou unidades dos inimigos. Semelhante à maioria dos jogos RTS, mas inspirado principalmente no Earth2150 e Age Of Empires.
No futuro haverá um modo campanha e singleplayer básico, mas no momento o foco é multiplayer.
O multiplayer funciona de cliente para cliente, ou seja, focado para você jogar com amigos utilizando a Steam. Mas provavelmente também haverá como hospedar salas públicas. Não haverá nenhum tipo de servidor nosso, nem rankings.
Mapa
O mapa é gerado proceduralmente, sendo assim, cada batalha é uma nova experiência.
Num modo de jogo comum, os jogadores aparecem em locais aleatórios, normalmente num mapa procedural, sendo assim, ninguém sabe exatamente onde o outro está, o que pode gerar uma jogatina cheia de surpresas.
O gameplay pelo mundo é modular, ou seja, não existe bases estáticas, você tem a liberdade de construir o que quiser em qualquer lugar, desde que você consiga coletar os recursos para conseguir construir, e tais recursos podem estar espalhados em diferentes locais do mapa. Em outras palavras, é um RTS de mundo aberto e procedural.
“Ah, mas um mapa gerado proceduralmente é só algo aleatório, não é natural e tático”, está certo meu caro questionador anônimo, mesmo que a geração procedural seja minimamente sofisticada, havendo até mesmo estradas com casas, há também um editor de mapa dentro do jogo.
Além de uma seed que pode ser compartilhada (como no Minecraft), você pode jogar mapas criados por você ou pela comunidade, utilizando um editor de terreno e objetos que roda dentro do jogo, e você pode editar os mapas gerados para deixá-los melhores.
Sonoplastia
Temos noção da importância de uma boa trilha sonora. Cada civilização terá suas próprias músicas de fundo durante o gameplay. Provavelmente vozes informativas em português e inglês (queremos contratar profissionais para isto; se você tem microfone profissional, nos contate), e estamos prestes a gastar em torno de 700 reais com licenciamento de músicas.
Especulações finais
Quando concluído — o nosso objetivo é uma versão alpha ainda em 2020 — será vendido na Steam com um preço que pode variar em torno de 10 reais. O preço pode aumentar ou abaixar conforme a qualidade do trabalho final.
Progresso atual
Eu (Junior_Djjr) estive trabalhando neste jogo quase todos os dias durante 3 meses (desde Fevereiro de 2020).
É o primeiro jogo que eu estou realmente programando (Nibble: Pizza Delivery foi programado pelo Farias).
Até o momento eu já programei 19 mil linhas de código (se considerar a programação de ferramentas, testes, códigos deletados, recriados etc acredito que é em torno de 25 mil).
Já foi criado:
Gerador de mapa procedural
E a água não é um plano gigante embaixo do solo, são tiles que só são visíveis conforme um algorítimo. E há também um outro algorítimo que evita a geração de águas ou ilhas pequenas demais (um problema comum em mapas procedurais).
Aproveitando, se você é programador Unity, eu agradeço qualquer ajuda na programação de uma geração de mesh baseada nas laterais do terreno, para assim, em vez de tiles, gerar uma mesh de água.
Mesmo que este mapa procedural não seja algo tão sofisticado, eu estou começando a ficar feliz com o resultado, está ficando ótimo para os padrões de um RTS.
Editor de mapa
Além de mapas aleatórios, Warpunk tem um editor de mapa implementado dentro do jogo.
Tudo foi muito difícil de conseguir, e eu estou muito feliz que eu tenha conseguido, pois eu vejo a edição de mapa como um ponto crucial para este jogo.
Movimentação de unidades
Para total desempenho de centenas de unidades, o jogo não utiliza física. A movimentação é simples, mas eficaz, utilizando A* Pathfinding como base, que usa vários núcleos do processador para encontrar o caminho mais curto para cada unidade (pode usar todos, mas notei que acima de 4 núcleos não é benéfico, pelo menos para o i5 9600KF (6 núcleos) que tenho hoje).
Pouco ainda foi trabalhado. Provavelmente haverá diferentes modos de formação de esquadrão, e “gravar” e “tocar” sequências de comandos.
Seleção, múltiplas seleções
A experiência de usuário é muito importante num jogo RTS, e pensando nisto, estou dando prioridade à maneira que o jogador seleciona múltiplas unidades e construções do jogo.
Múltipla seleção de unidade é básico, mas em vários jogos RTS não sofisticados não é possível selecionar e editar múltiplas construções ao mesmo tempo, como fábricas, e Warpunk é uma exceção. Mesmo que você selecione construções de diferentes tipos, o jogo lhe dará todos os botões de todas as construções que você selecionou, para comandar várias ao mesmo tempo. Isto é muito útil para desligar todas ao mesmo tempo, dar os mesmos comandos para diferentes fábricas, centros de pesquisas etc.
Montagem de unidade
Até o momento, o sistema mais complexo do jogo (mais de 1 semana pra ser criado).
Cada corpo, cada arma, cada upgrade, tem um custo e tempo de produção, e é claro, dano, alcance, vida etc.
Em vez de ícones e texto, tudo funciona como visualização do modelo 3D rotacionando na tela em forma de prévia, e lá você visualiza a prévia da sua unidade final com todos os upgrades instalados e suas estatísticas, custo, tempo de produção, tipo de locomoção etc.
Caso você não dar o nome, o próprio jogo gerará um nome para você com base no nome do corpo, e utilizando um extenso dicionário de palavras relacionadas com aquela raça. Por exemplo na Steampunk há palavras como “Victorian”, “Inventor” e “Furnace”; Solarpunk há “Heartwood”, “Salmonberry” e “Symbiosis”; Cyberpunk há “Computeritis”, “Nano” e “Orwellian”.
Não só isto, a geração de nome também considera o tipo de locomoção, por exemplo na água, Steampunk pode selecionar “Whale”; Solarpunk “Chordata”; Cyberpunk “Bait” etc. E o mesmo vale para o ar, e veículos anfíbios (por exemplo, “Frog”). Cada dicionário há em torno de 70 à 100 palavras. Mesmo que não seja algo espetacular, eu gostei da ideia, é muito melhor do que utilizar números.
Cancelar uma unidade atualmente sendo fabricada, gera um processo de “reciclagem” até que a nova unidade se inicie. Durante a reciclagem, os recursos gastos voltam (mas não 100%). Haverá também um centro de reciclagem para você reciclar unidades já fabricadas.
Árvore de upgrades, pesquisa
Outra coisa que me rendeu 1 semana de trabalho (na verdade, eu esperava mais).
Você clica em algum upgrade, e o jogo gera uma linha de execução até aquele upgrade, assim, cada upgrade é “pesquisado” utilizando recursos coletados, e tempo. Cada upgrade liberado, aparece na interface de montagem de unidade.
Uma mecânica interessante, é que você pode sim ter mais de uma central de pesquisa trabalhando junto, e você pode sim liberar um upgrade mais rapidamente quando duas centrais de pesquisa trabalham na mesma coisa, no entanto, a cada central de pesquisa adicional, o custo de produção aumenta e o tempo de produção não cai pela metade. As porcentagens ainda não foram escolhidas pois isto é algo a ser decidido durante os testes de balanço de gameplay.
Do lado do técnico, eu montei o sistema da lista de upgrades utilizando uma visualização gráfica com nodes (nós). Isto é facilita muito a organização das ordens e configuração de propriedades de cada upgrade, o que é importante no momento de configurar o balanço do gameplay.
Ciclo de dia e noite, climas
Foi criado todo o sistema de relógio e calendário, e por fim, o ciclo de dias e noites do jogo, inclusive climas.
E é claro, para uma boa imersão, há climas, como chuva e névoa.
Eu estou muito feliz com o resultado da chuva. Eu utilizei efeitos especiais criados pelo Digital Ruby, o mesmo criador do sistema de nuvens volumétricas do IMPUNES/2NTD.
Há também o clima de névoa, que tem mais chances de ser iniciado em manhãs, e em breve vou usar a chuva como base para criar a neve caindo. Também falta raios, que, mesmo com a câmera não mostrando o céu, ainda será necessário criá-los pois são visíveis no reflexo da água.
Shaders próprios
Este jogo está longe de ser um “asset pack”, mesmo os shaders foram criados por nós.
Eu (Junior_Djjr) criei um shader de água para suprimir somente as necessidades do jogo — afinal, não precisamos de uma água sofisticada com vertex displacement etc. Deste modo, mesmo bonita, a água tem um excelente desempenho gráfico.
Unidades e construções utilizam um shader que, além de detalhes pintáveis para diferenciar jogadores, suporta acumulação de neve realista adicionada somente na parte de cima do objeto. A mesma acumulação de neve será usada para todos os props do jogo em cenários de neve. E é claro, a acumulação é gradual.
Mas o real destaque está no shader de texturas stochastic procedurais, que soluciona completamente a repetição de texturas.
Se trata de uma adaptação do rotoscope baseado no paper de Thomas Deliot e Eric Heitz, e por fim implementada por mim (Junior_Djjr) no shader de terreno da Unity com Universal Render Pipeline.
Assim, o terreno do Warpunk não terá tiling com efeito de repetição de textura, como é visto de costume em vários jogos.
Nós usaremos isto também para algumas texturas do IMPUNES/2NTD, como gramas.
Você também quer isto em seu jogo? Liberamos gratuitamente no Github.