Kiedyś w przyszłości za jakieś 100 lat (mam zamiar żyć długo :D), gdy będę już na emeryturze być może dla zabawy spróbuję napisać grę FPP multiplayer. Na wszelki wypadek od czasu do czasu poświęcam 5 minut na myślenie o tym. Dziś wpadł mi pomysł na to, jak można by zwalczyć wallhacka. Ogólnie mało wiem o cheatach, bo nigdy mnie to jakoś nie ciekawiło plus nie chciałem ryzykować przypadkowego bana w związku z "testami".
Oto jak by to mniej więcej miało wyglądać. Pomysł jest prosty. Chodzi o to, że w trakcie meczu serwer zlecałby klientowi wykonanie kilku screenshotów w losowym czasie. Byłaby to liczba od 10 do 20. Generalnie chodzi o to, żeby nigdy gracz nie był pewien, że już w trakcie tego meczu screenshot nie zostanie wykonany. Ponieważ jednak cheater mógłby wykryć, że serwer zleca screenshota i automatycznie wyłączyć wallhacka, to również klient miałby zaprogramowane losowe wysyłanie kilku screenshotów. Być może posiadając odpowiednią wiedzę (której w tej chwili nie mam), dałoby się to zrobić tak, że cheater nie dałby rady wyłączyć wallhacka na czas robienia screenshota. Dodatkowo screen posiadałby zabezpieczenia w formie szyfrowania lub jakichś sum kontrolnych, żeby podrobienie go było trudniejsze. Dodam jeszcze, że ze trzeba by to tak urządzić, aby na screenie zamazane były nicki graczy (screeny mają być anonimowe).
Załóżmy, że to działa. Co dalej z tymi screenami. W trakcie trwania meczu klient wysyłałby po woli (żeby nie przeszkadzać w grze) screeny do serwera. Serwer następnie umieszczałby je na specjalnej publicznie dostępnej stronie. Gdzie screeny wyświetlałyby się losowo, a użytkownicy ocenialiby czy widzą na screenie wallhacka lub inną formę oszustwa, mogliby też pisać komentarze pod screenem. Być może byliby to tylko "zaufani" wolontariusze, a być może każdy mógłby oceniać. Jeżeli jakiś screen miałby dużo podejrzanych ocen, wtedy moderator zapoznawałby się z nim. Jeżeli oceniłby, że mamy do czynienia z oszustwem, wtedy konsultowałby się jeszcze z innymi moderatorami, sprawdzaliby czy na pewno taki mecz miał miejsce, czy w logach czas wykonania screena zgadza się z godziną na screenie itp.. Gdy ostatecznie zapadłaby już decyzja o tym, że gracz oszukiwał, wtedy w specjalnym dziale pojawiłby się o tym wpis. Byłby tam nick gracza, data spotkania, być może nicki pozostałych graczy, którzy akurat grali. Dodatkowo jeżeli ktoś akurat w trakcie meczu miał status admina/referee to dostawałby informacje na maila (a może wszyscy gracze akurat obecni dostawaliby informację o tym), że w tym meczu doszło do oszustwa. Gracz byłby oczywiście natychmiastowo banowany, a jego konto zamknięte. Być może cheater miałby 30 dni na odwołanie się ("testowałem") :)
To taki pomysł. Być może bez sensu, a cheaterzy i tak prędzej czy później go ominą. A może ma sens? Co myślicie? A może PunkBuster lub inny system antycheaterski już coś takiego próbował/stosuje i niezbyt to działa? Wszelkie komentarze mile widziane :)