Jogo IMPUNES: Ganhando forma

Introdução

Nosso último devlog foi em Junho, onde em seguida pausamos o jogo para fazer um trabalho de VR pra um hospital, e em Agosto dois dos principais desenvolvedores ficaram duas semanas doentes sem poder trabalhar. Portanto este devlog atrasou muito. 

Mas este é o maior devlog desde o início do ano, e também o mais importante, pois já estamos começando a aplicar o novo planejamento do mapa, que será muito maior, natural e interessante!

Nossa primeira arte oficial! Ilustrada pelo Garatujada. Será um dos personagens do jogo.

 

Se você perdeu, veja a postagem anterior:

Jogo IMPUNES: Tráfego

Resumo das ideias e objetivos deste jogo:

2nibble.com/impunes

 

O nosso foco agora foi em montar o novo planejamento urbanístico, e já começar a criar as ruas do jogo para remontar o mapa, agora renovado e muito mais bem estruturado.

Durante os últimos 2,5 meses de trabalho, nós fizemos isto:


O que foi feito:

  • Criado um planejamento completo do novo mapa do jogo: a nova cidade tem 3 quilômetros de extensão com os lotes já planejados e posicionados: casas, edifícios, hotéis, lojas, bares, restaurantes, churrascarias, sorveterias, peixarias, farmácias, lotéricas, mercados, shoppings, concessionárias de carros e motos (usados, novos ou importados), concessionária de motorhomes, camping, galeria de artes, biblioteca, auto-escola, praças, parquinhos, academias, auto-postos, hospital, unidade básica de saúde, unidade de pronto atendimento, corpo de bombeiros, polícia militar, polícia civil, secretaria de segurança pública, distribuidora de gás, subestação de energia, igreja católica, igreja evangélica, igreja adventista, paróquia, contabilidade, câmara municipal, universidade, fórum, funerária, cartório, rodoviária, borracharia, mecânica, bicicletaria, camelódromo, calçadão, parque/circo, drive thru, skate parks, dog parks, pet shops, veterinário, clube de luta, marinas, decks, tratamento de água, secretaria de obras e prefeitura. E é claro, todos os principais pontos turísticos de Balneário Camboriú (da região onde será a versão “alpha” do jogo).
  • Agora o tráfego tem física real ativada ao ver os carros de perto, e conseguem desviar de obstáculos.
  • Projeto portado pra nova versão da Unity (2022.3 LTS) e todos os assets foram atualizados. Inclui melhorias como antialiasing TAA.
  • Sistema de carro migrado pra versão “Pro” do asset, que nos possibilita um controle fino do sistema.
  • Realizado muitas melhorias ao sistema de motos e bicicletas.
  • Adicionado uma moto (ainda não está totalmente pronta).
  • Adicionado um triciclo comumente usado por turistas de Balneário Camboriú.
  • Adicionado um patinete elétrico de suspensão (comumente pra alugar).
  • Adicionado um patinete elétrico leve.
  • Criado telas de “game over” num estilo icônico e original: ao morrer, ser preso, missão concluída ou missão fracassada. São mais de 100 textos aleatórios muito bem escolhidos, que variam conforme a causa da morte.
  • Migrado pra um outro sistema de nuvens volumétricas, onde as novas nuvens têm detalhes mais finos e o framerate do jogo melhorou em 20%.
  • Novos melhores sons de vento, chuva e trovões.
  • O céu estrelado agora usa uma imagem 4K da NASA posicionada igual ao céu do Sul do Brasil, onde você inclusive pode ver as mesmas constelações, como o Cruzeiro do Sul. E ao se afastar de poluição luminosa, e/ou usar modo astrofotografia do futuro smartphone do jogo, você conseguirá enxergar a mancha da via láctea.
  • Melhorado a textura da Lua, e agora a Lua tem a mesma rotação que é vista de Balneário Camboriú.
  • Criada a passarela do rio, e o Shiphouse: um dos maiores prédios da América Latina com quase 300 metros de altura.
  • Criado mais objetos props: 3 outdoors animados de LED, 3 diferentes bombonas/tambores, 2 torneiras, 1 lixeira móvel, 1 cone-barril, 1 container.
  • Todos os shaders foram reorganizados e otimizados, e materiais recriados com ferramentas de automação melhoradas etc.
  • Adicionado shader de Parallax Occlusion Map (height map), usado principalmente para telhados e como adição de profundidade aos interiores fakes parallax.
  • Criado um shader para materiais complexos de múltiplos blends e UVs, usado principalmente para ruas.
  • Criado um shader de superfície de distorção, usado principalmente para um visual realista de lente de faróis de veículos, e desenhado manualmente uma textura genérica para distorção inspirado no desenho exato de faróis de carros reais.
  • Criado um shader de pintura “flakes” para carros.
  • Criado uma grande textura genérica/compartilhada com materiais comumente usados em veículos, para otimizar o jogo e agilizar o desenvolvimento de futuros veículos.
  • Adicionado câmera primeira pessoa para veículos (ainda não production-ready). A de motos e bicicletas ficou excelente!
  • Planejado o mapa da lore (estados brasileiros e cidades fictícias pra região onde o jogo se passa).
  • Criado dezenas de logotipos de marcas e times de futebol fictícios.
  • Comprado 1600 reais em animações para usos futuros.
  • Contratado o “Garatujada” para fazer as artes promocionais do jogo: criado a arte do catador de papelão.

 

O plano planejado

Como a gente sempre disse, o mapa do jogo mostrado durante todo esse ano, é reciclado do Projeto 2NTD, da ideia de um jogo estilo GTA Chinatown Wars para mobile e PC, portanto era um mapa muito simples e básico.

Agora temos o real plano do que queremos para este jogo!

(propositalmente borrado, por inúmeros motivos)

Já foi dito acima, mas tenho que repetir:

A nova cidade tem 3 quilômetros de extensão com os lotes já planejados e posicionados: casas, edifícios, hotéis, lojas, bares, restaurantes, churrascarias, sorveterias, peixarias, farmácias, lotéricas, mercados, shoppings, concessionárias de carros e motos (usados, novos ou importados), concessionária de motorhomes, camping, galeria de artes, biblioteca, auto-escola, praças, parquinhos, academias, auto-postos, hospital, unidade básica de saúde, unidade de pronto atendimento, corpo de bombeiros, polícia militar, polícia civil, secretaria de segurança pública, distribuidora de gás, subestação de energia, igreja católica, igreja evangélica, igreja adventista, paróquia, contabilidade, câmara municipal, universidade, fórum, funerária, cartório, rodoviária, borracharia, mecânica, bicicletaria, camelódromo, calçadão, parque/circo, drive thru, skate parks, dog parks, pet shops, veterinário, clube de luta, marinas, decks, tratamento de água, secretaria de obras e prefeitura. E é claro, todos os principais pontos turísticos de Balneário Camboriú (da região onde será a versão “alpha” do jogo).

O mapa deste jogo não será um simples bairro residencial, será uma cidade de verdade, com tudo o que uma cidade precisa para funcionar! O que também auxilia em modos de jogo roleplay.

O mapa foi inicialmente planejado ano passado pelo Luiz Phillipp, formado em urbanismo, mas ainda tinha muito trabalho pra finalizar e ele não trabalha mais com a gente, então eu (Junior_Djjr) gastei uma semana olhando cada canto da cidade inspirada, Balneário Camboriú, para criar uma versão compactada da cidade real, listando e posicionando todas as ruas e pontos de interesse em um projeto no Sketchup (que é perfeito pra trabalhos de rascunhos como este).

Meck agora está encarregado de modelar e texturizar todas as ruas da cidade, inclusive criar as texturas delas, na qual em seguida modelaremos as quadras e lotes com o que foi pré-planejado.

As ruas estão sendo criadas com métodos modulares no Blender, para fácil alteração e replanejamento, caso necessário. Afinal, é uma cidade inteira, com toda sinalização horizontal, diferentes tipos de ruas, rodovias e mesmo estradas de terra, nós precisamos de métodos de excelência para sermos eficientes sem que afete o desempenho do jogo.

As texturas ainda não são finais, haverá muitos detalhes extras.

A maneira de modelar e texturizar as ruas também foi algo planejado durante meses. Eu fiz um “uber shader” que consegue combinações complexas de várias features e blends de diferentes materiais, vertex color e UVs, e este shader será usado para as ruas, deste modo as ruas são renderizadas num só passe, num só shader, num só draw call, num só material, o que otimiza muito o jogo e possibilita um visual complexo e natural, com diferentes variações de asfalto, buracos, bueiros, pinturas, poeira etc.

Demorou 1 ano de projeto para a gente começar a modelar as ruas da cidade, mas perceba que, quando a gente planeja e começa, é pra valer!

E isto é só a versão “alpha” do projeto. Caso o jogo seja um sucesso de vendas, continuaremos com a versão “beta”, inspirada numa área mais pobre de Camboriú, e a versão “completa” do jogo incluirá a zona rural. Claro, isto vai demorar e só acontecerá se o jogo ser um sucesso. Até o momento somente 10% do mapa da alpha está pronto (os objetos brancos na imagem acima é o que temos modelado), e ainda estamos de olho em mais pessoas para ajudar.


 

O tráfego está realmente trafegando

No devlog anterior a gente mostrou o tráfego do jogo, provando que o nosso sistema de tráfego consegue processar, de maneira estável, à 60 FPS, centenas ou milhares de carros ao mesmo tempo!

Mas era somente a versão “super LOD” do tráfego, isto é, vista de longe.

Agora eu adicionei a versão “completa” da IA e física dos carros, para os carros que estão próximos da câmera, e ao se afastar, o sistema consegue trocar pra versão “super LOD” de maneira “seamless”, sem problemas.

 

Sinceramente meus olhos brilharam quando eu vi tudo isso funcionando, eu não esperava que eu fosse conseguir programar tudo isso sozinho.

Os carros também já conseguem decidir desviar de um obstáculo ou outro carro que esteja há muito tempo o bloqueando, bem similar ao GTA V, mas ainda falta ajustes pra evitar falhas em determinadas situações.


 

Duas ou três rodas

O asset de física de moto e bicicleta que compramos tem bons resultados e vimos que foi muito elogiado pela comunidade e youtubers. No entanto, na prática, não faz nada além da física, e o autor do asset desde lá nunca mais o atualizou, portanto eu (Junior_Djjr) estou finalizando o asset por mim mesmo, deixando ele mais production-ready.

No vídeo do devlog foi mostrado a câmera em primeira pessoa, algo que nós adoramos o resultado! Eu me vi passando vários minutos jogando só curtindo a física e câmera da moto,  e eu espero que quem curte motovlog, também vá curtir jogar com essa câmera!

No entanto, não, não pretendemos câmera primeira pessoa para o gameplay à pé, pois cria uma complexidade desnecessária para uma feature que poucas pessoas gostam (eu particularmente até esqueço que GTA V e RDR2 têm câmera primeira pessoa).

E quebrando paradigmas, Zeneric modelou 2 patinetes elétricos, e 1 triciclo comumente usado por turistas em Balneário Camboriú.

Sério, qual outro jogo dá pra comprar/roubar triciclos e patinetes?

 


 

Telas de game over

Nós entendemos a importância de uma tela de “game over” original, icônica e memorável.

Foi um dia de trabalho conjunto: Garatujada, que é muito mais criativo que todos nós, criou o design da tela, e eu (Junior_Djjr) programei e fiz os sons. Yuri listou praticamente todas as frases, onde depois fizemos as finalizações.

Assista a tela animada, e com som, no vídeo do devlog.

