BotStrikes

demo · 64 Hz · tick 0004096

En desarrollo FPS táctico 5v5 · PC · fase actual: API para IAs

HumansvsMachines

Humanos e inteligencias artificiales en la misma partida, con las mismas reglas, la misma información y los mismos controles. Un shooter táctico pensado para correr en PCs viejos.

UserCmd v2 · 14 bytescliente → servidor · 64 por segundo
Humano 01 00 00 0081 0000 4000 000000FB 0F IA 01 00 00 0004 00A6 CF00 000000FC 0F secuenciateclasyawpitcharmares.tick visto

Humano: W + disparo · yaw 90,0° · pitch 0,0° · ve el tick 4091IA: A · yaw 292,0° · pitch 0,0° · ve el tick 4092

El mismo formato para personas e IAs: los bytes no dicen quién los escribió. El rol viaja en el token firmado de la conexión, y con él el servidor aplica la percepción y los límites de cada liga.

El objetivo

Las mismas reglas para personas y máquinas

BotStrikes parte de una pregunta: ¿quién gana cuando humanos e IAs juegan con exactamente las mismas reglas? Para responderla hace falta un juego donde una IA sea un jugador más. Se conecta por el mismo protocolo documentado, envía las mismas teclas y movimientos de ratón que una persona y solo recibe lo que el servidor le autoriza a ver. Lo impone el servidor: no se confía en el código de nadie.

5v5

Táctico de verdad

Hoy: retroceso fijo que se aprende, precisión que depende del movimiento y penetración según el material, con dos armas. Rondas, economía y bomba llegan en F6. No se agrega contenido hasta que el núcleo cumpla sus criterios.

64Hz

Anti-trampa primero

El servidor decide cada movimiento y cada disparo. Solo envía los jugadores con línea de visión directa, sin margen: lo que está detrás de una pared no viaja por la red. Enviar comandos más rápido no mueve ni dispara más rápido.

60FPS · UHD 630

Pensado para cualquier PC

Objetivos: 1080p a 60 FPS en una Intel UHD 630 y 200 FPS o más en una GTX 750 Ti, con motor propio en C++ y menos de 1 GB. Hoy corre solo en Linux; Windows llega en F8.

Modalidades

Cuatro formas de enfrentarse

Todas usan el mismo servidor y el mismo comando de 14 bytes. Cambia quién está del otro lado, y cuánto se parece la mano de la IA a la de una persona.

PersonaIA

Humanos vs Humanos

Liga Humanos

El shooter táctico de siempre, sobre un servidor que no deja información oculta para robar.

Humanos vs IA

Liga Humano-equivalente

El servidor ya aplica a la IA límites de manos provisionales: ve el mundo con 150 ms de retraso y gira como máximo a 1.800 °/s. Todavía no están validados; se calibrarán con datos de jugadores reales y se publicarán por temporada.

IA vs IA

Liga IA Libre

La liga de ingeniería. Entre máquinas no hay límites de manos: puntería y reflejos libres. Lo que nunca cambia es la información: cada IA recibe solo lo que vería una persona en su pantalla.

Mixto

Liga Mixta

Personas e IAs en el mismo equipo. Si hay una persona en la partida, todas las IAs juegan con los límites de manos.

Estado del proyecto · 12 sep 2026

Dónde estamos

El juego se construye por fases, y cada fase tiene criterios que verifica una máquina. Lo que no se puede medir, como la sensación al moverse o al disparar, lo aprueba una persona antes de avanzar. Todavía no hay descarga pública.

  1. F0Entorno
  2. F1Movimiento
  3. F2Disparo
  4. F3aRed
  5. F3bDisparo en red
  6. F4API para IAs
  7. F5Mapa y gráficos
  8. F6Bomba 5v5
  9. F7Ligas y torneos
  10. F8Windows
  11. F9Contenido

CerradaEn cursoPendiente

F3b · falta la prueba humanaDisparo en red

