¿Evitar que los jugadores hagan wallhacking en un FPS en línea?

14

¿Por qué seguimos quejándonos de los wallhackers en los juegos de disparos en primera persona para jugadores múltiples?

¿No es posible realizar el sacrificio de oclusión para todos los jugadores del lado del servidor? Por ejemplo, ¿enviar información del jugador xyz al cliente solo cuando el jugador es visible en el tronco del cliente y no está ocluido por ningún objeto? Incluso si la geometría de colisión es muy, muy simplificada, la mayoría de las veces el tramposo no recibirá información táctica.

¿Por qué no haces esto?

Patryk Czachurski
fuente

Respuestas:

19

¿Crees que estás rezagado ahora? Solo espere hasta que tenga que obtener información de oclusión en tiempo real del servidor. Ahora puede caminar detrás de una pared y los malos aparecerán repentinamente a la vista cuando el servidor se ponga al día y le envíe los datos de oclusión actualizados.

Entonces mi comentario sarcástico lo dice todo. Probablemente, la razón principal para no hacerlo es el retraso y la carga del servidor. Si desea que el servidor sepa cuándo otro jugador es visible para usted, eso significa que el servidor debe saber exactamente qué geometría está mirando cada jugador y calcular esa oclusión.

Estoy de acuerdo en que las hazañas como la piratería de muros pueden hacer que el juego no sea divertido. Y veo que los desarrolladores se preocuparían por esto porque quieren hacer que el juego sea lo más divertido posible. Sin embargo, cuando los desarrolladores lleguen al punto en que sus contramedidas de trampa / pirateo disminuyan el juego y / o la satisfacción del cliente, perderán muchos más clientes que si lo hubieran dejado solo . Ver DRM .

MichaelHouse
fuente
3
+1 por instar a que las contramedidas anti-trampa / pirateo nunca disminuyan la experiencia de un cliente inocente.
doppelgreener
17

Es factible y ya se ha probado en investigaciones anteriormente; Para una comparación de los esquemas de gestión de intereses, consulte http://dl.acm.org/citation.cfm?id=1230069

Como dijo Byte56, puede requerir más CPU, pero puede reducir su ancho de banda y reducir la probabilidad de ataques de pared.

Y como dijo Byte56, un área de interés estrictamente limitada al área de oclusión del jugador puede reducir la capacidad de respuesta del lado del cliente: las emboscadas tomarán al menos media vuelta para mostrarse. Sin embargo, puede hacer que el área de interés del jugador sea un poco más grande que el área de oclusión, de modo que el cliente reciba la emboscada del oponente unos segundos antes de que ocurra. De esa manera, los hacks de pared todavía son posibles, pero solo en el último momento.

gentimouton
fuente
Bien, gracias por aportar una investigación real a las respuestas. Bienvenido a GDSE.
MichaelHouse
4

La respuesta breve es que sí, es posible el sacrificio de oclusión del lado del servidor, pero a menudo no se hace debido a la complejidad y el beneficio limitado.

Tenga en cuenta que para una gran parte de los juegos FPS modernos, la oclusión completa es rara. Los personajes en estos días usan cobertura o se esconden en la hierba, y los uniformes y el camuflaje reales tienen un impacto en la visibilidad. Las paredes y los pasillos todavía juegan una gran parte de la batalla en línea, pero no tanto como en años anteriores.

Los juegos con muchos corredores estrechos y superficies opacas pueden (a veces tienen) utilizar la eliminación de oclusiones en el servidor para el filtrado de eventos. Esto simplemente no funciona tan bien para entornos abiertos grandes y juegos realistas de cover / camo.

El pirateo de muros también es solo una pequeña parte de las trampas en los juegos en línea, y arreglar cada pirateo individual no ha funcionado bien hasta ahora. Los mejores enfoques han sido simplemente la creación de partidos de alta calidad y los sistemas de clasificación de jugadores que filtran a los tramposos y disminuyen la probabilidad de que se los ponga en un partido frustrante.

Sean Middleditch
fuente
-4

¿Los desarrolladores de juegos no pueden escribir un programa paralelo que básicamente toma el control total de la PC y no permite que se cargue ningún software de terceros mientras se ejecuta el juego? ¿No tienen que cargar los inyectores después de que el juego se inicia y se asigna a la memoria? Entonces, solo enumere en negro todo lo que no esté relacionado con el sistema operativo de la ejecución. Tienen que hacer un tipo de UAC para evitar que los servicios se carguen después de cargar el juego.

Mi otra idea para evitar completamente la piratería es un poco más compleja e implica ejecutar juegos como un sistema operativo Linux Live Drive. Básicamente, el juego no usaría Windows en absoluto, sino que usaría su propio sistema operativo despojado que está diseñado para tener solo carga de juegos. Por lo tanto, los jugadores pueden querer transmitir o reproducir música mientras juegan, pero esta nueva forma de ejecutar un juego no lo permitirá ... Gran cosa, los desarrolladores podrían incluir en la lista blanca programas y otras cosas, pero no me molestaría ... estás tratando de jugar un juego, si quieres tener varias tareas con una computadora portátil cerca, etc. Esencialmente quieres ejecutar el juego en modo sandboxie con encriptación. Creo que eso es lo que se llama. Es como ejecutar un juego en un entorno de sistema operativo virtual que es 100% controlado por el creador del juego.

Y este modo sandboxie sería muy similar a cómo funcionan las consolas y los juegos de la consola. No vemos muchos hacks en la consola. ¿Me pregunto por qué? Debido a que no pueden cargarlos en la consola y si pudieran, las consolas no serían capaces de leerlo y reconocerlo.

TJ L
fuente
1
No, un desarrollador de juegos no puede escribir un programa paralelo que tome el control total de la PC. Eso es un sistema operativo. Un sistema operativo tiene que registrarse con el núcleo cuando la computadora se inicia para obtener sus privilegios, y volver a invocarlos es costoso. Además, llamamos a los programas secundarios que toman el control total de una PC "inseguros" y "virus", porque lo son. El programa que tiene control total también significa que la seguridad en el juego es aún más importante, ya que cualquier pirateo que pueda causar comunicación entre los programas del cliente puede, literalmente, robar todos y cada uno de los datos de todos los dispositivos del cliente . Eso es malo.
Delioth
1
Como otro punto, ¿me estás diciendo que tendría que reiniciar mi PC en este sistema operativo básico solo para jugar tu juego? Estoy pidiendo un reembolso ya que no debería haber un tiempo de inicio y apagado de 5-10 minutos para su juego, en el que no puedo hacer nada con mis dos pantallas porque la computadora está apagada . Y no todos pueden permitirse el lujo de comprar una computadora portátil adicional solo para realizar múltiples tareas mientras juegan un juego específico (Es mejor que sea un buen juego si toma 20 minutos comenzar y detenerse y me obliga a gastar $ 400 para tener música / reddit en el fondo )
Delioth
Bueno, entonces trata con las personas que arruinan los juegos en la PC ... Los tiradores son cancelaciones completas en estos días porque están plagadas de esp, etc. Bf1 en la PC es un buen ejemplo ... Ya ni siquiera sé por qué se molestan en lanzarlos en la PC, fue pirateado incluso antes de salir.
TJ L