Eu estou muito feliz com o resultado! São mais de 100 frases aleatórias muito bem planejadas, e que variam conforme a causa da morte ou ao ser preso. Sinceramente eu não sei como conseguimos inventar tantas frases (e descartamos dezenas). Nós esperamos que ao morrer ou ser preso, seja também algo divertido (algo que nós acreditamos que o GTA sempre falha nesse quesito), é praticamente um colecionável de frases.

A tela de falhar ou concluir uma missão é facilmente programática para adicionar informações adicionais. Por exemplo, ao falhar, explicará a causa, e ao concluir, poderá ter textos de informações adicionais ao jogador, como “a garagem agora está disponível” etc.

O som também teve seu capricho: eu escolhi usar flauta de bambu e Djembê (um tambor africano muito incluído na cultura brasileira) para combinar com a vibe de um jogo brasileiro. O padrão da virada de tambores tenta passar o “humor” do que acabou de acontecer.

 


 

Céu cada vez melhor

Quem vive de Unity sofre. Eu tive que gastar centenas de reais comprando um asset de nuvens volumétricas, pois o URP da Unity não tem elas, e com atualizações o asset parou de funcionar e o autor não está com vontade de corrigir (mas ele me disse que ainda pode tentar no futuro), então eu tive que comprar mais outro asset e adaptar os dois para funcionar juntos…

O lado bom é que este novo asset que comprei tem nuvens mais nítidas (mesmo em qualidade baixa) e gerou em torno de 20% mais FPS pro jogo. Desvantagens: não há tantas variações de nuvens e não há como voar de avião por cima delas, mas se o asset anterior for adaptado pra nova versão da Unity, eu adicionarei ambas as opções no menu de gráficos do jogo. E claro, sempre há opção de nuvens 2D, pros PCs fracos.

Não só nuvens: quem me conhece sabe que eu gosto de astronomia, eu inclusive faço algumas astrofotografias aqui no sítio, portanto me senti obrigado a trazer um céu caprichado ao jogo.

A NASA publica imagens de uso aberto do céu estrelado, e eu adaptei a imagem pro jogo utilizando um shader excelente que consegue simular poluição luminosa escondendo estrelas de baixa intensidade.

Assim, ao se afastar da poluição luminosa, e/ou usar o modo “astrofotografia” que haverá num futuro smartphone do jogo, você enxergará o céu profundo, com a mancha da via láctea.

Não só isso: a Lua de fato tem o mesmo ângulo rotação vista do Sul do Brasil (sabia que a Lua é diferente em cada latitude do mundo? …E que a Lua do IMPUNES é de fato um objeto 3D no céu simulando órbita sendo iluminado pelo Sol?).

Não só isso: o céu também mesmo o mesmo ângulo do céu brasileiro, onde você pode ver as mesmas constelações, como o Cruzeiro do Sul, e o céu gira com o passar da noite de forma igual ao real (comparei com um dia no theskylive, mas no momento o jogo não simula estrelas mudando com o passar dos meses, e acho que não é realmente necessário, já atingiu a cota de detalhes).

 


 

Mão na massa

Dê boas vindas ao nosso novo modelador: Marcos Cordeiro, que trabalha com arquitetura e mora na região de Balneário Camboriú. Portanto agora temos um arquiteto da região inspirada ajudando a modelar a cidade do jogo!

Ele modelou a passarela do rio e o nosso “Shiphouse”, um dos maiores edifícios da América Latina! Onde eu (Junior_Djjr) depois o finalizei. São quase 300 metros de altura.

Uma curiosidade é que ele tem inspiração no prédio onde Neymar tem um apartamento, e ainda está em processo de finalização (nós finalizamos antes mesmo do real).

 

Outra curiosidade é que este prédio faz com que o IMPUNES entre na lista dos jogos com os mais altos edifícios inspirados nos reais, junto com jogos que normalmente se passam na China, Rússia, Dubai, ou jogos recentes de Nova Iorque. Mas isto é só o começo.

A passarela está praticamente pronta, na qual é usada para atravessar ao outro lado do rio. Nós esperamos adicionar o rio ainda no próximo devlog, onde deixará tudo mais interessante!

Já há mais outros edifícios e novo skatepark em progresso. Infelizmente, assim como praticamente todos os membros da equipe, ele é bem ocupado com trabalho, portanto dificilmente tem tempo livre para trabalhar no projeto, mesmo que ele queira. Nós realmente precisamos de uma ajuda financeira para este projeto seguir à diante, e pretendemos abrir um financiamento coletivo em breve para poder a mão de obra das grandes cabeças que nossa equipe tem, afinal, todo mundo tem contas pra pagar. No momento ainda estamos aceitando doações por Pix ou PayPal.

 


 

Expansão cosmética

Zeneric modelou mais alguns props brasileiros (com minha direção de arte), como sempre, em qualidade triple-A:

O jogo terá outdoors de LED animados, como na cidade real, ou seja, espere que este jogo tenha noites lindas com luzes e movimento!

E já preparando para futuros trabalhos nos veículos do jogo, eu fiz o shader e desenhei manualmente um atlas de texturas de distorções de lente para usar em faróis de veículos, para um efeito realista e preciso. Também será usado para outras coisas de vidro, como garrafas.

Não só isto, como eu montei uma textura gigante com superfícies genéricas que serão compartilhadas entre todos os veículos do jogo, para agilizar o desenvolvimento, otimizar o processamento e uso de VRAM.

Isto é só uma pequena parte do devlog, mas foi um trabalho de 2 semanas, eu de fato comprei dezenas de fotos em sites stock e editei cada uma no Photoshop. Sem exageros, eu literalmente olhei mais de 100 mil fotos em inúmeros sites de stock (muitas repetidas, é claro).

No último devlog as novas texturas de paredes foram muito elogiadas, então eu também fiz mais dezenas de novas texturas de paredes, portões etc. Mas com o tempo vocês verão conforme elas sejam usadas nos muros, casas etc.

Abaixo, uma imagem mostrando o uso de blends de sujeira, algo um pouco mais próximo de como será o resultado visual final do jogo (esta imagem é experimental, visto que o mapa ainda está sendo remontado):

E pro mapa, agora também há o uso do Parallax Occlusion Mapping para algumas texturas onde profundidade é muito importante, como telhados e tijolos vazados. É bem otimizado, e há como opção no menu de configurações gráficas do jogo.

Não só isto, eu consegui implementar no meu shader de interior fake parallax! Agora além do “cubemap” de profundidade falsa, há um detalhe adicional de profundidade, para ficar mais natural.

Nosso shader de pintura de carro agora também tem opção de “flakes” (que foi também usado pra pintura do Shiphouse):

 


 

Lore

Yuri desenhou mais dezenas de marcas fictícias pro jogo, além dos times de futebol fictícios, que serão usados como citações, camisas para pedestres ou o próprio player vestir etc.

Yuri e eu também idealizamos o mapa do Brasil pra lore dos nossos jogos (não só IMPUNES, mas outros possíveis jogos que se passarão nesta mesma lore do universo que estamos criando):

Para escolher os novos nomes, usamos Wikipédia e um dicionário Tupi de 1987. Ou seja, vários nomes escolhidos são realmente novos nomes indígenas que nós montamos, por exemplo, “Amazonas” virou “Amananga” onde (teoricamente) significa algo como “sombra de chuva”.

 

Umas notas finais, sobre a treta da Unity, já nos pronunciamos nas redes (não nos afeta, e já até voltaram atrás), e sobre NPCs com IAs, a Unity já me liberou o beta teste do Unity Sentis, eu até testei mas ainda está muito inicial, esperaremos pela evolução, assim o jogo terá NPCs com IA, similar ao GPT, rodando dentro do jogo, sem necessidade de API paga conectada à internet etc.

 


 

Doações

Muito obrigado para todos que doaram! Este mês gastamos centenas de reais com fotos para texturas, e sons pra tela de game over (sim eu tive que comprar os sons), e 1,6 mil reais com animações (sim, tudo isso, mas é um investimento que vale a pena, vocês verão no próximo devlog!).

No entanto, ainda está milhares de reais no negativo, estamos longe de recuperar os gastos do jogo, e nos últimos meses recebemos pouquíssimas doações. Mas de qualquer forma, logo em breve abriremos um financiamento coletivo, e esperamos que isto nos ajude, pois temos muitas grandes cabeças na equipe, mas infelizmente praticamente todos os membros não têm tempo para trabalhar, afinal, todo mundo tem contas pra pagar.

Prefira Pix: Qualquer valor; instantâneo; sem tarifas. Neste caso é somente Brasil.

Chave aleatória: c03b3c1e-414d-4aee-8cb9-902ce2c65334

Para outras opções internacionais, veja a página de doação/financiamento no site da 2nibble.

Eu recomendo fortemente que você leia a página de doação/financiamento para entender a importância de financiar a gente.

Não pode ajudar financeiramente? Simplesmente divulgue o nosso trabalho!

 


 

facebook.com/2nibble

instagram.com/2nibble

twitter.com/2nibbleStudios

youtube.com/@2nibble

Jogo IMPUNES: Tráfego

Introdução

Durante todo este ano, nós demonstramos vários devlogs mais voltados ao lado gráfico do jogo, como mapa e armas, mesmo que no início também mostramos a base de quase todas as mecânicas do gameplay.

Agora estamos procurando trabalhar mais no preenchimento do núcleo do jogo, como a inteligência artificial, para que tenhamos um gameplay básico até o fim deste ano.

Eu gastei quase 1 mês de trabalho no tráfego do jogo, então este devlog está muito mais técnico por conta disto. Bem, nem tudo em game dev são imagens bonitas e bem ilustrativas, nós mostramos isto nos devlogs passados, mas isto é extremamente importante pro progresso do jogo, e eu sei que muitas pessoas estão sentindo falta de ver algo mais “gameplay base”, nós também, mas nos deixem cozinhar que vocês irão se surpreender até o final do ano. Ainda não temos nem 1 ano de trabalho, imagine como ficará daqui 10 anos!

 

Se você perdeu, veja a postagem anterior:

Jogo IMPUNES: Uma van insana

Resumo das ideias e objetivos deste jogo:

2nibble.com/impunes

 

O nosso foco agora foi criar um sistema de tráfego altamente otimizado! E realizar vários trabalhos gráficos, texturas e props, pensando no futuro da reforma do mapa.

Durante os últimos 2 meses de trabalho, nós fizemos isto:


O que foi feito:

  • Sistema de tráfego de veículos programado do zero com altíssimo foco em otimização. O meu objetivo era 60 FPS com mais de 100 carros simultâneos, e eu consegui com 3,5 mil.
  • Sistema de geração aleatória de veículos que usa inúmeros parâmetros para definir chances de cada modelo ser selecionado no spawn, como o nível de riqueza, gênero do dono, o quão urbano, industrial ou rural, entre vários outros futuros que adicionaremos para que a seleção de veículos tenha personalidade para combinar com o local e dono de uma maneira amigável e modular para a expansão do jogo.
  • Para a geração de veículos, cada ponto específico da rua ou estacionamento pode ter definições específicas (por exemplo, um estacionamento na frente de uma loja feminina haverá veículos geralmente femininos) e suporta uma mistura de diferentes pré-configurações para ajustes finos. Todo este sistema já está basicamente pronto pra produção e poderá ter a base reutilizada para pedestres.
  • Criado 3 diferentes modelos de semáforos pra veículos, e 1 pra pedestres.
  • Shader de pintura de carro com clear coat, fresnel, sheen e imperfeições finas na lataria.
  • Nova arma: Pistola Teseu U2e, com suporte à pintura RGB e fácil criação de pinturas estilizadas. Será uma pistola altamente personalizável com acessórios e estilos.
  • Nova arma: Submetralhadora artesanal/caseira (especial).
  • Nova arma: Motosserra (2 pinturas, ainda não temos animações e mecânica).
  • Nova arma: Faca de cozinha de plástico colorida (cores RGB e 3 variações de formatos, especial).
  • Nova arma: Faca de pente de memória RAM (especial, somente encontrada no lixo).
  • Atualizado o sistema de pássaros, agora é dezenas de vezes mais otimizado, e adicionado pombas urbanas.
  • Criado objetos props: Caçamba de entulhos (5 pinturas), saco cobrindo areia, 2 lixeiras de tambor cortado, lixeira móvel, cone de trânsito, poste sinalizador com corrente, lixeira de rua com variações de desenhos entre outros.
  • Criado carrinho de reciclagem para catador (ainda não temos animações e mecânica).
  • Criado dezenas de novas texturas com base em fotos reais e shadermap inclusos. Principalmente paredes de tijolo e reboco, e trocado inúmeras outras texturas ruins por melhores.
  • Melhorado o shader de interior falso parallax. Agora a progressão das luzes acendendo é por shader em vez de separação de mesh (isto deixa o jogo muito mais otimizado), e corrigido a distorção causada em vitrines horizontais (muito notável em jogos como GTA Trilogy).
  • Adicionado luzes volumétricas animadas nos postes, para simulação de neblina e poluição.
  • Adicionado 2 opções diferentes sistemas de iluminação global no espaço de tela (também erroneamente chamado de “raytracing screen space”) que simula a iluminação indireta de todos os elementos na tela sem impactar muito o desempenho.
  • Vários ajustes finos nos gráficos do jogo, e aumentado a resolução dos lightmaps. Agora o gráfico do jogo não tem pretos tão escuros e sombreados do mundo são mais bem definidos.
  • Agora 2 pessoas estão encarregadas da modelagem dos veículos. Já temos a base de 8 veículos!

 

Sistema de tráfego

Eu (Junior_Djjr) tinha um objetivo do jogo ter pelo menos 100 veículos ativos no mapa, sem impactar muito o FPS, pois eu acredito na grande importância que isso tem num jogo como GTA e na imersão de poder vê-los de longe.

O meu objetivo era 60 FPS com mais de 100 carros simultâneos, e eu consegui com 3,5 mil. É um número tão alto que mesmo que eu multiplicasse a cidade em 3, ainda não haveria espaço para todos andarem. “Somente” 600 veículos já preenche a cidade muito bem:

Eu apliquei esta otimização somente na detecção de colisão, isto é, em vez dos veículos distantes usarem física real, eles usam a minha física simulada com detecção de colisão altamente otimizada. Não só isto, a inteligência dos cruzamentos é somente um algoritmo que sabe a situação de cada veículo, não existe nenhuma física por trás, por isso tudo é tão otimizado.

Isto foi possível graças ao Jobs + Burst (DOTS parcial) da Unity, que faz um excelente gerenciamento de memória e gera um código altamente otimizado, além de usar vários núcleos do processador e processar isto em paralelo enquanto o resto do jogo está sendo processado, renderizado e enviado ao monitor, até o próximo frame.

Desta forma, a detecção de colisão do tráfego pode rodar em literalmente dezenas de milhares de veículos com literalmente 0 lag (0 ms de atraso, literalmente, mesmo). O único atraso está na lógica do tráfego (detecções de posição, semáforo, decisões etc), na qual é mais difícil de aplicar, em últimos casos eu posso tentar algo, mas já estou muito feliz com o resultado.

Lembrando que esta detecção de colisão simplificada é usada somente para veículos distantes (um super LOD), mesma coisa para a movimentação simplificada. Para os veículos próximos da tela, será usado física real quando necessário.

Vale lembrar que meu PC não é potente, é mediano, o CPU é um i5 9600KF, então é bem impressionante o que foi possível, mesmo dentro do editor da Unity (ou seja, sem otimização da build), mas para CPUs mais fracas, basta diminuir a distância dos veículos. No vídeo eu mostro numa cidade de mais de 2 quilômetros de extensão, então mesmo cortando pela metade voce ainda terá veículos 1 quilômetro de distância, o que ainda é muita coisa.

Em questão gráfica, também haverá o consumo de recursos para os veículos visíveis na tela, mas somente da GPU, e será usado um LOD extremamente lowpoly e com otimizações de batching ou instancing, além do mais, 600 objetos na tela é quase nada pra um jogo grande, então isto não é um problema, e de noite poderia usar algo como GTA V que em vez de mostrar o modelo dos veículos, mostra somente as luzes deles. Eu também poderia usar o ECS da Unity pra otimizar ainda mais.

 

Seleção de tráfego

Eu também criei um excelente sistema de spawn aleatório — ou melhor, não aleatório.

Mesmo que seja algo relativamente simples criado em poucos dias, eu fiquei muito feliz com o resultado, principalmente pela lógica modular usada.

Primeiro de tudo, cada rua do mapa, há dados únicos que guardam informações como o nome da rua, quantos veículos estão lá , quantos são esperados que estejam, e uma pré-definição de quais modelos de veículos são esperados naquela rua. Pra quem é modder de GTA SA, pense nisto como uma versão muito mais avançada do “cargrp.dat”.

Nesta pré-definição, eu defino uma curva de chances para cada característica de veículos, por exemplo, o nível de riqueza, então na definição de cada veículo, eu coloco o valor informando isto. Basta uma simples condição que usa a curva e valor para determinar se um veículo pode ser aleatoriamente selecionado para ser spawnado ali — está aí toda a ideia pra quem também estiver criando um jogo de mundo aberto.

Em 1 minuto eu consigo adicionar um novo parâmetro de personalidade pra seleção de tráfego do jogo.

Voltado à inteligência artificial do tráfego, você pode pensar “ah, é só criar carros distantes e está tudo bem”, não! Pois se o jogo tem veículos distantes sendo processados a todo o momento, dirigindo aleatoriamente, em algum momento o Mustang que você criou na praia estará dirigindo no meio de uma favela. Portanto, o mesmo sistema que dita qual veículo criar em cada rua, também dita qual veículo virar pra cada rua, ou seja, se naquela rua não é aceitado carros de luxo, um carro de luxo não decidirá virar pra lá. Isto também resolve problemas onde aleatoriamente pode haver muitos veículos num ponto da cidade e menos em outro, valores de local e hora, e dia da semana, podem ser usados naturalmente para que diminua a quantidade de veículos indo em tais ruas, e a quantidade total de veículos também pode ser ajustada apagando carros distantes não visíveis na tela. Tudo certo!

E como ficam os ajustes finos? Cada waypoint (ponto local específico para dirigir) ou pontos de estacionamento, podem também receber uma pré-definição em vez de usar a da rua, e ainda mais, uma pré-definição adicional com um ajuste de blend (mistura) para misturar os valores.

Você pode não estar entendendo isto muito bem, mas todo esse sistema é tão modular que com um simples arrastar de arquivo eu consigo pegar uma rua já toda bem definida e estruturada, e fazer um blend de configurações pra uma rua onde, por exemplo, há mais lojas femininas, então haverá mais carros e motos femininas no local (ou por exemplo, o estacionamento na frente de uma loja de moda feminina ter várias Honda Biz). Aumentar a quantidade de turistas andando num local ou parando pra olhar a frente de lojas voltadas à turistas. Ou até mesmo calcular a quantidade de lixos nas lixeiras de uma rua e aumentar chances de um catador de lixo virar o cruzamento para aquela rua. Tudo isto sem esforço, com um simples arrastar de arquivo. Eu estou muito feliz com o resultado!

 

Decisões do tráfego

Por fim, aqui está como funciona este meu sistema de tráfego:

Os modelos dos semáforos foram modelados pelo Zeneric com minha direção e texturas. São baseados nos semáforos da cidade real.

O sistema de semáforo, bem, não há nada demais, é só bloquear um caminho quando está vermelho, mesmo assim fiz um sistema modular que possibilita semáforos direcionais etc.

O real problema:  É comum quase todos os cruzamentos de uma cidade não terem semáforos, então os veículos precisam decidir fazer um cruzamento por conta própria.

Jogos com inteligência artificial básica demais, como todos os GTAs da Era 3D, se você remove o semáforo, vira um caos. Então eu prometi pra mim mesmo que farei um bom sistema de cruzamentos, não importe o tempo que leve.

Como citado anteriormente, não existe nenhum cálculo físico, colisão etc. Todas as decisões são tomadas num algoritmo que entende a situação de todos os veículos.

Cada ponto dentro do cruzamento recebe e envia informações se a área está livre para outro veículo atravessar.

Deste modo eu consigo criar cruzamentos otimizados com literalmente qualquer formato, e o veículo pode também “pré-informar” que ele está chegando, para assim dar prioridade à quem vem da direita, e informar ao outro carro pra onde ele irá virar. Em outras palavras, os carros dos NPCs, ou o próprio player, pode dar seta (pisca-alerta), e o outro motorista irá entender a sua decisão e agir conforme!

Pra quem caiu de paraquedas aqui e ainda não sabe, o IMPUNES terá bastante foco em um gameplay de roleplay, além de arcade, portanto o meu objetivo é de que o tráfego do jogo seja algo agradável e dinâmico, onde, se você quiser, você pode obedecer as leis de trânsito, e participar do fluxo, dando seta etc.

O sistema ficou tão legal que eu posso, por exemplo, simular cruzamentos onde não há visibilidade de quem está vindo, assim forçando todos os motoristas a antes pararem pra olhar, ou até mesmo aplicar uma chance baixa de não fazer isto para causar acidentes naturais — afinal, uma inteligência artificial boa não é a perfeita, mas sim, a natural.

O mesmo sistema pode ser facilmente integrado com pedestres, onde eu também fiz semáforo pra eles.

 

Os primeiros veículos

Depois de muitos meses tentando encontrar pessoas para nos ajudar na modelagem de veículos do jogo, agora temos duas pessoas — ambas muito experientes, mas com pouco tempo livre.

Nós fizemos uma parceria com Heaven Roleplay! Basicamente todos os veículos criados pro Heaven Roleplay serão editados e adaptados pro IMPUNES (exceto veículos de serviço público).

Nós negociamos um preço pra base de cada veículo, e nós pegaremos cada um e editaremos (parodiar para que eles não sejam modelos de veículos reais), remodelaremos várias coisas, como rodas, motor e interior, e adaptaremos às necessidades do nosso jogo.

Heaven Roleplay é um servidor de GTA brasileiro pra MTA:SA criado por várias pessoas próximas por volta da nossa comunidade, e eu posso afirmar, eles realmente estão caprichando e colocando amor neste trabalho, vale a pena acompanhar o trabalho deles, será o verdadeiro GTA brasileiro multiplayer.

Quem está cuidando destes veículos é o RicardoMDS, que tem alta experiência em uma modelagem caprichada e otimizada. No momento temos 3 carros, 1 SUV, 1 van, 1 moto, 1 caminhão baú. Mas nenhum está pronto pro jogo ainda.

E também temos de volta o nosso velho Leonardo Menezes (Leogh). Ele esteve com a gente no início do Projeto 2NTD (de quando a ideia era um jogo topdown pra mobile). Ele começou a modelar um carro esportivo inspirado num Maserati.