Movimiento (F1) y disparo local (F2) están cerrados: el fundador los probó y los aceptó para avanzar. La red (F3a) funciona: servidor autoritativo a 64 Hz, transporte cifrado, visión decidida por el servidor y colisión entre jugadores. Ahora el servidor también decide cada disparo:

  • Cadencia, munición, recarga, retroceso, dispersión, penetración, daño y muerte los calcula el servidor
  • Compensación de latencia acotada a 187,5 ms, sin poder saltar hacia atrás justo al disparar; un retraso sostenido se trata como una conexión lenta (riesgo residual acotado a 187,5 ms)
  • Dispersión con el secreto de la partida: nadie la predice sin él
  • Con 100 ms de latencia, jitter y 2 % de pérdida, cliente y servidor coinciden en 518 de 519 disparos (escenario sintético, rifle sin dispersión)
  • Solo viajan los jugadores con línea de visión, y un jugador muerto no recibe a nadie
  • Una hora de fuzzing del protocolo v2, el vigente: 458 millones de ejecuciones, cero fallos
  • Auditoría adversarial del disparo en red: siete hallazgos, cada uno corregido y cubierto por una prueba
  • Adaptación de reloj entre máquinas: en simulación, con ±1 % de deriva durante un minuto, cero comandos perdidos
  • Partida con dos personas en dos máquinas distintas, disparando en red

Medido · no estimadoPresupuestos de un 5v5

Trabajo del servidor por tick, p990,066 ms / 1 ms
Bajada por jugador, peor caso21.440 B/s / 32.000
Subida por jugador7.744 B/s / 8.000

10 jugadores simulados disparando de verdad durante 10 s en el campo de pruebas (281 disparos, 18 muertes), en un i7-10700, contando las cabeceras IPv6. El p99 varía entre corridas; todas las registradas quedan por debajo de 0,5 ms. En amarillo, lo que está cerca del tope. Se repetirá con el mapa definitivo.

Ocho partidas 5v5 a la vez en la misma máquina, cada una con 5 personas y 5 IAs, todas simuladas: tick p99 entre 0,116 y 0,212 ms, con un tope de 2 ms.

Reproducible: un millón de pasos de simulación dan el mismo hash, 13f4506939c2211d, en GCC, GCC con sanitizers y Clang.

Desafíos abiertos

Los problemas que todavía no están resueltos, y cómo planeamos resolverlos.

  • Manos humanasLos límites de reacción y giro de las IAs son provisionales. Calibrarlos exige telemetría de jugadores reales, que todavía no existe.
  • Ayuda de IA en líneaUna persona asistida por una IA solo se puede detectar por estadística. Los resultados oficiales de Humanos vs IA se validarán en LAN o en eventos presenciales.
  • Visión de 360°A las IAs solo les llega lo que cabe en el campo visual de una pantalla. A las personas se les envía todo jugador con línea de visión, aunque esté a su espalda; limitarlas también a su campo visual es una decisión abierta del fundador.
  • Mapa completoLa visión del servidor cuesta más con más paredes. Las cifras de hoy son de un campo pequeño y se volverán a medir con el mapa de F5.
  • Más de 10 jugadoresLa subida ya usa el 97 % de su tope y, con 16 jugadores, la bajada superaría los 32 KB/s en el peor caso. Hace falta compresión delta antes de cualquier modo mayor que 5v5.
  • Equipos más débilesPor debajo de la UHD 630 (por ejemplo, netbooks educativas con gráficos UHD 600, 4 GB y pantalla de 1366×768) todavía no hay objetivo. Si tienes uno, queremos medirlo.
  • Intel en WindowsLos drivers OpenGL de Intel en Windows son débiles. Por eso el plan incluye un backend Direct3D 11 en F8.
  • Código de tercerosRecibir IAs de otras personas exige aislarlas antes del primer torneo. Instalar Docker no alcanza para eso: se revisará en F4.

Requisitos de hardware · planificados

Pensado para el PC que ya tienes

El shooter competitivo se juega en cibercafés, notebooks de oficina y PCs de hace diez años. Si el juego no corre ahí, la comparación entre personas y máquinas la gana el mejor hardware. Por eso el rendimiento es un contrato: hoy cada verificación completa exige los presupuestos de red y de servidor, y antes de F5 una caída de FPS mayor al 5 % contra la línea base también romperá la verificación.

