Wie verhindert man das Cheaten in Multiplayerspielen? Welche Möglichkeiten gibt es?
-
Wie macht man das eigentlich Programmtechnisch bzw. Codetechnisch, also wie verhindert man da das Cheaten?
Mir fallen sponten folgende Dinge ein:
1. Man erstellt Prüfsummen aller Spielrelevanten Dateien, so daß jeder
mit den gleichen Dateien spielt und niemand eine manipulierte DLL benutzt.2. Man verschlüsselt den Datenstrom zwischen Spielclient und Server, damit
kein drittest Programm den Netzwerkverkehr manipulieren kann.
Geht das bei Egoshootern eigentlich schnell genug?3. Man macht ein Client-Server basiertes Konzept, so daß der Server
die Entscheidungen trifft, ob ein Spieler den anderen getroffen hat und kein Spielclient falsche Daten an den anderen Client schicken kann, was bei einem Peer2Peer Spiel ja funktionieren würde.Aber was gibt es sonst noch für Möglichkeiten?
-
Frag doch mal TGGC :p
http://www.c-plusplus.net/forum/viewtopic-var-t-is-132122-and-postdays-is-0-and-postorder-is-asc-and-start-is-30.html
-
Wie verhindert man da das Cheaten?
Im Prinzip müßte man ALLES wichtige vom Server berechnen lassen und der Client zeigt lediglich die Daten an.
Praktisch geht das wegen beschränkter Bandbreite nicht.Verhindern kann man Cheaten nicht!
man kann nur demjenigen der es machen will das Leben so schwer wie möglich machen.
(Siehe Beitrag von Anticheat)Das Problem ist, das JEDE anti Cheat Methode wenn sie auf dem Computer des Anwenders läuft von diesem manipuliert werden kann.
(Im Extremsten Fall müßte man das ganze Programm nach coden was immer möglich ist)
Ist halt einfach nur ne Frage wie viel Aufwand der potentielle Cheater betreibt und wie gut er sich auskennt.Wer es mal ausprobieren will schnappt sich am besten eins der alten Games die nicht so umfangreich sind schmeißt den Decompiler an und probiert rum.
Und wer auch schnell Erfolg haben will nimmt Söldners
-
vor 1-2 Wochen gabs eine recht gute Diskussion dazu (ging in dem Thread um Anti-Cheat APIs/Libs), versuch den mal zu suchen