Ele é projetista com mais de 1 década de experiência com modelagem, e trabalha com isto. Ele tem alto conhecimento técnico em modelagem 3D, inicialmente a ideia era modelar alguns carros (principalmente esportivos) pro jogo, mas ao entrar no projeto ele se animou e pretende também modelar outras coisas também.

 

Pintura e pneu

Eu criei um shader de pintura de carro com clear coat, fresnel, sheen e imperfeições finas na lataria (para criar uma distorção no brilho e reflexo, como acontece em carros reais).

Eu gostei bastante do resultado, a ideia é expandir isto pra muito mais, como acúmulo de poeira etc.

Digo o mesmo para os pneus.

Eu gastei vários dias criando manualmente as texturas para as laterais de pneus dos carros, caminhonetes e caminhões do jogo. Tudo é desenhado no Photoshop, inclusive os shadermaps.

Pneu é algo bem mais genérico, mas ainda complexo, então fiz de uma maneira modular com uma textura atlas que o próprio material diz qual variação usar, e a coloração e todos os maps/masks são “packed” numa só textura, assim todos os pneus do jogo, inclusive shadermaps, estão em somente 1 textura. Desnecessariamente otimizado, mas capricho nunca é demais (ou é).

Se aplica 2 overlays de sujeira separados, isto é, sujeira pro centro, e lateral do pneu. A minha ideia é que logo ao começar a dirigir em estrada de terra, o centro do pneu suje, e com o tempo, a lateral suje também, e ao voltar a dirigir fora da terra, o centro limpe, mas a lateral sempre continua suja até que algo limpe ela. Ou seja, como acontece na vida real.

Brasil tem muita mistura do urbano com estradas de terra e poeira, é inclusive comum ver carros sujos pelas ruas, portanto é muito importante que IMPUNES também represente isto.

 

Mais modelos

Estamos nos aproximando cada vez mais de um foco maior no trabalho do mapa do jogo, com uma reforma para o novo plano de ruas, e criação de props (objetos de decoração) para preencher o ambiente.

Eu adorei o resultado da caçamba de entulho!

Modelado pelo Zeneric com 5 pinturas criadas por mim, o resultado ficou muito natural e bonito. Como quase todos os props, há blend de nível de sujeira. Também pretendemos adicionar um trabalho de caminhão de carregar caçambas no futuro.

Mais alguns props:

A lixeira de rua é um modelo genérico onde, trocando o alpha da textura, eu consigo inúmeras variações de estilos de desenhos. É importante, pois no Brasil há realmente muitos diferentes padrões de desenhos em lixeiras. Ainda faremos mais.

Mas o destaque estão no carrinho de catador:

Ficou incrível! Também modelado pelo Zeneric com minha direção de arte, ficou muito icônico. Obviamente ainda iremos criar objetos pro conteúdo sendo levado dentro dele.

Claro, ainda não temos animações e mecânica de uma pessoa puxando um carrinho de catador (nem sequer temos pedestres ainda), mas isto é algo que faremos no futuro, e o catador será como um personagem, terá toda uma personalidade e lore.

 

Novas armas

IMPUNES já tem mais de 10 armas prontas (sem contar armas brancas), mas ainda não é o bastante. Zeneric modelou ainda mais armas pro jogo, sempre num padrão triple-A.

Teseu U2e, a pistola mais barata e comum do jogo, altamente personalizável com acessórios (como lanterna e laser), cor RGB e pinturas. Ainda faremos acessórios e pinturas.

Você tem ideias de estilos de pinturas? Nos envie nos comentários nas redes sociais.

Submetralhadora artesanal/caseira. Inspirada no formato de um MAC-10, é uma arma especial (não disponível pra compra).

Uma motosserra é sempre bem vinda em qualquer jogo que contenha violência, no entanto, este jogo não focará em gore, e ainda nem tenho certeza se existirá desmembramento (o sistema de corpo do jogo é muito complexo).

Nós ainda não temos animações e mecânica para uma pessoa usar motosserra, mas por enquanto usaremos como decoração até termos algo funcional. Mas a corrente já é animada com efeito de blur muito legal.

Útil para interiores, ou jogada em lixo, uma faca de cozinha de plástico colorida é uma faca com baixíssimo dano, mas ainda funciona! É uma só, mas com variação de lâmina.

E pra finalizar, uma faca de pente de memória RAM, uma ideia de um seguidor (não lembro o nome). Eu adorei o resultado! Perfeita pra encontrar jogada no lixo.

Puxaram nosso pé que devíamos colocar pintura preto fosco (padrão militar brasileiro) pro fuzil que mostramos no devlog anterior. Faremos, calma!

 

Iluminação global no espaço de tela

Compramos 2 diferentes assets de screen space global illumination. Umas pessoas devem pensar “mas Unity já não tem?” sim, mas pro HDRP, não URP que nós usamos (e pode demorar pra chegar). E como quase tudo, os assets fazem um trabalho melhor que o nativo da Unity, então vale mais a pena pagar umas dezenas de reais do que esperar a Unity entregar algo aceitável.

Isto possibilita uma iluminação mais realista e completa, por exemplo, o Sol batendo numa parede azul faz refletir o azul no rosto da pessoa, o Sol batendo na pintura do carro faz refletir a cor no chão etc. Também ajuda no ambient occlusion e sombras finas de contato.

Há como aproximar este resultado usando lightmaps direcionais de alta resolução, mas causa complicações pro uso de memória e possibilitar que objetos dinâmicos emitam e recebam luzes também, então esta solução screen-space faz um trabalho mais completo com menos consumo de recursos, além de ter altíssimas possibilidades de ajustes de qualidade para se adequar ao hardware do jogador.

Por um momento imaginei que com isto daria pra remover a iluminação global por lightmaps, mas ao testar, o desempenho dos lightmaps é tão minúsculo que não vale a pena, e os gráficos ficavam muito inferiores. No nosso caso, esta solução funciona melhor como uma camada adicional de iluminação pro jogo — algo que estamos caprichando, nós entendemos a importância de uma boa iluminação.

 

Luzes volumétricas

Compramos um excelente asset de luzes volumétricas pro jogo (de novo, para compensar o que a Unity não faz).

Eu tive medo disso impactar muito o desempenho do jogo, mas mesmo aplicando na cidade toda o desempenho continuou bom!

Não é só um cone suave, há também uma leve animação de neblina/poluição no centro. Há também como adicionar pequenas partículas de poeira, mas isto dá impacto significativo no desempenho, então usarei só em casos específicos ou gráficos ultra.

Como vocês devem saber, o jogo tem todo um calendário interno com estações do ano etc. No inverno eu pretendo ter madrugadas e manhãs com muita neblina e pessoas vestindo agasalhos. Ficará uma imersão muito legal!

 

Melhorias nos shaders

Sobre janelas com interiores falsos, eu já havia mostrado num devlog anterior, mas ainda havia aquele problema comum em jogos, como GTA Trilogy, onde um formato mais horizontal, como vitrines, causa muita distorção. Depois de muita pesquisa, eu encontrei uma forma de corrigir isto!

Eu também mudei a forma que as janelas acendem, agora em vez de separar conjuntos de janelas em diferentes meshes, eu defino um valor no vertex color de cada janela, e enviando um valor pro shader, ele define se acende. Está aí mais outra ideia pra quem estiver um jogo com ciclo de tempo.

Antes eu usava o RGB do vertex color para variar a cor de cada janela dos prédios etc. Mas é muito desnecessário, basta definir um degradê, e um só canal do vertex color pode ditar a cor da janela.

Ou seja, com toda essa melhoria, as janelas do jogo ficaram muito mais otimizadas, necessitando muito menos objetos na cena, e menos draw calls, que diminui tanto o uso de CPU quando GPU!

Eu também melhorei o shader de blend de texturas. Agora em vez de um blend linear, posso definir uma mask para uma transição mais natural entre texturas.

E finalmente eu melhorei o efeito de poças de chuva no asfalto, agora não são mais poças redondas, são formadas algumas linhas, como acontece em ruas reais.

 

Remasterizações continuam

Eu (Junior_Djjr) gastei 2 semanas baixando, comprando, criando, editando, melhorando, trocando etc as texturas do jogo. Em principal, mais de 20 boas texturas de tijolos brasileiros!

Agradecimentos ao Yuri também pode tirar umas fotos das ruas da cidade dele para fazer texturas. Caso mais gente esteja interessada (principalmente se mora em Balneário Camboriú) entre em contato, podemos pagar por serviços de foto pra eu fazer mais texturas pro jogo.

As quadras continuam passando por melhorias, utilizando novas texturas, e mudanças de escala, aumentando espaços de lotes, calçadas etc. O novo modelo atualizado das quadras será colocado no novo planejamento de ruas do jogo.

 

O que virá em seguida?

Agora pretendo migrar o jogo pra nova versão da Unity. Eu falei no devlog passado mas na verdade só agora a nova versão foi lançada.

Nós também temos um trabalho freelance pra fazer, que consumirá mais algumas semanas, e todos os meses eu reservo uma semana pra eu trabalhar no meu mod Urbanize para os apoiadores.

Ou seja, provavelmente o desenvolvimento do jogo será pausado por 1 mês, então o próximo devlog será só daqui 3 meses.

Depois eu vou querer continuar focando na inteligência artificial dos veículos, e já começamos a trabalhar numa garagem mecânica para tunar carros!

Não sei se ainda no próximo devlog ou no seguinte, mas depois de ter os veículos funcionando bem, adicionarei os pedestres. Uma coisa de cada vez.

 

Doações

Muito obrigado para todos que doaram, já juntamos algumas centenas de reais, isto nos deixa mais seguros em gastar em mais coisas pro jogo. Nos últimos meses gastamos centenas de reais com animações graças à vocês.

Prefira Pix: Qualquer valor; instantâneo; sem tarifas. Neste caso é somente Brasil.

Chave aleatória: c03b3c1e-414d-4aee-8cb9-902ce2c65334

Para outras opções internacionais, veja a página de doação/financiamento no site da 2nibble.

Eu recomendo fortemente que você leia a página de doação/financiamento para entender a importância de financiar a gente.

Não pode ajudar financeiramente? Simplesmente divulgue o nosso trabalho!

 


 

facebook.com/2nibble

instagram.com/2nibble

twitter.com/2nibbleStudios

youtube.com/@2nibble

Jogo IMPUNES: Uma van insana

Introdução

Nosso jogo está começando a se parecer com o que nós realmente queremos.

 

Se você perdeu, veja a postagem anterior:

Jogo IMPUNES: O próximo GTA brasileiro

Resumo das ideias e objetivos deste jogo:

2nibble.com/impunes

 

O nosso foco agora foi criar uma venda de armas imersiva e icônica, e muito mais!

Durante os últimos 2 meses de trabalho, nós fizemos isto:


O que foi feito:

  • Um interior de uma van escolar estacionária usada para vender armas ilegalmente. O interior é altamente detalhado e com estilo icônico, memorável e imersivo. Ainda haverá o lado de fora com um homem vendedor.
  • Sistema de navegação 3D, e compra de armas e munição dentro da van. Ainda será feito o menu para inspecionar e cuidar das suas armas (ver, limpar e arrumar) e um suporte à compra de armas addons.
  • Sistema de customização de armas dinâmico, modular e condicional, suportando alteração de peças e pinturas. Ainda será feito sistema de stats e adição de peças úteis (como mira, lanterna etc).
  • Efeito visual 3D de insetos e mariposas voando em luzes noturnas.
  • Criado vários novos objetos props (alguns podem ser usados como armas brancas), como: 2 sacos de lixo preto, 3 sacolas de lixo (transparentes, coloridas, diferentes logotipos de mercados), 2 lixeiras de rua, martelo, alicate, chave de boca, chave de fenda, balde, barris de metal (limpo, sujo, grande, pequeno), bateria de carro, caixa de ferramentas, caixas de madeira de fruta (pequena e grande, quebráveis), ventilador, quadro, lâmpada incandescente, lâmpada fluorescente espiral, caixa de som velha, rolo de fita entre outros.
  • Criado a lendária arma “Trinta e Doze”: um revolver de calibre 12, artesanal. Acesso especial (não disponível pra venda).
  • Criado um extintor de incêndio (ainda não há animações, mas já apaga fogo).
  • Nova pintura pra faca tática; recriado texturas da pistola; melhorado a sniper.
  • Sistema de ventilador animado, com pás que giram num sistema de blur volumétrico e emite um som de vento que muda conforme o apontamento em direção ao ouvinte num formato de cone. O ventilador também simula emissão de um vento que voa até atingir elementos da cena (cortina, bandeira e fios).
  • Sistema básico de danos para objetos quebráveis, como caixas de madeira.
  • Sistema de placa de carro com texto dinâmico. Funciona gerando uma textura em tempo real durante o jogo (similar ao GTA San Andreas), inclui normal map para simular relevo e margem de pintura e marca d’água igual à real.
  • Visual de placa de carro milimetricamente fiel às placas Mercosul, recriado de forma 1:1 conforme documentos oficiais. Inclui bandeira do estado e brasão da nossa cidade, fictícios.
  • Implementado FMOD: engine de áudio usada por vários jogos triple-A.
  • Criado som de motor baseado no Fusca, usando FMOD. Utiliza diferentes faixas de RPM.
  • Adicionado sons e outros ajustes na interface de usuário.
  • Adicionado algumas configurações ao menu de opções gráficas, no momento só coisas básicas como: resolução da tela, taxa de atualização, 4 modos de tela cheia ou janela, escala de renderização e filtro de upscale (FSR, com opção de ajuste de nitidez). Também pretendemos DLSS.
  • Sistema que carrega e salva em arquivo .json as configurações do jogo.
  • Sistema indicador de posição dentro e fora da tela (como ícones indicando a direção de algo fora da tela).
  • Criado otimizações para o jogo suportar dezenas de NPCs com baixo impacto no framerate. Ainda há o que melhorar.
  • Todos os shaders foram revisados, agora trabalha num “uber shader” de múltiplas compilações, para um workflow mais organizado, e criado reflexo anisotropic simples.
  • Implementado shader que usa GPU instancing para possibilitar objetos repetindo com incontáveis diferentes texturas (exemplo, sacolas), praticamente sem impactar o desempenho do jogo.
  • Criado um shader de pele com subsurface scattering simples (não simula a passagem de luz, mas o efeito final é bem semelhante e muito mais leve. No momento a Unity não dá suporte à SSS para URP). E rugas na pele para sobressair expressões faciais.
  • Shader de olho com simulação de profundidade na pupila, reflexos de umidade mais realistas, e simulação de reflexo tapetal, mais comum em olhos de animais noturnos.
  • Revisado as texturas e shaders das peles, cabelos e roupas. Ainda há o que melhorar.
  • Adicionado dezenas de roupas masculinas e femininas, inclusive uma camisa e bermuda com estilo abrasileirado. Ainda precisa de muitas melhorias nas roupas em geral.
  • Implementado um slider no criador de personagem que possibilita escolher, linearmente, quão branca ou negra é a pele da pessoa (muda toda a textura e a maneira que a pele é refletida).
  • Ótima evolução no sistema de multiplayer.

 

Bem vindo à escola

Para a venda de armas, decidimos fazer algo o mais icônico e memorável possível, uma van escolar, onde o vendedor abre as portas com a frase “olha as crianças do pai”.

Foi tudo modelado e texturizado pelo Zeneric, e eu (Junior_Djjr) cuidei da direção de arte (dizendo especificamente como deveria ser, no cosmético e criativo). A ideia de van escolar veio do Meck, Yuri ilustrou rótulos e Trok fez os textos simulando canetão.

Há toda uma ideia de lore por trás disso. Se trata de uma van escolar antiga, não mais funcional, de um homem de uns 50 anos, conservador, pai de família, mas que tem contatos ilegais com militares (o que explica armas de altíssimo nível, como o canhão CSRND). Ainda não sabemos exatamente onde ficará estacionada esta van, provavelmente no quintal da casa dele. Ninguém desconfiaria de uma van escolar!

Imersão não é só modelos e texturas, mas todo o ambiente: uma caixa de som velha, conectada no rádio da van, fica tocando algumas músicas brasileiras dos anos 30, o que teoricamente hoje são de uso livre (devido à morte de todos os integrantes há mais de 70 anos).

O ventilador de mesa (baseado no do meu quarto)  há animação realista, pás com blur volumétrico e de fato simula vento, causando efeito de um vento que se move até a cortina, bandeira e fios, fazendo-os balançar quando o ventilador está em direção à eles. O efeito de som do ventilador também muda conforme a direção e distância da câmera (alterando o volume, pitch e spatial).

A imersão é literalmente sem igual, o resultado é nível triple-A, nós realmente nos esforçamos para isto, foi 1 mês de foco (incluindo objetos de decoração). Há detalhes finos em cada canto (literalmente, como teias de aranha) e até mesmo mariposas voando na luz de noite.

 

Compra de armas

Eu gosto muito de jogos que fazem menus integrados diretamente no mundo do jogo. A navegação desta van é totalmente 3D, onde a câmera é sempre posicionada de uma forma que você sabe que, apertar pra esquerda, irá se mover para a arma da esquerda etc. A navegação ficou bem agradável (algo que inicialmente eu estava preocupado).

Ao selecionar uma arma, ela se move em sua direção, pro lado da câmera, como se você tivesse pegado ela na mão para inspecionar. Lá você tem um menu para comprar a arma, comprar munição pra ela, e claro, personalizar!

Eu também criei um sistema de personalização simples mas eficiente. Você pode trocar uma peça por outra, ou mudar estilos de pintura ou materiais, que também mudará peças caso necessário. Eu ainda não criei um sistema de adicionar acessórios úteis (como miras, laser, lanterna etc).

Há também um sistema simples que muda quais peças podem ou não ser instaladas com base nas atualmente instaladas. E também pretendo criar um sistema de estatísticas, onde diferentes peças influenciam no desempenho da arma.

A compra de munição é outro detalhe icônico. Cada opção de munição está separada em diferentes latas: Lescau, Toby e Vacilon.

O sistema de munição do jogo será realista, cada munição que você compra pode ou não ser compatível com cada arma sua. Se você acha que isso pode ficar um pouco complexo pro gameplay arcade, embaixo do menu de compra há a lista de quais das suas armas são compatíveis, além do mais, também há opção de comprar a munição direto ao inspecionar uma arma, assim você não precisa ficar procurando qual bala é aquela arma.

Todas as quantias e valores ficam no mesmo menu, ou seja, no mesmo item mostra quantas munições você tem, pode ter, um multiplicador de compra, e o valor da compra. É importante lembrar que os números são placeholders, só serão realmente definidos e balanceados quando o gameplay do jogo estiver completo.

No fundos, há a inspeção de suas armas, e compra de armas addons, ainda não implementado, mas na caixa vermelha você poderá visualizar todas suas armas atuais, personalizar, e tratar elas (afinal, nós já fizemos sistema de sujeira e desgaste pras armas). E a caixa azul, é a seleção de armas adicionadas, por exemplo, baixadas da comunidade (é uma forma de adicionar infinitas armas sem ocupar espaço na van).

Armas e veículos são o ponto central de um gameplay de um jogo GTA-like, nós queremos que as armas tenham um valor real ao jogador, sejam caras e importantes, também nunca adicionaremos “skins” muito chamativas (haverá algumas legais, mas nunca nada de ouro ou coisa assim) pois queremos que o jogador se sinta avançado por simplesmente ter um fuzil preto nas costas.

 

Trinta e Doze, a arma lendária

Uma arma icônica que virou meme no Brasil, é a Trinta e Doze, um revolver calibre 12 artesanal/caseiro que foi apreendido na cidade de Mossoró.

Incrivelmente, ninguém ainda havia representado esta arma de forma realista e fiel (só uma tentativa do nosso seguidor). Nós fomos os primeiros, e ficou praticamente perfeita.

As fotos disponíveis são de qualidade ruim e não mostra ela muito bem, mas conseguimos representar de forma fiel (com certos toques artísticos).

A nossa ideia é que armas especiais (principalmente artesanais, não importa se é boa ou ruim) sejam únicas e não estejam disponíveis para compra. Ou seja, você pode sem querer encontrar um fuzil artesanal jogado num terreno baldio, e ele será único. Queremos algo assim com o Trinta e Doze, mas ainda não sabemos como será acessível (alguma missão?). Só sei que, quando decidirmos, não iremos falar. Procurem!

 

Melhorias gráficas nas pessoas

Você pode ter notado na imagem acima que, ao mirar, o personagem faz uma expressão facial franzindo a testa, isto não é novidade, mas agora também cria rugas/dobras na pele!

A Unity com o render pipeline URP (que a gente usa) não suporta subsurface scattering, para simulação realista da luz sendo transportada dentro da pele das pessoas, emitindo a cor interna avermelhada, mais notável em orelhas. E mesmo que tivesse, isto é um shader relativamente pesado para fazer da forma real, portanto eu me baseei num tutorial para fazer um shader que simule este mesmo efeito de forma mais “falsa”, e o resultado ficou excelente!

Sem esse shader, parece uma estátua de concreto pintado.

Note que nesta imagem eu usei uma cabeça highpoly de testes, isto não é o modelo de cabeça usada no nosso jogo (atualmente a nossa está bem inferior à esta, mas pretendemos melhorar). Outra coisa que precisamos melhorar são as roupas, portanto não vou mostrar muito ainda.

Esta é uma estampa de camisa que eu fiz do zero (inspirada nas camisas baratas de brechó), como demonstração.

Aqui uma prévia de uns extremos do criador de personagem:

Algo que eu também melhorei foram as texturas de pele, especialmente a pele negra, que, para se adequar à realidade brasileira, é um slider com infinitos intervalos entre a textura de pele branca e negra, o que também pode ser pintada por cima com algum tom avermelhado ou algo assim. A pele negra há menos efeito de SSS e mais efeito de brilho specular, assim como na vida real.

Eu também passei a usar um shader de cabelo (antes criei um, mas troquei pra um melhor) que simula melhor como a iluminação e reflexos.

Eu sempre achava que profundidade nos olhos fosse só um detalhe fino que jogos fazem, mas após colocar no jogo, eu notei o quão importante este detalhe é (eu não criei este shader). O desempenho é ótimo pois é um material único, não são múltiplas camadas.

Para deixar ainda melhor, fiz e coloquei um bom cubemap para simular o molhado dos olhos, e o efeito de reflexo tapetal, comum em olhos de animais noturnos, mas que também pode acontecer em olhos humanos.

Melhor dizendo, neste eu pedi pro Chat GPT fazer pra mim, pois eu pesquisei no Google e não encontrei nada. Mas provavelmente vou refazer. Pouquíssimos jogos têm este efeito, RDR2 é um deles (o que o RDR2 não tem, né?). Será um detalhe muito legal para ver animais no escuro com uma lanterna ou farol do carro, como corujas.

 

Isto é considerado clonagem de placa?

Eu criei o visual e sistema das placas dos carros, motos etc, da maneira mais perfeita e fiel possível.

