BotStrikes

demo · 64 Hz · tick 0004096

In development 5v5 tactical FPS · PC · current phase: API for AIs

HumansvsMachines

Humans and artificial intelligences in the same match, under the same rules, with the same information and the same controls. A tactical shooter designed to run on old PCs.

UserCmd v2 · 14 bytesclient → server · 64 per second
Human 01 00 00 0081 0000 4000 000000FB 0F AI 01 00 00 0004 00A6 CF00 000000FC 0F sequencekeysyawpitchweaponres.tick seen

Human: W + fire · yaw 90.0° · pitch 0.0° · sees tick 4091AI: A · yaw 292.0° · pitch 0.0° · sees tick 4092

The same format for people and AIs: the bytes don’t say who wrote them. The role travels in the connection’s signed token, and with it the server applies each league’s perception and limits.

The goal

The same rules for people and machines

BotStrikes starts from a question: who wins when humans and AIs play under exactly the same rules? Answering it takes a game where an AI is just another player. It connects through the same documented protocol, sends the same keys and mouse movements as a person, and only receives what the server authorizes it to see. The server enforces this: nobody’s code is trusted.

5v5

Truly tactical

Today: fixed, learnable recoil, accuracy that depends on movement, and penetration by material, with two weapons. Rounds, economy and the bomb arrive in F6. No content is added until the core meets its criteria.

64Hz

Anti-cheat first

The server decides every movement and every shot. It only sends players in direct line of sight, with no margin: what is behind a wall does not travel over the network. Sending commands faster does not move or shoot faster.

60FPS · UHD 630

Designed for any PC

Targets: 1080p at 60 FPS on an Intel UHD 630 and 200 FPS or more on a GTX 750 Ti, with an in-house C++ engine and under 1 GB. Today it runs only on Linux; Windows arrives in F8.

Modes

Four ways to face off

All of them use the same server and the same 14-byte command. What changes is who is on the other side, and how closely the AI’s hand resembles a person’s.

PersonAI

Humans vs Humans

Humans league

The classic tactical shooter, on a server that leaves no hidden information to steal.

Humans vs AI

Human-equivalent league

The server already applies provisional hand limits to the AI: it sees the world with a 150 ms delay and turns at most at 1,800 °/s. They are not validated yet; they will be calibrated with data from real players and published each season.

AI vs AI

Free AI league

The engineering league. Between machines there are no hand limits: aim and reflexes are unrestricted. What never changes is the information: each AI receives only what a person would see on their screen.

Mixed

Mixed league

People and AIs on the same team. If there is a person in the match, all AIs play with the hand limits.

Project status · Sep 12, 2026

Where we are

The game is built in phases, and each phase has criteria that a machine verifies. What cannot be measured, such as how moving or shooting feels, is approved by a person before moving on. There is no public download yet.

  1. F0Environment
  2. F1Movement
  3. F2Shooting
  4. F3aNetwork
  5. F3bNetworked shooting
  6. F4API for AIs
  7. F5Map and graphics
  8. F65v5 bomb
  9. F7Leagues and tournaments
  10. F8Windows
  11. F9Content

ClosedIn progressPending

F3b · human test pendingNetworked shooting

Movement (F1) and local shooting (F2) are closed: the founder tested them and accepted them to move forward. The network (F3a) works: authoritative server at 64 Hz, encrypted transport, visibility decided by the server and collision between players. Now the server also decides every shot:

  • Fire rate, ammo, reloading, recoil, spread, penetration, damage and death are computed by the server
  • Lag compensation capped at 187.5 ms, with no way to jump back in time right as you fire; a sustained delay is treated as a slow connection (residual risk capped at 187.5 ms)
  • Spread uses the match secret: nobody can predict it without it
  • With 100 ms of latency, jitter and 2 % loss, client and server agree on 518 of 519 shots (synthetic scenario, rifle without spread)
  • Only players in line of sight are sent, and a dead player receives no one
  • One hour of fuzzing of protocol v2, the current one: 458 million executions, zero failures
  • Adversarial audit of networked shooting: seven findings, each one fixed and covered by a test
  • Clock adaptation between machines: in simulation, with ±1 % drift for one minute, zero lost commands
  • Match with two people on two different machines, shooting over the network

Measured · not estimatedBudgets for a 5v5

Server work per tick, p990.066 ms / 1 ms
Download per player, worst case21,440 B/s / 32,000
Upload per player7,744 B/s / 8,000

10 simulated players actually shooting for 10 s on the test range (281 shots, 18 deaths), on an i7-10700, counting IPv6 headers. The p99 varies between runs; all recorded runs stay below 0.5 ms. In yellow, what is close to the cap. It will be repeated with the final map.

Eight 5v5 matches at once on the same machine, each with 5 people and 5 AIs, all simulated: tick p99 between 0.116 and 0.212 ms, with a cap of 2 ms.

Reproducible: one million simulation steps produce the same hash, 13f4506939c2211d, on GCC, GCC with sanitizers and Clang.

Open challenges

