Empêcher les joueurs de taquiner dans un FPS en ligne?

14

Pourquoi nous plaignons-nous toujours des wallhackers dans les jeux de tir à la première personne multijoueurs?

N'est-il pas possible d'effectuer une élimination d'occlusion pour tous les joueurs côté serveur? Par exemple, envoyer des informations sur le joueur xyz au client uniquement lorsque le joueur est visible dans le tronc du client et n'est occlus par aucun objet? Même si la géométrie de collision est très, très simplifiée, la plupart du temps, le tricheur ne recevra pas d'informations tactiques.

Pourquoi ne pas faire ça?

Patryk Czachurski
la source

Réponses:

19

Vous pensez que vous êtes en retard maintenant? Attendez simplement que vous deviez obtenir des informations d'occlusion en temps réel du serveur. Maintenant, vous pouvez vous promener derrière un mur et les méchants apparaîtront soudainement lorsque le serveur rattrapera et vous enverra les données d'occlusion mises à jour.

Donc, mon commentaire snarky dit tout. La principale raison de ne pas le faire est probablement le décalage et la charge du serveur. Si vous voulez que le serveur sache quand un autre joueur est visible pour vous, cela signifie que le serveur doit savoir exactement quelle géométrie chaque joueur regarde et calculer cette occlusion.

Je suis d'accord que des exploits comme le piratage de mur peuvent rendre le jeu pas amusant. Et je vois que les développeurs s'inquiéteraient de cela parce qu'ils veulent rendre le jeu aussi amusant que possible. Cependant, lorsque les développeurs en arrivent au point où leurs contre-mesures anti-triche / piratage diminuent le jeu et / ou la satisfaction des clients, ils perdront beaucoup plus de clients que s'ils venaient de le laisser seuls . Voir DRM .

MichaelHouse
la source
3
+1 pour avoir insisté pour que les contre-mesures anti-triche / piratage ne diminuent jamais l'expérience d'un client innocent.
doppelgreener
17

C'est faisable, et a déjà été essayé dans la recherche; pour une comparaison des schémas de gestion des intérêts, voir http://dl.acm.org/citation.cfm?id=1230069

Comme l'a dit Byte56, cela peut nécessiter plus de CPU, mais cela peut réduire votre bande passante et réduire la probabilité de piratage mural.

Et comme l'a dit Byte56, une zone d'intérêt strictement limitée à la zone d'occlusion du joueur peut réduire la réactivité du côté client: les embuscades prendront au moins la moitié d'un aller-retour pour être affichées. Cependant, vous pouvez agrandir la zone d'intérêt du joueur légèrement plus grande que la zone d'occlusion, de sorte que le client reçoive l'embuscade de l'adversaire quelques secondes avant que cela ne se produise. De cette façon, les hacks muraux sont toujours possibles, mais seulement au tout dernier moment.

gentimouton
la source
Bien, merci d'avoir apporté des recherches réelles aux réponses. Bienvenue à GDSE.
MichaelHouse
4

La réponse courte est que oui, l'élimination des occlusions côté serveur est possible, mais ce n'est souvent pas fait en raison de la complexité et des avantages limités.

Gardez à l'esprit que pour une grande partie des jeux FPS modernes, l'occlusion complète est rare. De nos jours, les personnages utilisent une couverture ou se cachent dans l'herbe, et les uniformes et le camouflage réels ont en fait un impact sur la visibilité. Les murs et les couloirs jouent toujours un grand rôle dans la bataille en ligne, mais pas autant que par le passé.

Les jeux avec beaucoup de couloirs étroits et de surfaces opaques peuvent (et ont parfois) utilisé une élimination d'occlusion sur le serveur pour filtrer les événements. Cela ne fonctionne tout simplement pas si bien pour les grands environnements ouverts et les jeux de couverture / camo réalistes.