Este modelo de Fusca não é do jogo, é um placeholder de cortesia do RicardoMDS do Heaven Roleplay. Os caras são feras! Estávamos desconfortáveis em usar modelos de carros americanos como placeholder, então pedimos um fusquinha temporário, pois ainda não temos ninguém pra modelar os veículos.

As placas repetem muitas vezes pelo jogo, e sempre estará na sua tela ao dirigir. É extremamente importante caprichar neste detalhe, portanto eu trabalhei nisto durante uns 3 dias.

Você pode perceber que algumas placas reais são levemente diferentes, mas eu segui os padrões definidos pelos documentos oficiais, milimetricamente, inclusive as fontes, e gera programaticamente uma textura do texto durante o jogo (GTA San Andreas fazia isso em 2004, já estamos em 2023, isto é o mínimo!) e também a textura pro normal map, para simular o relevo. Isto tudo é renderizado num shader que faz uma margem para pintar somente o centro da letra (como na vida real), coloca as marcas d’água, e também possibilita escolher a cor (para veículos comerciais, colecionador etc).

É tanto capricho que gastamos horas fazendo a bandeira do estado e cidade, algo que quase não será usado no jogo, mas faz parte do nosso trabalho de proporcionar uma lore completa.

Vocês já sabiam que a cidade do jogo se chama “Canário”, e agora vocês também estão sabendo que o estado se chama “Santa Camila” 🙂

 

Sons

Pra quem não me conhece, eu mexo com sons desde antes de 2010 e sou produtor de música eletrônica, e agora estou criando um jogo, eu me sinto na obrigação de caprichar na sonoplastia.

Eu gastei 2 dias procurando referências e testando métodos e ferramentas para criar um som de motor baseado no Fusca, e consegui um resultado bem legal, com auxílio do FMOD.

Eu me apaixonei pelo FMOD. O FMOD Studio é como se fosse um DAW, o que estou familiarizado, portanto no futuro eu pretendo desativar totalmente a engine de sons da Unity e usar somente FMOD pro jogo (organiza o trabalho e economiza CPU).

Mas nós precisamos de ajuda: é muito difícil encontrar boas fontes de som de motor e escapamento de veículos, no caso do Fusca foi fácil porque o motor e escapamento ficam no mesmo lugar, mas precisamos de sons de ambos separados (frente e atrás do carro), segurando o acelerador em diferentes faixas de RPM por alguns segundos, para criar loops dessas faixas, esta é a única forma de criar sons de motor realistas (pelo menos umas 5 diferentes faixas de RPM, e um idle). Se alguém quiser ajudar gravando uns sons assim, até pagaremos pelo serviço. Saber criar motores no Engine Simular também é interessante, eu testei, mas poucos parecem realmente naturais (parece bom pra moto), e poucas pessoas querem fazer motores comuns.

 

Configurações gráficas

Eu já havia trabalhado no sistema de menu de pausa, mas agora reservei um dia para implementar algumas configurações gráficas lá, e salvar e carregar um arquivo de .json configurações.

No momento só há o básico, como resolução da tela, taxa de atualização, 4 modos de tela cheia ou janela, escala de renderização e filtro de upscale (FSR, com opção de ajuste de nitidez). Também pretendemos DLSS.

Nós somos PC gamers como quase todos que estão aqui, portanto queremos dar muitas opções de configurações pro jogo, para que o jogador se sinta livre para experimentar, tudo com explicações amigáveis do que aquilo faz.

Outra coisa que sinto falta nos jogos, é separar configurações gráficas e mecânicas que impactam GPU ou CPU, pois é comum pessoas jogarem jogos com FPS baixo e tentarem abaixar configurações que afetam a GPU, sendo que o problema da pessoa está na CPU. Nós acreditamos que é importante que tudo isso seja mais fácil e amigável para pessoas iniciantes e medianas entenderem e conseguirem configurar de forma mais eficaz e simples.

 

Destruição

Eu comecei a fazer o básico dos objetos do jogo sofrerem danos e quebrarem (se separar em pedaços, ou desencaixar caindo no chão). Evitando ao máximo o uso de “valor de saúde”, em vez, trabalhar em nível de impactos.

Tudo foi modelado pelo Zeneric. Ainda será adicionado logotipos e textos nas sacolas.

Eu não pretendo fazer coisas como pedaços de muro se despedaçando etc. Primeiro que Unity não tem isto nativamente (é caro), segundo que isto impacta negativamente a otimização do mapa do jogo (quanto mais estático, mais otimizado). Vale mais a pena focar na destruição dos objetos dinâmicos, por exemplo, estourar uma sacola e espatifar lixo no chão com física (ainda não fizemos, mas esta é a ideia). O nosso objetivo com destruição busca ir pra esse lado.

 

Criador de mods

Farias trabalhou uns dias no software “2nibble Studio”, a nossa ferramenta para dar suporte à mods pros nossos jogos.

A grande novidade é que agora é feito em React, com back-end em Node.js, ou seja, pode rodar direto no navegador! A pessoa nem sequer vai precisar instalar nada, bastará acessar o site da 2nibble para criar e editar mods um editor amigável.

Também pretendemos automatizar parcialmente a adaptação de veículos de certos jogos, como GTA. Ou seja, você poderá abrir um carro de um mod do GTA lá, e boa parte da adaptação pro IMPUNES será feita automaticamente.

No editor também haverá como compartilhar o seu mod direto pro Steam Workshop, seja carro, moto, arma, item ou algum outro objeto. Ainda não sabemos se será possível um mapa completo, provavelmente quando o jogo estiver bem mais avançado.

Detalhe ao “para nossos jogos”. Isto não é exclusivo pro IMPUNES, qualquer outro jogo que criarmos, com suporte à mods, poderá usar. E desde antes do reinício do IMPUNES estamos com progresso num jogo de carro (que inclui versão mobile), portanto esta ferramenta também será para este e outros jogos futuros.

 

Multiplayer

Sendao está trabalhando sozinho no sistema de multiplayer do jogo, algo realmente muito difícil e desafiador, pois precisamos fazer do zero devido à vários motivos (principalmente, porque será um servidor standalone com game modes programados em Lua, similar ao MTA:SA), mas desde o último devlog, tudo evoluiu muito!

Qualquer pessoa já pode hospedar um servidor executando scripts Lua, entrar em outro servidor digitando IP e senha etc.

Ainda não está realmente agradável para jogar (falta muita coisa para melhorar e implementar), mas o básico já está funcional: andar, mirar e dirigir carros, com movimentação suave para compensação de lag. Nós queremos que IMPUNES seja mais que um jogo, mas sim, uma plataforma.

 

A evolução das inteligências artificiais

Eu sou um entusiasta de inteligências artificiais, e estamos já utilizando elas para desenvolver o IMPUNES.

Sendao usa Copilot e no momento eu uso Chat GPT. Ao meu ver, a principal utilidade, é você deixar de criar scripts simples e não importantes. Por exemplo, para testar o sistema de destruição, eu mandei o Chat GPT criar um script pra mim que atira uma bola no centro da câmera. Isto nem sequer será usado no jogo, é somente uma ferramenta de teste, um caso de uso excelente para você pedir pra um IA fazer pra você e economizar alguns minutos e um pouco de energia do seu dia.

Yuri também usou para algumas coisas, como o Toby, o cachorro humanoide para o rótulo de embalagem de chocolate em pó. Adobe Firefly também é incrível. Nós não gostamos da ideia de usar essas IA para criar o “núcleo” das coisas, mas é excelente para agilizar coisas secundárias.

No entanto, eu realmente adoraria incluir essas tecnologias dentro do próprio jogo, não hoje, mas eu acredito que em questão de meses, ou poucos anos, estarão extremamente acessíveis.

Como nós já explicamos, só queremos adicionar dublagem no jogo para algumas palavras e frases mais importantes, e focar em textos gerados dinamicamente por programação. No futuro, acreditamos que existirá excelentes ferramentas de geração de vozes que podem rodar em tempo real num jogo. Mas muito mais que isto, imagine algo como Character.AI, com pessoas treinadas com a nossa própria lore, rodando dentro do jogo, e você poder conversar com qualquer NPC. Seria incrível. Nem precisamos ir tão longe, imagine, dentro do jogo, ter redes sociais geradas em tempo real por IA! E essas IAs são influenciadas nos acontecimentos que você faz no mundo do jogo!

Nós estamos de olho nessa explosão recente de inteligência artificiais, e queremos no futuro implementar algo assim. Já tem algo semelhante ao GPT, aberto, rodando em Raspberry Pi (lento, mas funciona bem), nós acreditamos que no futuro algo assim pode rodar na GPU dentro do jogo, e vamos querer implementar.

Não nos importamos em compartilhar a ideia (caso outro jogo “roubar” esta nossa ideia), pois na verdade é bem óbvia e fácil de imaginar. Neste exato momento já existe assets pra Unity onde você pode conversar com NPCs usando o Open AI (mas usa API, portanto custa dinheiro). Esta tecnologia está evoluindo mais rápido do que você imagina.

Em suma, se você é um entusiasta de IA, irá adorar o nosso jogo. E se você odeia IA, saiba que nós usamos de forma moral, nós também não gostamos da ideia de usar IA para coisas importantes do jogo, nós vemos o uso como um auxílio de criatividade e produtividade em coisas secundárias.

 

O que virá em seguida?

Agora eu pretendo migrar o jogo pra Unity 2022.3 LTS, juntar a adaptação multiplayer (que está sendo trabalhada em separado), atualizar uns assets e outras coisas do meu PC. Após tudo isso, provavelmente nos próximos meses começaremos a focar nos NPCs e/ou polir o gameplay que temos no momento. Também é crucial otimizar o número de shaders, ainda mais que Unity é péssima nisso, eu gastei 8 horas esperando a Unity compilar os shaders para compilar o jogo pra gravar os vídeos (inclusive alguns vídeos eu decidi gravar em 720p dentro do editor por causa disso).

Nós realmente precisamos de pessoas para trabalhar no mapa, veículos, roupas e animações (e de certo modo, em sons, como explicado acima), mas ainda não temos dinheiro para pagar por esses serviços, e acreditamos que ainda não é o momento certo para abrir um financiamento coletivo. Eu era a única pessoa trabalhando no mapa, mas agora eu trabalho na programação, portanto o mapa do jogo está parado. É muito difícil encontrar pessoas habilidosas que estão dispostas a trabalhar por meses sem receber nada, com somente a possibilidade de receber por esses trabalhos futuramente, muitos aparecem mas logo desistem. No momento só há 2 desenvolvedores ativos, e 1 no multiplayer.

Nós continuaremos postando devlog somente a cada 2 meses, pois 1 mês passa rápido demais, e é broxante estamos animados trabalhando e termos que pausar para polir as coisas para mostrar ao público. Quanto menos pausas, melhor.

 

Doações

Muito obrigado para todos que doaram, já juntamos algumas centenas de reais, isto nos deixa mais seguros em gastar em mais coisas pro jogo. Boa parte das texturas da van foram compradas com esse dinheiro.

Prefira Pix: Qualquer valor; instantâneo; sem tarifas. Neste caso é somente Brasil.

Chave aleatória: c03b3c1e-414d-4aee-8cb9-902ce2c65334

Para outras opções internacionais, veja a página de doação/financiamento no site da 2nibble.

Eu recomendo fortemente que você leia a página de doação/financiamento para entender a importância de financiar a gente.

Não pode ajudar financeiramente? Simplesmente divulgue o nosso trabalho!

 


 

facebook.com/2nibble

instagram.com/2nibble

twitter.com/2nibbleStudios

youtube.com/@2nibble