PerfilHardware de referenciaObjetivoEvidencia hoy
Notebook de oficina (el perfil más exigente)Intel HD 620, 2 núcleos / 4 hilos, 8 GB, disco mecánico1080p ≥ 60 FPS, carga ≤ 15 sPendiente Hardware por conseguir.
iGPU de escritorioIntel UHD 6301080p, frame p99 ≤ 16,6 msPendiente La iGPU de la máquina de pruebas aún no está activada.
Dedicada viejaGTX 750 Ti · Radeon HD 7870 2 GB≥ 200 FPS; en la HD 7870, media ≥ 300 y 1 % bajo ≥ 200Medido Campo de pruebas en la HD 7870: 5.916 FPS de media, p99 0,220 ms. Es una escena chica, no una partida 5v5.
Servidor1 núcleo de un i7-10700 por partidaTick p99 ≤ 1 ms en un 5v5Medido 0,066 ms con 10 jugadores simulados disparando, campo de pruebas.
ConexiónCualquier banda ancha doméstica≤ 32 KB/s de bajada y ≤ 8 KB/s de subida por jugadorMedido 21,4 y 7,7 KB/s en el peor caso.
Memoria y CPUEquipo de 4 GB o másRAM ≤ 1,5 GB, VRAM ≤ 384 MB, CPU ≤ 5 ms por frame en una CPU de 4 núcleos de 2015Pendiente Se medirá con el mapa y los gráficos de F5.
InstalaciónDisco duro o SSD< 1 GB en la primera versión públicaPendiente Todavía no hay instalador.
SistemaLinux hoy; Windows 10/11 en F8Mismos presupuestos en Windows con la UHD 630Pendiente No hay build de Windows todavía.

Por qué estos números: la UHD 630 y la HD 620 son gráficos integrados comunes en equipos de oficina de 2017–2018; 200 FPS en una tarjeta de 2014 deja margen para monitores de alta frecuencia; 1 GB se descarga en conexiones lentas. Todavía no medimos cuántos cibercafés y hogares de la región tienen algo peor: si tu equipo es más viejo, queremos saberlo. Lo que no está medido dice «pendiente».

Comparar evidencia, no intercambiar predicciones.

No te pedimos que creas en BotStrikes. Cada cifra marcada como medida tiene un registro con su escenario, su máquina y su fecha; el resto está marcado como objetivo o pendiente. El código todavía es privado: si quieres el registro de una cifra, pídelo y te lo enviamos con su método.

Si tienes un PC viejo, una IA o una objeción sobre la justicia entre personas y máquinas, la invitación es la misma: trae tus datos (hardware, sistema, qué mediste y cómo) y los comparamos.

Enviar evidencia

Sponsors

Pon el premio. Nosotros ponemos la arena.

Buscamos patrocinadores fundadores para los premios de los primeros torneos: humanos contra humanos, humanos contra IA, IA contra IA y equipos mixtos. La meta es que cada partida se pueda reproducir y auditar, y que los resultados oficiales de Humanos vs IA se jueguen en LAN.

Hoy no pedimos dinero: pedimos una carta de intención sin compromiso. Los premios se definirán con bases públicas, entidad organizadora y fechas cuando exista la plataforma de torneos (fase F7).

Hablemos de patrocinio

contacto@botstrikes.com

Ideas de premio

Copa por modalidad
«Copa [tu marca] · IA vs IA»: el premio de una modalidad lleva tu nombre.
Desafío humano
Para el primer equipo de personas que venza a la IA campeona.
Premio de ingeniería
Para la mejor IA con límites humanos de la temporada.
En especie
Hardware, créditos de cómputo o becas para quienes desarrollan IAs.

Qué podría recibir tu marca

  • Tu nombre en el torneo y en el premio.
  • Presencia en la vista de espectador y en los replays, cuando existan (F6–F7).
  • Un lugar en botstrikes.com.
  • Contacto con quienes construyan IAs para la plataforma.

Para quienes programan IAs

Tu IA, con las mismas reglas que todos

  • Protocolo documentado. Tu IA es un cliente de red más: el servidor no tiene atajos ni ganchos especiales.
  • La información de una persona. Recibe solo lo que una persona vería en su pantalla: jugadores en su campo visual, con línea de visión y cubriendo al menos 2 × 2 píxeles a 1080p. Lo aplica el servidor.
  • Las manos de un teclado y un ratón. Un comando por tick: teclas mantenidas, ángulos de vista y arma.

La percepción y los límites de manos ya corren en el servidor, y el SDK Python y el gym de entrenamiento ya funcionan en pruebas internas, aunque todavía no se publican. El protocolo ya está documentado.

Leer la documentación
Python · protocolo v2
# Un UserCmd: lo único que envía un jugador, persona o IA.
cmd = struct.pack("<IHHhBBH",
    sequence,          # sube de a uno por tick
    FORWARD | FIRE,    # teclas mantenidas
    yaw_units(90.0),   # 65.536 unidades por vuelta
    pitch_units(0.0),  # 1/256 de grado
    RIFLE, 0,          # arma pedida, reservado
    view_tick)         # tick al que dibujabas a los demás
assert len(cmd) == 14