Um shooter online satírico em que todos têm o ZeroWare, um menu de batota dentro do jogo. O anfitrião escolhe se a sala é Legit, com batota fraca, ou Rage, onde vale tudo. As equipas são Smurfs contra Tryhards, e quem morre vê «BANIDO».
Por baixo da sátira há um FPS a sério: movimento rápido com bunny hop e air-strafe, três armas com recuo e dispersão próprios e uma rede em que o host decide tudo, a 64 ticks por segundo.
Como se joga
Partidas pela Steam: crias uma sala, procuras uma ou convidas amigos. Não há servidores dedicados: um dos jogadores é o host.
Deathmatch (ganha o primeiro a 20 kills) e Team Deathmatch, Smurfs contra Tryhards (a primeira equipa a 40), ou quem tiver mais ao fim de 10 minutos.
Três armas: Fuzil automático, Pistola e Sniper com mira telescópica, cada uma com o seu padrão de recuo e a sua dispersão.
Até 9 bots, em Fácil, Normal ou Difícil, que jogam com as mesmas regras que tu.
Salas Legit e Rage
Quem cria a sala escolhe as regras, e todos os jogadores da partida jogam com as mesmas.
Legit: batota básica com valores fixos, só de ligar e desligar (aimbot suave, triggerbot e ESP).
Rage: vale tudo e quase tudo se afina: aimbot com silent aim e auto-fire, anti-aim, auto-bhop, auto-strafe, fake lag, backtrack, resolver, ESP completo, terceira pessoa e mais.
O ZeroWare abre-se com a tecla Insert, e as configs exportam-se e importam-se como texto.
Competitivo e ranks
Salas 2v2 e 5v5, sempre Rage, Smurfs contra Tryhards e sem bots.
18 ranks, de «Bronze Inocente I» a «Trust Factor Zero», com 100 RP cada; as primeiras 5 partidas contam a dobrar.
«Procurar partida» junta jogadores a 1 rank de distância, no máximo.
Os ranks ficam num servidor e só mudam quando a maioria dos jogadores da partida, das duas equipas, envia o mesmo resultado.
Progressão e loja
XP e TF Coins por kills, headshots, partidas e vitórias; níveis de 1 a 50 e prestígio.
Loja do ZeroWare: nas salas Rage, as funções mais fortes alugam-se com TF Coins ou ficam para sempre com uma TF Perma Coin.
Três missões por dia e 9 conquistas, de «Primeiro sangue» a «Ninguém acredita que é skill».
Perfil com o nível, as moedas e as estatísticas: kills, vezes banido, K/D, headshots, partidas e vitórias.
Imagens
Tecnologia
O Trust Factor Zero é feito no Unity 6, com o pipeline de renderização URP, e o jogo está escrito em C#. O multijogador usa o Mirror sobre a rede da Steam, e o competitivo tem um pequeno servidor na Unity Gaming Services, escrito em JavaScript.
Linguagem
Para quê
Motor ou ferramenta
C#
Todo o jogo: movimento, armas, rede, ZeroWare, bots, partidas, progressão e menus
Unity 6 (6000.6), com URP e o Input System
C# (Mirror)
Multijogador sem servidores dedicados: o host decide e os clientes só enviam os comandos
Mirror, com o transporte FizzySteamworks
C# (Steamworks.NET)
Salas da Steam: criar, procurar, convidar e procurar partida
Steamworks.NET
JavaScript
Servidor do competitivo: ranks e resultados das partidas
Unity Gaming Services (Cloud Code, Cloud Save e Authentication)
Plataforma: PC com Windows de 64 bits.
Rede: simulação a 64 ticks por segundo com autoridade no host, previsão no cliente, interpolação e lag compensation até 250 ms.
Testes automáticos: cenários que arrancam o jogo sozinho e conferem o aimbot, o anti-aim, o backtrack, as partidas, os bots e a progressão.
Modelos low poly das armas e da personagem e sons das armas vindos de packs da Unity Asset Store.
Notas de versão
Spoiler: notas de todas as versões (9)
v0.7.0
versão atual
M5: competitivo com ranks
Só se veem salas da mesma versão: todos os jogadores têm de atualizar para a v0.7.0.
Salas competitivas
2v2 e 5v5, sempre Rage e Smurfs contra Tryhards, sem bots. Ganha a primeira equipa a 16 kills (2v2) ou 40 (5v5), ou a que tiver mais ao fim de 10 minutos. Há uma só partida por sala.
No menu, escolhe primeiro o tipo de sala: Casual, Competitivo 2v2 ou Competitivo 5v5. No competitivo, o menu mostra o teu rank.
Aquecimento: a partida só começa com as duas equipas completas e todos os ranks confirmados. Até lá, as kills não contam. Depois todos fazem respawn e começa.
Plantel fixo: quem sai a meio perde na mesma. Se uma equipa ficar sem ninguém, a outra ganha.
No placar, nas salas competitivas, aparece o rank de cada jogador em vez do nível.
Ranks
18 ranks, de "Bronze Inocente I" a "Trust Factor Zero", passando por "Prata Suspeita", "Ouro Reportado", "Platina Sob Revisão", "Diamante em Observação", "Mestre do Fake Lag" e "Lenda do Spinbot". Cada rank tem 100 RP.
Colocação: as primeiras 5 partidas contam a dobrar.
Pontos: vitória: +25 RP; derrota: -20 RP; empate: 0; por cada rank que os adversários estejam acima de ti, ganhas mais 5 e perdes menos 5 (e o contrário se estiverem abaixo); o RP nunca desce abaixo de 0.
Matchmaking
"Procurar partida" (Steam) entra na sala competitiva do mesmo tamanho a 1 rank (ou menos) do teu e com mais gente; se não houver nenhuma, cria uma. A sala fecha quando a partida começa.
O host confirma o rank de quem entra junto do servidor. Quem estiver a mais de 1 rank é posto fora, com o motivo no menu.
Servidor do competitivo
Os ranks ficam num servidor (Unity Gaming Services) e só ele os muda. Por isso o competitivo precisa de internet. As salas casuais funcionam sem ele.
Cada jogador envia o resultado que viu. Só conta quando mais de metade dos jogadores da partida, com gente das duas equipas, envia o mesmo. Se não houver acordo, a partida fica "contestada" e ninguém ganha nem perde pontos.
A conta competitiva fica ligada a cada PC (conta anónima). O login com a conta Steam vem quando o jogo tiver o seu próprio App ID.
Correções
O texto de espera não sai da barra da partida no aquecimento.
v0.6.1
mãos em primeira pessoa
Só se veem salas da mesma versão: todos os jogadores têm de atualizar para a v0.6.1.
Mãos na arma
Em primeira pessoa já se veem as mãos e os braços a segurar a arma, no fuzil, na pistola e na sniper. No fuzil e na sniper, a mão esquerda segura a arma por baixo. Na pistola, as duas mãos envolvem a pega. As mangas ficam com a cor da equipa no Team Deathmatch. Desaparecem quando estás morto, com a mira da sniper, em terceira pessoa ou sem arma na mão.
É só visual e só no teu ecrã. Os outros jogadores continuam a ver o teu corpo, que já segurava a arma. Não muda os tiros nem as hitboxes.
Correções
Os testes automáticos já não mexem no teu progresso: as execuções de teste e de captura do jogo guardavam kills no progress.json verdadeiro. Agora ficam só em memória.
v0.6.0
M4: progressão, TF Coins e loja
Só se veem salas da mesma versão: todos os jogadores têm de atualizar para a v0.6.0.
Níveis e prestígio
XP e TF Coins: Kill: 100 XP e 10 TF; headshot: mais 25 XP e 5 TF. Partida jogada: 200 XP e 25 TF; vitória: mais 500 XP e 60 TF. Kills em bots valem metade, e só as primeiras 10 de cada partida dão recompensa.
Níveis de 1 a 50. No 50 podes fazer prestígio: voltas ao nível 1 e ganhas uma TF Perma Coin. As moedas e os desbloqueios ficam.
Começas com 300 TF de boas-vindas.
Loja do ZeroWare
Salas Rage: algumas funções passam a vir da loja. Alugam-se com TF Coins por 3 partidas Rage, a partir de um nível. Ficam para sempre com uma Perma Coin (sem nível mínimo).
Grátis: aimbot (com silent aim, auto-fire e no recoil), triggerbot, RCS, ESP básico, anti-aim a girar, auto-bhop, círculo do FOV, mira de recuo e modo noturno.
Da loja: Auto-stop e hit chance: nível 2, 150 TF. ESP avançado: nível 3, 150 TF. Remoções: nível 4, 100 TF. Auto-strafe: nível 5, 200 TF. Terceira pessoa: nível 6, 150 TF. Anti-aim avançado: nível 8, 300 TF. Backtrack: nível 10, 350 TF. Fake lag: nível 12, 300 TF. Resolver: nível 15, 400 TF. No spread: nível 20, 500 TF.
No ZeroWare: as funções bloqueadas ficam cinzentas, com o nível e o preço, e há um botão para a loja.
Salas Legit: nada disto conta; os valores são fixos e iguais para todos.
Missões e conquistas
Três missões por dia (mudam à meia-noite UTC), por exemplo "Faz 5 kills com o anti-aim ligado" ou "Joga 2 partidas numa sala Legit («juro que é skill»)".
9 conquistas com recompensas únicas, de "Primeiro sangue" a "Ninguém acredita que é skill" (1000 kills, que dá uma Perma Coin).
Perfil e HUD
Perfil e loja: no menu principal e no Esc, com o nível, a barra de XP, as moedas e as estatísticas (kills, vezes banido, K/D, headshots, partidas, vitórias).
No jogo: Nível e moedas por cima da vida. Notificações de XP, missões, conquistas e subidas de nível. O que ganhaste na partida aparece no ecrã do fim.
No placar: aparece o nível de cada jogador.
Recompensa da partida: só conta para quem esteve pelo menos 30 s nela e não jogou sozinho.
Onde fica o progresso
Por agora, no teu PC (progress.json na pasta de dados do jogo). Ainda não há servidor, por isso o progresso não passa para outro PC.
Um ficheiro alterado à mão é posto de lado e o progresso recomeça.
Correções
No fim da partida, o ecrã "BANIDO" de quem morreu no último segundo já não fica por cima do placar.
v0.5.0
M3: modos de jogo e bots
Só se veem salas da mesma versão: todos os jogadores têm de atualizar para a v0.5.0.
Modos de jogo
Ao criar uma sala, escolhes também o modo de jogo (além de Legit ou Rage). Na lista de salas Steam aparece [Rage: TDM], por exemplo.
Deathmatch: todos contra todos; ganha o primeiro a 20 kills.
Team Deathmatch: Smurfs (azul) contra Tryhards (laranja); ganha a primeira equipa a 40 kills.
Nos dois modos, se ninguém chegar lá, ganha quem tiver mais ao fim de 10 minutos.
Equipas
Quem entra vai para a equipa com menos jogadores, e a camisola fica com a cor da equipa.
Sem fogo amigo: as balas passam pelos aliados.
O aimbot, o triggerbot, o backtrack e o ESP ignoram os aliados.
O nome dos aliados aparece por cima da cabeça quando estão à vista (não atravessa paredes).
Partida
No topo do ecrã: o modo, o tempo que falta e a pontuação (o líder e as tuas kills, ou o resultado das equipas).
No fim: aparece o vencedor e o placar. Ninguém anda nem dispara durante 8 s, e depois começa outra partida com tudo a zero.
Spawns: nasces no ponto mais longe dos inimigos. No Team Deathmatch, cada equipa nasce na sua metade do mapa.
Placar (Tab): dividido por equipas, com os bots marcados como [BOT].
Bots
No menu: até 9 bots, em Fácil, Normal ou Difícil.
Mesmas regras que os jogadores: cada bot é um jogador normal que envia os mesmos comandos que tu, por isso movimento, recuo, dispersão e lag compensation são iguais.
Como jogam: andam pelo mapa e vão ver de onde vieram os tiros que ouviram. Só veem quem está à frente e sem paredes pelo meio. Reagem com atraso, erram a mira (cada vez menos enquanto te seguem), disparam em rajadas e fazem strafe.
Por dificuldade: Fácil: reação de 0,5 s, quase sempre ao corpo, sem controlar o recuo. Normal: reação de 0,32 s, cabeça em 35% dos alvos, metade do recuo controlado. Difícil: reação de 0,2 s, cabeça em 60% dos alvos, 90% do recuo controlado, e trava para disparar.
Salas Rage: metade dos bots usa anti-aim a girar.
Correções
O kill feed mostrava um quadrado nos headshots; agora mostra "(HS)".
v0.4.0
Pacote de ideias do ZeroWare
Só se veem salas da mesma versão: todos os jogadores têm de atualizar para a v0.4.0.
Aimbot (Rage)
Hit chance: com auto-fire, só dispara quando a dispersão atual dá esta probabilidade de acertar.
Auto-stop: quando há alvo, trava com contra-strafe, para a dispersão de correr não estragar o tiro.
No spread: a dispersão vem de uma semente previsível, por isso o cheat calcula-a antes de disparar e anula-a.
Resolver: aponta à pose exata de um snapshot e manda o host recuar para esse tick. Acerta em quem usa jitter, que os outros veem sempre do mesmo lado.
Backtrack (até 200 ms): acerta onde o inimigo esteve há pouco. O host nunca recua mais de 250 ms no total, por isso com ping alto sobra menos.
RCS
Puxa a tua mira contra o recuo das rajadas; vê-se a mira a descer.
Legit: 50% fixo nos dois eixos.
Rage: horizontal e vertical de 0 a 100%.
Anti-aim (Rage)
O spinbot passou a ser um dos modos do anti-aim. Os modos são girar, jitter (troca de lado a cada tick), de costas para onde olhas, e esconder a cabeça (de costas para o inimigo mais perto).
Pitch: normal, para baixo ou para cima.
A tua câmara nunca mexe, e a disparar volta a apontar à mira.
Movimento e rede (Rage)
Auto-strafe: no ar, com Espaço premido, faz o strafe por ti. Com auto-bhop passa a velocidade de corrida sem tocares no WASD.
Fake lag (até 14 ticks): guarda os teus inputs e envia-os de rajada, por isso os outros veem-te parar e dar saltos. Nunca atrasa um tiro, e se uma rajada se perder a seguinte volta a levá-la.
Visuais
ESP (Rage): caixas inteiras ou só os cantos, preenchimento, círculo do tamanho da hitbox da cabeça, esqueleto do modelo animado, setas para quem está fora do ecrã, sound ESP (um anel no chão de onde veio cada tiro) e rasto do backtrack.
Mira (Rage): círculo do FOV do aimbot e mira de recuo (onde a próxima bala vai cair).
Remoções (Rage): sem overlay da mira telescópica e sem recuo visual. As balas continuam a ter recuo.
Terceira pessoa (Rage): câmara atrás do ombro, com o teu corpo e a arma na mão. Volta à primeira pessoa com a mira telescópica.
Modo noturno (Legit e Rage): escurece o mapa. É só visual.
Configs
No novo separador Configs, a config exporta-se como texto (ZW1:…) para a área de transferência e importa-se de lá. Os valores importados são postos dentro dos limites do menu.
Correções
Um tiro que te acertava na cabeça deixava uma faísca colada à câmara a tapar o ecrã.
v0.3.1
Modelos low poly e sons
Só se veem salas da mesma versão: todos os jogadores têm de atualizar para a v0.3.1.
Armas
As armas de cubos deram lugar a modelos low poly com textura: o Fuzil é uma M4, a Pistola uma M1911 e a Sniper uma M107 com mira telescópica.
Os rastos das balas saem da ponta do cano.
Tu vês a tua arma mais pequena, junto à câmara; os outros veem-na em tamanho real, ao ombro.
Jogadores
A cápsula azul deu lugar a uma personagem low poly animada: parada, a andar, a correr e no ar.
As pernas viram-se para onde o jogador anda e o tronco e a cabeça para onde aponta, por isso vê-se para onde alguém está a mirar.
Segura a arma com as duas mãos e dobra os joelhos ao agachar.
As hitboxes não mudaram: a cabeça da personagem fica dentro da hitbox da cabeça.
Som
Disparos reais para cada arma, em vez do som provisório.
v0.3.0
M2: cheats e salas Legit/Rage
Salas
Cada sala é Legit ou Rage, escolhido por quem a cria. Todos os jogadores da partida têm as mesmas regras, e o modo aparece na lista de salas Steam.
Legit: cheats básicos com valores fixos, só ligar/desligar.
Rage: vale tudo e as opções são afináveis.
Menu de cheats ZeroWare (Insert)
Aimbot: Em Legit, é uma assistência suave: só enquanto disparas, com FOV de 5°. Em Rage, tem FOV até 180°, silent aim (a câmara não mexe), auto-fire (com zoom automático na sniper), no recoil, e escolha entre cabeça ou corpo.
Triggerbot: dispara quando a bala sairia em cima de um inimigo. Em Legit tem 120 ms de reação; em Rage o atraso é ajustável.
ESP: caixas, nomes e vida através das paredes, com cor diferente para quem está à vista ou escondido. Em Rage há também distância, arma e linhas.
Spinbot (Rage): o corpo gira e a cabeça baixa para os outros, mas a tua câmara não mexe. A disparar, volta a apontar à mira.
Auto-bhop (Rage): com Espaço premido, salta sempre que tocas no chão.
As tuas opções ficam gravadas.
Jogabilidade
A cabeça inclina-se para a frente quando olhas para baixo. O spinbot muda mesmo onde fica a hitbox, e a lag compensation tem isso em conta.
Correção de movimento: com spinbot ou aimbot, continuas a andar para onde olhas no ecrã.
O HUD mostra o tipo de sala e os cheats que estão ligados.
v0.2.0
M1: netcode e armas
Rede
Simulação por ticks a 64 Hz com autoridade no host. Movimento, tiros e dano são decididos pelo host. Os clientes já não enviam a sua posição, só os inputs.
Previsão no cliente com reconciliação. O teu jogador mexe-se e dispara logo, sem esperar pelo host. Se o host discordar, a posição é corrigida de forma suave.
Snapshots a 32 Hz e interpolação. Os outros jogadores aparecem suaves mesmo com ping e perdas de pacotes.
Lag compensation. O host recua os outros jogadores até ao momento que estavas a ver quando disparaste (no máximo 250 ms). Se acertaste no ecrã, conta.
Anti-speedhack básico. O host não aceita inputs mais depressa do que o ritmo do tick.
Os teletransportes (respawn) já não deslizam pelo mapa nos ecrãs dos outros jogadores.
Armas
Três armas: Fuzil: automático, 30 balas, 34 de dano no corpo e 136 na cabeça. Pistola: semiautomática, 12 balas, 28 no corpo e 112 na cabeça. Sniper: ação de ferrolho, 5 balas, 115 no corpo, com mira telescópica (botão direito). Troca-se com 1, 2 e 3, e cada arma demora um pouco a ficar pronta.
Recuo com padrão. A câmara sobe só parte do recuo; o resto desvia as balas. Puxa o rato para baixo para compensar.
Dispersão. Piora a correr, no ar e em rajada, e melhora agachado. A sniper é imprecisa sem mira.
A mira abre e fecha conforme a dispersão real da arma.
O tiro que vês é o tiro que o host calcula: a aleatoriedade da dispersão é igual nos dois lados.
HUD
Nome da arma, ranhuras 1/2/3 e munição de cada arma.
Mira telescópica da sniper.
No placar (Tab), o ping e quantas correções de posição houve.
v0.1.0
M0: protótipo base
Projeto Unity 6 (URP) com Mirror, Steamworks.NET e FizzySteamworks.
Movimento estilo CS: correr, andar, agachar, saltar, air-strafe e bunny hop manual.
Uma arma hitscan com headshots, vida, morte ("BANIDO") e respawn ao fim de 3 s.
HUD com mira, vida, munição, hit marker, kill feed e placar.
Partidas sem servidores: lobbies Steam (criar, procurar, convidar) ou IP direto na porta 7777.