Atualizações sobre nossos jogos

IMPUNES

Infelizmente teremos que pausar novamente o desenvolvimento do jogo IMPUNES, pois, na verdade, durante todos esses 5 meses de desenvolvimento, somente eu (Junior_Djjr) trabalhei nele, e é óbvio que eu não consigo fazer tudo sozinho. Na parte da programação, eu acredito que sim, com mais 1 ou 2 anos, mas criar um jogo estilo GTA requer muito trabalho de modelagem, animações, sons e tudo mais. Eu sozinho levaria muitos anos para finalizar isso (eu também fiz praticamente todo o cenário), e já estou velho tendo de trabalhar com outras formas de ganhar dinheiro.

Há 2 meses atrás eu postei a última atualização do progresso do jogo, recentemente eu voltei por alguns dias, comprando um novo melhor sistema de carros, mais similar ao GTA V (assim agora há nada no jogo antes de 2022, somente o cenário, que foi remasterizado com o passar do tempo). Mas logo decidimos pausar, ainda não há nada novo para mostrar pra vocês.

Naquele dia eu abri doações e falei que eu demoraria um pouco para voltar no jogo porque eu tinha trabalhos pagos para fazer, e as doações renderam 40 reais, eu agradeço à todos que apoiaram, mas trabalhar neste jogo em vez de freelances e outros jogos menores, ainda não é vantajoso, o jogo é grande e precisamos de uma equipe habilidosa para ajudar. Uns podem dizer para criarmos um crowdfunding, mas eu acho que não renderia muito, somente iria nos obrigar a terminar o jogo — no momento não fizemos nada disso, portanto (ainda) temos a liberdade de parar quando precisar, mas me desculpe por quem doou esperando algo a mais do IMPUNES, não que o jogo tenha sido cancelado, mas pode demorar para voltar.

De qualquer forma, eu peguei os 40 reais que vocês doaram e juntei mais 20 para comprar um pack de texturas PBR, para ajudar não só no IMPUNES, mas todos nossos outros futuros jogos. Todas as próximas doações serão para a 2nibble em geral (mas que também ajuda indiretamente no IMPUNES, é claro).

Recentemente eu também gastei uma boa grana comprando uma RTX 3060, e quem me conhece sabe, eu não jogo muitos jogos, eu comprei principalmente para trabalhar com Unity. Eu realmente estou levando isto à sério.

jogo indie gta brasileiro impunes 2nibble

 

E o Warpunk?

Eu poderia voltar a trabalhar no Warpunk, que é um jogo relativamente fácil de concluir.

O grande problema é que, como eu já esperava mesmo antes de iniciar o projeto, poucas pessoas se interessam nesse jogo — não só o público, mas também as pessoas que poderiam me ajudar. Parece que só eu estou animado.

Na verdade, a ideia inicial do Warpunk era um jogo grátis de código aberto, mas eu gostei tanto do resultado que passei a usar assets pagos para melhorar a qualidade (por exemplo, pathfinding altamente otimizado). Então a ideia de um jogo de código aberto foi por água abaixo.

Pelo menos foi um jogo que serviu muito para aprendizado e portfólio, inclusive eu o usei nesta entrevista de emprego. Eu não sei se realmente voltarei a trabalhar nele, precisa de muitos incentivos, é possível até que eu venda o projeto ou algo assim. Jogos RTS não são muito a nossa cara.

 

Nosso atual projeto

Atualmente estamos trabalhando num jogo puzzle em primeira pessoa, com uma mecânica inédita.

Foi uma ideia que eu tive em 2019, na época fizemos um protótipo da mecânica e tudo pareceu promissor, mas desde lá deixamos a ideia armazenada para o futuro.

Infelizmente nós não podemos divulgar a ideia de mecânica desse jogo, não é algo “fenomenal”, mas é original e não existe nenhum outro jogo igual.

Todas as (pouquíssimas) pessoas que eu falei a ideia, ficaram animadas e afirmaram que devíamos finalizar o quanto antes.

Chrystian Farias, que é um programador 14X melhor que eu, está trabalhando no funcionamento da mecânica base, e eu vou cuidar do resto. A parte difícil já foi feita, agora é só continuar.

O estilo será inspirado no jogo Portal 1, inclusive pretendemos incluir uma personagem “vilã” para te guiar, com dublagem, mas o jogo tem nada a ver com portais.

Este novo projeto requer muita pouca modelagem, então ainda é possível que algumas pessoas da equipe trabalhem na parte da modelagem do IMPUNES durante isso, veremos. Criar este jogo será principalmente programação, portanto eu consigo terminar mesmo sozinho, mas terei umas ajudas do resto da equipe também.

Isto é tudo o que eu posso dizer, e infelizmente eu não posso continuar fazendo “devlogs” aqui no site para mostrar o progresso do jogo, é necessário esperar até que este jogo fique (quase) pronto e finalmente possamos divulgá-lo, algo que pode demorar mais de 1 ano… Se tudo ir bem, e valer a pena, é possível que seja divulgado numa futura BGS, ainda não sabemos como as coisas irão rolar.

Jogo IMPUNES: Achou que eu tava brincando?

Introdução

Para quem não viu, mês passado eu anunciei que eu voltei a trabalhar no nosso jogo IMPUNES diariamente desde o início do ano (pulei só um mês), ou seja, finalmente tratando esse projeto de maneira séria.

Lá eu fiz uma grande postagem mostrando tudo o que já foi feito no jogo durante esse tempo:

Jogo IMPUNES: Voltando com tudo!

1 mês e meio depois, aqui estão as novas coisas que eu (Junior_Djjr) fiz no jogo:


O que foi feito:

  • Roda de armas inspirada no GTA V, mas melhor.
  • Menu de pausa inspirado no GTA V, mas melhor.
  • O minimapa já está praticamente 100% pronto como produção final. Inclusive o desenho dele.
  • Adaptação de hud para qualquer aspect ratio (como monitores ultra wide, desde 800×600 até 4K).
  • Adicionado nuvens volumétricas [o mesmo sistema que compramos há anos atrás], incluindo um total novo sistema de ciclo de dia e noite e estações do ano.
  • Criado sistema de contadores de valores, barras e tempo na tela (para ser usado em missões etc).
  • Adaptado diversos tipos de armas placeholders (pistola, fuzil, shotgun, sniper, lança-mísseis, faca, espada, lanterna).
  • Criado centenas de shader maps para texturas que faltam, principalmente normal/bump maps e ambient occlusion maps.
  • Melhorias no controle do personagem e câmera.
  • Usar a mão para empurrar portas e portões.
  • Sistema de fogo com espalhamento.
  • Minigame de chutar pênalti.

 


Minigame de pênalti

Direto ao mais divertido: Eu criei um minigame para bater pênalti em qualquer gol de qualquer quadra do jogo!

Não tem como ser um GTA brasileiro sem ter futebol envolvido. Claro, é difícil demais criar toda uma mecânica de jogar futebol (será que no futuro eu farei??), mas chutar pênalti já é divertido o bastante.

Não é muito importante fazer esse tipo de coisa logo no início do desenvolvimento do jogo, mas eu não me importo, o meu objetivo principal é finalizar, de qualquer forma, eu faria isso em qualquer outro momento. A bola foi feita pelo Meck.

Também, não é só um minigame, é toda uma base de sistema de atividades. Em outras palavras, a base agora está pronta para adicionar mais minigames e atividades sem muito trabalho.

O minigame ficou simples mas legal, com boa curva de aprendizado. No futuro daria para fazer uma AI de goleiro, e estaria mais próximo de um real jogo de futebol de quadra. Também pretendo basquete.

 


Roda de armas

O conceito de seleção de armas em forma de roda já existe desde muito antes do GTA IV, e está cada vez mais obrigatório em qualquer jogo do gênero.

Meu objetivo: uma roda de armas limpa, simples, com personalidade, que não ocupa muito a visão e sem poluição visual.

A roda de armas do GTA V é boa, é uma boa fonte de inspiração, mas eu encontrei vários problemas para melhorar:

Problemas:

  1. A Rockstar teve a ideia de haver “caixas” onde as armas são mostradas no meio, o problema é que nem todas as armas encaixam dentro desse espaço, enquanto outras encaixam, isso causa a sensação de desorganização.
  2. Cada espaço pode guardar mais de uma arma, mas você não vê quais são as outras, e pior, para você ver que tem mais do que uma arma, é necessário você olhar para o número embaixo do nome da arma que fica no centro da roda, não na arma. Isso causa confusão e lhe faz não notar que você tem mais de uma naquele espaço.
  3. A ideia da Rockstar foi deixar o centro da roda vazia, para preservar a visão de onde você estava mirando antes de trocar a arma, mas eles quebraram isso, pois quando você tem uma arma com silenciador etc, aparece textos grandes exatamente no centro, tapando a visão. Inclusive, eu acho a visão de fundo borrada até demais. Engraçado que o GTA Trilogy quebrou isso também, colocando o nome da arma exatamente no centro em vez de levemente pra cima.
  4. Não há personalidade. Ninguém olha para um ícone de armas do GTA V e fica “uau, que nostalgia, quantas lembranças”, agora pense num ícone de arma do GTA San Andreas, há tanta personalidade que as pessoas até tatuam eles!
  5. Até hoje eu não acredito como que a Rockstar programou a roda de armas no mouse. Eles só simularam a posição do analógico, ou seja, existe uma dificuldade maior em selecionar os cantos diagonais, e por exemplo, se você está com o mouse em cima, mas quer a arma do lado (diagonal superior direito), a sua reação natural é arrastar o mouse pra direita, mas ele seleciona a arma direita, não na diagonal. É um erro de UX simplesmente bobo e muito fácil de ser resolvido.

Soluções:

  1. As armas de fato têm diferentes tamanhos, e mesmo se usar ícones quadrados, o espaço é menor nas diagonais. Portanto em vez de tentar encaixar no espaço, faça o espaço aberto: deixe as extremidades esfumaçadas, como se não tivesse um fim, ou seja, os ícones ficarão propositalmente soltos pra fora.
  2. Coloque as setas de seleção da arma do lado do próprio ícone da arma (não é óbvio?) e mostre o ícone minimizado dos lados, para você ter uma prévia do que você tem em cada lado, agilizando a troca. Eu também pensei em abrir uma segunda roda externa para a escolha, mas isso criaria limitação da quantidade de armas. E pretendo colocar um indicativo de número em algum lugar.
  3. Em vez de um texto, simplesmente use ícones para identificar quais são os attachments daquela arma. No caso da minha roda eu não coloquei pois ainda não pretendemos adicionar tal sistema no jogo, provavelmente no futuro.
  4. Esses ícones do formato real da arma, virada de lado, são muito sem graça, estilo muito rodado, precisa inventar algo mais único, por exemplo na diagonal estilizado, como era nos GTAs clássicos. Eu ainda não inventei, mas pretendo algo assim, mas que seja fácil de fazer, pois a minha ideia é que seja possível adicionar armas como forma de mod/addon.
  5. Eu programei uma seleção de roda de armas no mouse melhor do que GTA V com somente 10 linhas de código (sem o problema que eu mencionei acima). Duvida? Está aqui o código, uso livre. 

Enfim, foi isso o que eu consegui, uma roda de armas ainda mais simples e agradável do que a do GTA V. Obviamente os ícones e textos são placeholders que ainda serão trocados.

 


Menu de pausa

Eu fiz a mesma “ciência” também no menu de pausa.

Meu objetivo: Um menu simples e bonito, mas que tenha alguma personalidade, sem poluição visual, que você tenha fácil visão de cada elemento da janela (sem muitas mudanças de layout) e de fácil expansão.

