Silent aim en RedM: el disparo que cae donde nadie apuntó
El silent aim en RedM no mueve la mira, mueve la bala. Cómo lo demuestra el servidor al poner el relato del tirador junto al de la víctima.
Un jugador muere en medio de la calle. Repasa su propia grabación fotograma a fotograma: el hombre del otro lado del camino miraba hacia otra parte, con el arma a la altura de la cadera, y la bala llegó a su cráneo de todos modos. Nadie de tu staff sabe decir qué pasó, porque en pantalla no pasó nada anormal. Eso es exactamente lo que hace el silent aim en RedM, y por eso es la trampa más difícil de sancionar en un servidor de rol.
Qué es en realidad
Un aimbot clásico mueve la cámara: clava la mira sobre el objetivo, y eso se ve. El silent aim nunca toca la cámara. Deja que el jugador apunte donde quiera y luego reescribe el disparo al salir. El cliente le dice al servidor: origen del disparo, dirección, entidad alcanzada, punto de impacto. El cheat edita esos campos después del clic y antes de la transmisión.
El resultado es una contradicción pura: el vector de puntería declarado apunta al norte, el impacto declarado está al oeste, y el juego aplica el daño igualmente. En RDR3 produce escenas muy reconocibles cuando sabes leerlas: un revólver que acierta a ochenta metros detrás de una roca, un disparo apuntado al suelo que mata a un jugador en un balcón, un objetivo que cae mientras el tirador recarga caminando.
La variante de alta calidad es aún más discreta: el cheat desvía solo unos grados, lo justo para convertir un fallo en una baja. El jugador parece legítimo. Simplemente tiene un porcentaje de aciertos que nadie más tiene.
Por qué el ojo humano no puede zanjarlo
Tres razones, y se acumulan:
La víctima nunca ve el disparo. Ve la consecuencia. Lo que recibe su máquina ya es la versión corregida por el cheat, así que el impacto cae en una posición verosímil.
El tirador no tiene nada que esconder en pantalla. Ni bloqueo de cámara ni movimiento inhumano. Una grabación de su propia pantalla parecería inocente.
La latencia lo difumina todo. En un servidor concurrido, de doscientos a trescientos milisegundos separan de forma habitual lo que ve un jugador de lo que ve el otro. Un disparo que parece imposible puede ser una desincronización normal, y lo contrario también es cierto.
Por eso el silent aim sobrevive meses en servidores bien administrados. Llegan reportes, los admins van a mirar, no ven nada, cierran el ticket. El tramposo aprende que no lo pillarán a simple vista y juega más a cara descubierta cada semana.
La única prueba que se sostiene: dos relatos del mismo disparo
Un disparo no es un evento, son dos relatos. El tirador describe su disparo. La víctima describe el impacto que recibió. Esos dos relatos vienen de dos máquinas distintas, y el cheat solo corre en una de ellas. Ese es el defecto estructural del silent aim: para mantenerse coherente, tendría que corromper también el ordenador de la víctima.
Así que el servidor guarda los dos, por separado. Del tirador: dónde estaba su cámara, hacia qué dirección apuntaba, qué arma, exactamente cuándo. De la víctima: de dónde vino el proyectil, qué parte del cuerpo, cuánto daño. Luego se emparejan los dos dentro de una ventana de tiempo corta y se pregunta si describen el mismo mundo.
Concretamente hacemos tres preguntas, en este orden. Ninguna basta por sí sola: lo que construye el caso es su acumulación.
1. ¿Estaba la cámara sobre alguien?
Antes del impacto, una pregunta sencilla: en el momento del disparo, ¿el vector de puntería del tirador cruzaba un objetivo? No el objetivo correcto: un objetivo. Un jugador que daña a una entidad mientras su puntería no apuntaba estrictamente a nadie no ha fallado su disparo, nunca hizo el gesto.
Es el caso más limpio, y también el que evita un cheat bien ajustado: un buen silent aim mantiene un objetivo verosímil en algún punto del eje para no ser atrapado aquí.
2. ¿La víctima es a quien se apuntaba?
Segunda pregunta: ¿la entidad a la que el tirador declara haber apuntado es la misma que recibió realmente el proyectil? Una discrepancia entre ambas (puntería sobre A, impacto confirmado por B) no tiene ninguna explicación legítima. Una bala no cambia de destinatario en pleno vuelo.
3. ¿Es físicamente sostenible el ángulo?
Después, la medida cuantitativa: el ángulo entre la dirección que declaró el tirador y el vector que va realmente de él al impacto que reportó la víctima. Un disparo honesto da, como mucho, un desvío de unos pocos grados, explicado por el retroceso, la dispersión del arma y el movimiento de ambos jugadores mientras viaja la bala.
Solo consideramos sospechoso el desvío por encima de grados, y solo cuando se repite en varios disparos correlados dentro del mismo tiroteo. El umbral exacto y el número de repeticiones no se publican: un desarrollador de cheats que los conoce fija su desviación justo por debajo y vuelve a ser invisible.
No publicado/Los umbrales de detección nunca se publican: un valor conocido es un valor por debajo del cual se ajusta un cheat.
La repetición es lo importante. Un único disparo con mucho desvío es una desincronización. Doce disparos con mucho desvío en el mismo enfrentamiento es un programa.
El expediente que entregas a un administrador
Una detección que no sabe contar su propia historia no vale nada: el jugador la discutirá, y parte de tu comunidad lo respaldará. Lo que se sostiene en esa conversación son los dos relatos puestos uno junto al otro, disparo a disparo.
- tirador
- posición, dirección de puntería, arma, marca de tiempo del servidor
- objetivo en el eje
- ninguno, o el id de la entidad apuntada
- víctima
- id, punto de impacto, zona del cuerpo, daño
- desvío angular
- entre la puntería declarada y el impacto confirmado
- latencia
- retraso medido entre los dos relatos
- recurrencia
- número de disparos divergentes en el mismo tiroteo
A partir de ahí la conversación cambia de naturaleza. Ya no dices "el anticheat lo ha marcado", muestras once disparos en los que la puntería del jugador y la herida de su víctima no pueden ser ciertas a la vez.
Lo que este método no puede hacer
Tres límites, que preferimos escribir nosotros mismos.
Hace falta una víctima jugador. Toda la demostración descansa en un segundo testigo. Un tramposo que solo dispara a NPC, animales o caballos no produce ninguna corroboración: no hay nadie al otro lado que contradiga su relato. Lo atraparemos de otra manera, o no lo atraparemos.
Una desviación minúscula queda dentro del ruido. Un silent aim ajustado a uno o dos grados es indistinguible del retroceso y la latencia. Podríamos hacerlo detectable bajando el umbral, a costa de alertas en tiroteos honestos, y un anticheat que grita sin parar acaba ignorado, que es el tema del artículo sobre falsos positivos. Así que aceptamos perdernos el extremo bajo del espectro antes que acusar a tus habituales.
Una conexión degradada produce ruido. Un jugador con unos 400 ms inestables genera desvíos de forma natural. La ventana de correlación lo tiene en cuenta, y los disparos cuya latencia supera lo que la medida puede absorber se descartan, es decir, se pierden. Una mala conexión protege un poco al tramposo; es el precio de no banear a un jugador con internet por satélite.
La versión corta
- 1
El silent aim no mueve la puntería, reescribe el disparo declarado al servidor: en pantalla no aparece nada anormal.
- 2
Ningún testigo humano puede dar fe de él, ni la víctima ni una grabación del tirador.
- 3
La prueba viene de que el servidor confronta el relato del tirador con el de la víctima: objetivo en el eje, identidad de la víctima, desvío angular.
- 4
Un disparo divergente es un incidente de red; una serie de disparos divergentes es un programa.
- 5
Sin víctima jugador, sin desvío medible o con latencia demasiado alta, el método no concluye, y lo decimos.
Los expedientes de disparos correlados se pueden leer con datos reales en el panel de demostración, y los precios son públicos. Baobab anticheat presenta toda la pila de detección a la que pertenece esta correlación de disparos.