BotStrikes

Desenvolvimento inicial Ainda não há versão pública · FPS tático 5v5 · PC

Evidências

A promessa, medida

Tudo o que afirmamos na página inicial, com sua medição, seu cenário e sua máquina. O que ainda não foi medido diz «pendente».

O objetivo

As mesmas regras para pessoas e máquinas

O BotStrikes parte de uma pergunta: quem vence quando humanos e IAs jogam com exatamente as mesmas regras? Para respondê-la, é preciso um jogo em que uma IA seja só mais um jogador. Ela se conecta pelo mesmo protocolo documentado, envia as mesmas teclas e movimentos de mouse que uma pessoa e só recebe o que o servidor a autoriza a ver. Quem impõe isso é o servidor: não se confia no código de ninguém.

5v5

Tático de verdade

Hoje: recuo fixo que se aprende, precisão que depende do movimento e penetração conforme o material, com duas armas. Rodadas, economia e bomba chegam na F6. Não se adiciona conteúdo até que o núcleo cumpra seus critérios.

64Hz

Antitrapaça primeiro

O servidor decide cada movimento e cada disparo. Só envia os jogadores com linha de visão direta, sem margem: o que está atrás de uma parede não viaja pela rede. Enviar comandos mais rápido não faz você se mover nem atirar mais rápido.

60FPS · UHD 630 · meta

Pensado para qualquer PC

Objetivos: 1080p a 60 FPS numa Intel UHD 630 e 200 FPS ou mais numa GTX 750 Ti, com motor próprio em C++ e menos de 1 GB. Hoje roda só no Linux; o Windows chega na F8.

Status do projeto · 12 set 2026

Onde estamos

O jogo é construído por fases, e cada fase tem critérios que uma máquina verifica. O que não dá para medir, como a sensação ao se mover ou ao atirar, é aprovado por uma pessoa antes de avançar. Ainda não há download público.

  1. F0Ambiente
  2. F1Movimento
  3. F2Disparo
  4. F3aRede
  5. F3bDisparo em rede
  6. F4API para IAs
  7. F5Mapa e gráficos
  8. F6Bomba 5v5
  9. F7Ligas e torneios
  10. F8Windows
  11. F9Conteúdo

FechadaEm andamentoPendente

F3b · falta o teste humano Disparo em rede

Movimento (F1) e disparo local (F2) estão fechados: o fundador os testou e os aceitou para avançar. A rede (F3a) funciona: servidor autoritativo a 64 Hz, transporte criptografado, visão decidida pelo servidor e colisão entre jogadores. Agora o servidor também decide cada disparo:

  • Cadência, munição, recarga, recuo, dispersão, penetração, dano e morte são calculados pelo servidor
  • Compensação de latência limitada a 187,5 ms, sem poder saltar para trás bem na hora do disparo; um atraso sustentado é tratado como uma conexão lenta (risco residual limitado a 187,5 ms)
  • Dispersão com o segredo da partida: ninguém a prevê sem ele
  • Com 100 ms de latência, jitter e 2% de perda, cliente e servidor coincidem em 518 de 519 disparos (cenário sintético, rifle sem dispersão)
  • Só viajam os jogadores com linha de visão, e um jogador morto não recebe ninguém
  • Uma hora de fuzzing do protocolo v2, o vigente: 558 milhões de execuções, zero falhas
  • Auditoria adversarial do disparo em rede: sete achados, cada um corrigido e coberto por um teste
  • Adaptação de relógio entre máquinas: em simulação, com ±1% de deriva durante um minuto, zero comandos perdidos
  • Partida com duas pessoas em duas máquinas diferentes, disparando em rede

Medido · não estimado Orçamentos de um 5v5

Trabalho do servidor por tick, p990,066 ms / 1 ms
Download por jogador, pior caso21.440 B/s / 32.000
Upload por jogador7.744 B/s / 8.000

10 jogadores simulados atirando de verdade durante 10 s no campo de testes (281 disparos, 18 mortes), num i7-10700, contando os cabeçalhos IPv6. O p99 varia entre execuções; todas as registradas ficam abaixo de 0,5 ms. Em amarelo, o que está perto do teto. A medição será repetida com o mapa definitivo.

Oito partidas 5v5 ao mesmo tempo na mesma máquina, cada uma com 5 pessoas e 5 IAs, todas simuladas: tick p99 entre 0,116 e 0,212 ms, com um teto de 2 ms.

Reprodutível: um milhão de passos de simulação dão o mesmo hash, 13f4506939c2211d, no GCC, no GCC com sanitizers e no Clang.

Desafios em aberto