The problems that are not solved yet, and how we plan to solve them.

  • Human handsThe reaction and turn limits for AIs are provisional. Calibrating them requires telemetry from real players, which does not exist yet.
  • Online AI assistanceA person assisted by an AI can only be detected statistically. Official Humans vs AI results will be validated on LAN or at in-person events.
  • 360° visionAIs only receive what fits within the field of view of a screen. People are sent every player in line of sight, even if they are behind them; limiting people to their field of view as well is an open decision for the founder.
  • Full mapServer-side visibility costs more with more walls. Today’s figures come from a small range and will be measured again with the F5 map.
  • More than 10 playersUpload already uses 97 % of its cap and, with 16 players, download would exceed 32 KB/s in the worst case. Delta compression is needed before any mode larger than 5v5.
  • Weaker machinesBelow the UHD 630 (for example, educational netbooks with UHD 600 graphics, 4 GB and a 1366×768 screen) there is no target yet. If you have one, we want to measure it.
  • Intel on WindowsIntel’s OpenGL drivers on Windows are weak. That is why the plan includes a Direct3D 11 backend in F8.
  • Third-party codeAccepting AIs from other people requires isolating them before the first tournament. Installing Docker is not enough for that: it will be reviewed in F4.

Hardware requirements · planned

Designed for the PC you already have

Competitive shooters are played in internet cafés, on office laptops and on ten-year-old PCs. If the game doesn’t run there, the comparison between people and machines is won by the best hardware. That is why performance is a contract: today every full verification enforces the network and server budgets, and before F5 an FPS drop greater than 5 % against the baseline will also break the verification.

ProfileReference hardwareTargetEvidence today
Office laptop (the most demanding profile)Intel HD 620, 2 cores / 4 threads, 8 GB, hard disk drive1080p ≥ 60 FPS, load ≤ 15 sPending Hardware still to be obtained.
Desktop iGPUIntel UHD 6301080p, frame p99 ≤ 16.6 msPending The test machine’s iGPU is not enabled yet.
Old dedicated GPUGTX 750 Ti · Radeon HD 7870 2 GB≥ 200 FPS; on the HD 7870, average ≥ 300 and 1 % low ≥ 200Measured Test range on the HD 7870: 5,916 FPS average, p99 0.220 ms. It is a small scene, not a 5v5 match.
Server1 core of an i7-10700 per matchTick p99 ≤ 1 ms in a 5v5Measured 0.066 ms with 10 simulated players shooting, test range.
ConnectionAny home broadband≤ 32 KB/s download and ≤ 8 KB/s upload per playerMeasured 21.4 and 7.7 KB/s in the worst case.
Memory and CPUMachine with 4 GB or moreRAM ≤ 1.5 GB, VRAM ≤ 384 MB, CPU ≤ 5 ms per frame on a 4-core CPU from 2015Pending It will be measured with the F5 map and graphics.
InstallationHard drive or SSD< 1 GB in the first public versionPending There is no installer yet.
SystemLinux today; Windows 10/11 in F8Same budgets on Windows with the UHD 630Pending There is no Windows build yet.

Why these numbers: the UHD 630 and the HD 620 are integrated graphics common in office machines from 2017–2018; 200 FPS on a 2014 card leaves headroom for high-refresh-rate monitors; 1 GB can be downloaded on slow connections. We have not yet measured how many internet cafés and homes in the region have something worse: if your machine is older, we want to know. What is not measured says “pending”.

Compare evidence, don’t trade predictions.

We don’t ask you to believe in BotStrikes. Every figure marked as measured has a record with its scenario, its machine and its date; the rest is marked as a target or pending. The code is still private: if you want the record for a figure, ask for it and we will send it to you with its method.

If you have an old PC, an AI or an objection about fairness between people and machines, the invitation is the same: bring your data (hardware, system, what you measured and how) and we compare them.

Send evidence

Sponsors

You put up the prize. We provide the arena.

We are looking for founding sponsors for the prizes of the first tournaments: humans against humans, humans against AI, AI against AI and mixed teams. The goal is for every match to be reproducible and auditable, and for official Humans vs AI results to be played on LAN.

Today we are not asking for money: we are asking for a non-binding letter of intent. Prizes will be defined with public rules, an organizing entity and dates once the tournament platform exists (phase F7).

Let’s talk sponsorship

contacto@botstrikes.com

Prize ideas

Cup per mode
“[Your brand] Cup · AI vs AI”: a mode’s prize carries your name.
Human challenge
For the first team of people to beat the champion AI.
Engineering prize
For the season’s best AI with human limits.
In kind
Hardware, compute credits or grants for people who develop AIs.

What your brand could receive

  • Your name on the tournament and on the prize.
  • Presence in the spectator view and in replays, once they exist (F6–F7).
  • A spot on botstrikes.com.
  • Contact with the people who build AIs for the platform.

For people who program AIs

Your AI, under the same rules as everyone

  • Documented protocol. Your AI is just another network client: the server has no shortcuts or special hooks.
  • A person’s information. It receives only what a person would see on their screen: players in its field of view, in line of sight and covering at least 2 × 2 pixels at 1080p. The server enforces it.
  • The hands of a keyboard and mouse. One command per tick: held keys, view angles and weapon.

Perception and hand limits already run on the server, and the Python SDK and the training gym already work in internal tests, although they are not published yet. The protocol is already documented.

Read the documentation
Python · protocol v2
# A UserCmd: the only thing a player sends, person or AI.
cmd = struct.pack("<IHHhBBH",
    sequence,          # goes up by one each tick
    FORWARD | FIRE,    # held keys
    yaw_units(90.0),   # 65,536 units per turn
    pitch_units(0.0),  # 1/256 of a degree
    RIFLE, 0,          # requested weapon, reserved
    view_tick)         # tick at which you were drawing the others
assert len(cmd) == 14