De novo o menu do GTA V é uma boa inspiração, principalmente porque é relativamente simples de ser programado, mas quando parei pra analisar, há uma quantidade de problemas graves…

Problemas:

  1. O item do menu atualmente selecionado é com fundo branco, no entanto, o anteriormente selecionado (pai ativo) também é branco, e o outro também… É um erro de UX que nem um amador faria, sinceramente. Você às vezes se perde onde está a sua atual seleção, pois as seleções anteriores estão da mesma cor.
  2. Alguns painéis de configurações, principalmente o de configurações gráficas, são muitas linhas, relativamente pequenas, que o nome está na esquerda, e a opção está na extrema direita, você precisa ficar movendo os olhos de maneira muito distante para ver qual é cada opção configurada. Eu notei o problema desde a primeira vez que abri esse menu no jogo.
  3. Outra coisa que eu sempre odiei é a necessidade de por exemplo apertar Enter para começar a trocar uma opção, e voltar para confirmar, ir para o próximo item, entrar de novo etc. A navegação, especialmente no menu de opções, é muito travada e nada agradável, e às vezes você fica confuso se você está ou não dentro de uma troca de opções ou troca de linha, pois a cor não difere.
  4. Não existe fundo, somente existe elementos, e a separação dos elementos é o fundo do jogo. Isto é muito feio, olhe o rosto do Franklin acima, não tem como achar isso bonito, é bagunçado, não há limitações claras do layout do menu, e o fundo é brilhante demais causando poluição.
  5. Não está muito claro quando um menu é escrolável. Eles tentaram deixar “minimalista” colocando um indicador no final, mas às vezes você não nota, ou não entende que aquilo indica que há mais coisa embaixo, na real parece um botão.
  6. Algumas barras são números pré-definidos de opções (passos), por exemplo você pode selecionar 5 níveis, mas elas não indicam com traços onde são os níveis, eu sempre achei isso um leve incômodo em vários jogos.
  7. O mapa é a guia selecionada por padrão, o que faz sentido, mas ela é a primeira da lista. A segunda é o resumo, que também é uma guia frequentemente acessada. Para ir até o final do menu, se aperta pra esquerda para inverter o final, mas nós não temos naturalmente essa ideia e várias vezes ficarmos apertando pra direita até o final. Perceba que com essa lógica, a guia “Game”, que também é importante, é a mais confusa de ser rapidamente acessada, e a “Settings” é a mais distante, sendo que ela fica no meio.

Soluções:

  1. Os itens ativos (pais, anteriormente selecionados) são marcados com uma linha para a direção onde o menu foi navegado. Por exemplo, a guia “Settings” indica pra baixo, “Audio” indica pra direita.
  2. Em vez do texto da direita ser alinhado na direita, alinhe na esquerda a partir do centro do painel. Por que não? Assim os textos não ficam tão distantes, sem aquele espaço vazio gigantesco no centro.
  3. Em vez de entrar e sair da seleção de opções, entre uma vez e continue lá, trocando as linhas normalmente, por que não? E use uma cor de destaque para deixar claro que você está dentro da seleção de opções.
  4. Essa remoção de fundo parece uma frescura contra os “design boxy”, de fato é interessante para apresentações de web design, mas eu acho péssimo para a UX de um jogo, especialmente num menu com muitas opções. Neste caso, eu acho muito importante que o menu todo seja definido num layout de caixa estática onde as pessoas entendem claramente as extensões da janela, sem o fundo estourar por cima de onde você está vendo.
  5. Outra coisa que eu acho frescura é a remoção da barra de scroll. Mesmo que esteja jogando com um gamepad, a barra de scroll é um padrão universal, você nem precisa tocar nela (pense em smartphones), ela é um indicador importante de onde você está, que aquela janela é escrolável e o quão grande ela é.
  6. Para separar as barras com níveis de passos pré-definidos, adicionei traços separando cada nível, e o número de traços é de fato os níveis que você pode selecionar. Por ter só 2 traços, ou 10…
  7. Eu deixei a guia ‘Mapa” no centro, “Jogo” na esquerda e “Resumo” na direita, sendo que as extremidades são as coisas menos acessadas: “Perfil” e “Configurações”. Isto dá uma melhor visão de que você começa do meio e aperta somente 1 ou 2 vezes pro lado para alcançar qualquer guia, algo que no GTA V você inconscientemente apertaria 5 vezes para ir até o outro lado. Eu prefiro evitar essa ideia de “aperte pra esquerda para ir para a direita”, pois não é intuitiva para a nossa mente.

E é este o resultado. Eu demorei quase 1 semana programando todo o sistema de menu, e está basicamente pronto, só falta botar o conteúdo. No momento eu só fiz um pequeno sistema de trocar configurações do jogo.

Perceba que no “Valdir” (meu nome) eu quis colocar o nome do seu jogador em vez de “Perfil”, para ficar algo mais humanizado. Lá eu penso em colocar todas as informações sobre o seu jogador, estatísticas do gameplay etc.

Modéstia à parte, este menu ficou mais bonito e com User eXperience melhor do que o do GTA V (algo que não é tão difícil assim de ser alcançado, eu nunca vi alguém elogiar o menu do GTA V).

Ok, mas e a guia do mapa? Tem algo nela?

 


Minimapa/radar

Eu evito elogiar meus próprios trabalhos, mas eu não consigo deixar de dizer que isto ficou lindo…

Desde o início eu falei: eu quero um desenho de mapa bonito, icônico, e eu fiz esse, inspirado no GTA San Andreas, mas com menos cores e mais tons de cinza para mais detalhes.

O tom de cinza médio indica os “semi obstáculos”, geralmente coisas que estão lá mas não necessariamente são um obstáculo para você, ou então, a área de lazer dos prédios (deste modo o formato da torre do prédio fica em branco).

Isto não é uma imagem, é uma mesh 3D com materiais pintados, portanto haverá como você carregar ou criar seus próprios estilos de cor nas configurações do jogo! Eu também pretendo deixar a opacidade configurável.

Ultimamente os jogos estão deixando o minimapa cada vez mais enxutos e sem graça, sem personalidade. Por exemplo o minimapa do GTA IV e do GTA V de nova geração, que é só um negócio preto com tons de cinza. Jogos de corrida são literalmente só a rua. O meu objetivo foi algo icônico, memorável.

“Ah, mas fazem dessa forma porque não querem mostrar detalhes demais do mundo do jogo, o seu minimapa mostra detalhes demais.”, eu não me importo, colocando na balança, eu prefiro algo bonito, cheio de cores e detalhes, do que algo chato e sem graça. Lembre-se, o minimapa é parte essencial do visual do jogo, está na sua visão a todo o momento, não é um simples detalhe.

E em comparação com o minimapa do GTA Trilogy, perceba que este também tem perspectiva e o cursor que indica a posição do player também é levemente afastado do centro. Mas não há nenhuma imprecisão do cálculo de posição e desenho (como acontece no GTA Trilogy onde o player aparece dentro de prédios e muda a posição conforme gira a câmera), aqui tudo é milimetricamente preciso (como a GSG errou em algo tão simples??), e eu achei um erro o GTA Trilogy deixar o cursor do player tão pra trás, e com tanta perspectiva, você vê muito o que está na frente, mas quase nada do que está atrás, assim atrapalhando ver os inimigos que estão atrás de você. E como você pode ver, não tem a porcaria do serrilhado como no GTA Trilogy.

 


Controle do personagem

Eu ajustei bastante a velocidade e blend das animações de andar. Ainda não pude me dedicar à melhorar as animações, e eu acho que é melhor esperar alguém específico para trabalhar nas animações do jogo.

Mas algo muito legal que eu fiz, foi a mão empurrando portas e portões dinamicamente, automaticamente, igual GTA V.

Perceba também que ao segurar uma arma na mão direita, ele usará a mão esquerda, exceto se a arma for pesada demais para segurar com uma mão só (como uma RPG), neste caso não usará mão nenhuma.

Para isso eu fiz um controlador para definir qual mão está ocupada, e qual a importância de cada mão. Eu espero que algo assim possibilite, no futuro, o personagem por exemplo segurar uma lata de refri numa mão e ainda conseguir usar uma pistola com a outra. Veremos se eu consigo.

Ainda tem bastante coisa para refinar no controlador do personagem, ele é muito completo e avançado mas não tão cosmeticamente polido como jogos AAA, mas não é tão importante agora e requer maiores trabalhos com animações.

 


Nuvens e clima

Adicionado novamente ao projeto as nuvens volumétricas do Digital Ruby, a solução é baseada em soluções open source e no paper oficial do jogo Horizon: Zero Dawn.

Eu já havia criado todo o sistema de calendário, relógio e transição de dia e noite do IMPUNES, além de um simples sistema de clima (que eu pretendia recriar pois era básico demais), portanto eu pretendia usar somente as nuvens, mas eu gostei tanto do sistema de dia e noite desse asset que eu vou jogar tudo fora (na verdade, provavelmente vou polir para vender barato na Unity Asset Store), e assim migrar todo o jogo para esse novo sistema.

Além de nuvens lindas, bem otimizadas e com muitas opções de formações e níveis de qualidade (claro, você pode desativar as nuvens volumétricas, pois elas são pesadas), todo o sistema de ciclo de tempo é muito caprichado.

IMPUNES é inspirado em Balneário Camboriú – SC, portanto eu configurei a latitude e longitude conforme a cidade real para ver se o posicionamento do Sol é realista, e para a minha surpresa, o horário de nascer e pôr do Sol se bateu com o site sunrise-and-sunset.com.

É sério, dentro do jogo, em Junho o Sol se põe às 17:30 e em Janeiro às 20:00. Se você perguntar para alguém que mora em BC, vai dizer que é isso mesmo.

A lua também tem posicionamento realista, variando cada dia, mês, ano, naturalmente gerando as fases da Lua. Eu estou até curioso se é possível ter, naturalmente, um eclipse solar no jogo.

Outra coisa que eu fiquei impressionado, é que essas nuvens são volumétricas, feitas para serem vistas de baixo pra cima, para melhor desempenho, mas durante o jogo, eu posso trocá-las por nuvens de “voar entre”, para melhor visualização com aviões voando entre e acima delas, e o formato da nuvem é preservado durante troca! Nem GTA V consegue isso de maneira convincente, e GTA Trilogy nem sequer é possível chegar na nuvem (mais ou menos). Ou seja, no futuro você vai poder pegar um avião e ir até uma nuvem, e ela realmente estará lá, de maneira otimizada.

O meu sistema de ciclo de dia e noite era aceitável, mas este é incrível, o problema era a necessidade de esperar 365 dias para ver todas as estações, mas eu editei o algoritmo do Sol para um calendário curto de 24 dias. Afinal, eu quero que você desfrute das diferenças entre as estações do ano, ainda mais por ser uma cidade praiana do Sul do Brasil, ou seja, no inverno haverá muitas pessoas agasalhadas, neblina, e no verão haverá muita gente na praia. Eu quero proporcionar essas diferenças de gameplay para trazer uma maior imersão. Ou seja, na minha ideia, em 19 horas de gameplay você terá todas as estações do ano, dentro de dias de 48 minutos (como GTA V e vários outros jogos).

 


Importante:

O projeto foi totalmente renovado, portanto queremos desvincular o nome antigo do projeto (“2NTD”).

Agora o progresso do jogo estará somente nas redes sociais da equipe 2nibble.

facebook.com/2nibble

twitter.com/2nibbleStudios

youtube.com/c/2nibble