Os problemas que ainda não estão resolvidos, e como planejamos resolvê-los.

  • Mãos humanasOs limites de reação e giro das IAs são provisórios. Calibrá-los exige telemetria de jogadores reais, que ainda não existe.
  • Ajuda de IA onlineUma pessoa assistida por uma IA só pode ser detectada por estatística. Os resultados oficiais de Humanos vs IA serão validados em LAN ou em eventos presenciais.
  • Visão de 360°Às IAs só chega o que cabe no campo visual de uma tela. Para as pessoas, é enviado todo jogador com linha de visão, mesmo que esteja às costas delas; limitá-las também ao seu campo visual é uma decisão em aberto do fundador.
  • Mapa completoA visão do servidor custa mais com mais paredes. Os números de hoje são de um campo pequeno e voltarão a ser medidos com o mapa da F5.
  • Mais de 10 jogadoresO upload já usa 97% do seu teto e, com 16 jogadores, o download passaria dos 32 KB/s no pior caso. É preciso compressão delta antes de qualquer modo maior que 5v5.
  • Computadores mais fracosAbaixo da UHD 630 (por exemplo, netbooks educacionais com gráficos UHD 600, 4 GB e tela de 1366×768) ainda não há objetivo. Se você tem um, queremos medi-lo.
  • Intel no WindowsOs drivers OpenGL da Intel no Windows são fracos. Por isso o plano inclui um backend Direct3D 11 na F8.
  • Código de terceirosReceber IAs de outras pessoas exige isolá-las antes do primeiro torneio. Instalar o Docker não basta para isso: isso será revisado na F4.

Requisitos de hardware · planejados

Pensado para o PC que você já tem

O shooter competitivo é jogado em lan houses, notebooks de escritório e PCs de dez anos atrás. Se o jogo não roda ali, quem vence a comparação entre pessoas e máquinas é o melhor hardware. Por isso o desempenho é um contrato: hoje cada verificação completa exige os orçamentos de rede e de servidor, e antes da F5 uma queda de FPS maior que 5% em relação à linha de base também fará a verificação falhar.

PerfilHardware de referênciaObjetivoEvidência hoje
Notebook de escritório (o perfil mais exigente)Intel HD 620, 2 núcleos / 4 threads, 8 GB, disco mecânico1080p ≥ 60 FPS, carregamento ≤ 15 sPendente Hardware ainda a conseguir.
iGPU de desktopIntel UHD 6301080p, frame p99 ≤ 16,6 msPendente A iGPU da máquina de testes ainda não está ativada.
Placa dedicada antigaGTX 750 Ti · Radeon HD 7870 2 GB≥ 200 FPS; na HD 7870, média ≥ 300 e 1% low ≥ 200Medido Campo de testes na HD 7870: 5.916 FPS de média, p99 0,220 ms. É uma cena pequena, não uma partida 5v5.
Servidor1 núcleo de um i7-10700 por partidaTick p99 ≤ 1 ms num 5v5Medido 0,066 ms com 10 jogadores simulados atirando, campo de testes.
ConexãoQualquer banda larga doméstica≤ 32 KB/s de download e ≤ 8 KB/s de upload por jogadorMedido 21,4 e 7,7 KB/s no pior caso.
Memória e CPUComputador com 4 GB ou maisRAM ≤ 1,5 GB, VRAM ≤ 384 MB, CPU ≤ 5 ms por frame numa CPU de 4 núcleos de 2015Pendente Será medido com o mapa e os gráficos da F5.
InstalaçãoDisco rígido ou SSD< 1 GB na primeira versão públicaPendente Ainda não há instalador.
SistemaLinux hoje; Windows 10/11 na F8Mesmos orçamentos no Windows com a UHD 630Pendente Ainda não há build de Windows.

Por que estes números: a UHD 630 e a HD 620 são gráficos integrados comuns em computadores de escritório de 2017–2018; 200 FPS numa placa de 2014 deixam margem para monitores de alta frequência; 1 GB dá para baixar em conexões lentas. Ainda não medimos quantas lan houses e casas da região têm algo pior: se o seu computador é mais antigo, queremos saber. O que não está medido diz “pendente”.

Comparar evidências, não trocar previsões.

Não pedimos que você acredite no BotStrikes. Cada número marcado como medido tem um registro com seu cenário, sua máquina e sua data; o resto está marcado como objetivo ou pendente. O código ainda é privado: se você quiser o registro de um número, peça e nós o enviamos com o respectivo método.

Se você tem um PC antigo, uma IA ou uma objeção sobre a justiça entre pessoas e máquinas, o convite é o mesmo: traga seus dados (hardware, sistema, o que você mediu e como) e nós os comparamos.

Enviar evidências