Le piratage de murs n'est également qu'une petite partie de la triche dans les jeux en ligne, et la correction de chaque piratage individuel n'a pas bien fonctionné jusqu'à présent. Les meilleures approches ont simplement été la création de matchs de haute qualité et les systèmes de notation des joueurs qui filtrent les tricheurs et réduisent la probabilité de se retrouver dans un match frustrant.

Sean Middleditch
la source
-4

Les développeurs de jeux ne peuvent-ils pas simplement écrire un programme secondaire qui prend essentiellement le contrôle total du PC et ne permet à aucun logiciel tiers de se charger pendant le jeu? Ne doivent-ils pas charger les injecteurs après le démarrage du jeu et leur mappage en mémoire? Donc, juste liste noire tout ce qui n'est pas lié à l'exécution. Ils doivent créer un type d'UAC pour arrêter le chargement des services après le chargement du jeu.

Mon autre idée pour empêcher complètement le piratage est un peu plus complexe et implique l'exécution de jeux comme un système d'exploitation Linux Live Drive. Fondamentalement, le jeu n'utiliserait pas du tout de fenêtres, mais utiliserait son propre système d'exploitation dépouillé qui est conçu pour ne charger que les jeux. Donc, les joueurs peuvent vouloir diffuser ou jouer de la musique tout en jouant, mais cette nouvelle façon de gérer un jeu ne le permettra pas .. Gros problème, les développeurs pourraient ajouter des programmes et des trucs à la liste blanche, mais je ne me dérangerais pas .. vous essayez de jouer à un jeu, si vous voulez avoir plusieurs tâches avec un ordinateur portable à proximité, etc. Essentiellement, vous voulez exécuter le jeu en mode bac à sable avec cryptage .. Je pense que c'est comme ça que ça s'appelle .. C'est comme exécuter un jeu dans un environnement de temp os virtuel qui est 100% contrôlé par le créateur du jeu.

Et ce mode sandboxie serait très similaire au fonctionnement de la console et des jeux. Nous ne voyons pas beaucoup de hacks sur la console .. Vous vous demandez pourquoi? Parce qu'ils ne peuvent pas les charger sur la console et s'ils le pouvaient, les consoles ne pourraient même pas le lire, le reconnaître.

TJ L
la source
1
Non, un développeur de jeu ne peut pas écrire un programme secondaire qui prend le contrôle total du PC. Voilà ce qu'est un système d'exploitation. Un système d'exploitation doit s'enregistrer auprès du noyau au démarrage de l'ordinateur pour obtenir ses privilèges et les réappeler autrement est coûteux. De plus, nous appelons les programmes secondaires prenant le contrôle total d'un PC «dangereux» et «virus», car ils le sont. Le programme ayant un contrôle total signifie également que la sécurité dans le jeu est encore plus importante, car tout piratage pouvant provoquer une communication entre les programmes clients peut littéralement voler toutes les données de tous les appareils clients . C'est mauvais.
Delioth
1
Comme autre point, vous me dites que je devrais redémarrer mon PC dans ce système d'exploitation simplement pour jouer à votre jeu? J'appelle pour un remboursement car il ne devrait pas y avoir de démarrage et d'arrêt de 5 à 10 minutes pour votre jeu, où je ne peux rien faire avec mes deux écrans car l'ordinateur est éteint . Et tout le monde ne peut pas se permettre d'acheter un ordinateur portable supplémentaire uniquement pour effectuer plusieurs tâches pendant qu'il joue à un jeu spécifique (il vaut mieux être un sacré bon jeu si cela prend seulement 20 minutes pour démarrer et arrêter et m'oblige à dépenser 400 $ pour avoir de la musique / reddit en arrière-plan ).
Delioth
Eh bien, traitez les gens qui ruinent les jeux sur PC .. Les tireurs sont des radiations complètes ces jours-ci parce qu'ils sont criblés d'esp etc. Bf1 sur PC est un bon exemple .. Je ne sais même pas pourquoi ils prennent la peine de les publier sur PC, il a été piraté avant même de sortir.
TJ L