Podstawowe decyzje projektowe mogą pełnić funkcję "pierwszego kroku" w zakresie środków bezpieczeństwa, które zniechęcają do eksploatacji. Główna zasada polega na projektowaniu systemów, w których oszustwa są albo niemożliwe, albo nie zapewniają żadnych znaczących korzyści, zamiast próbować wykrywać i zapobiegać oszustwom po fakcie.
Rozważ grę strzelankę, w której gracze zdobywają punkty za zabójstwa. Oszust może stworzyć boty, które teleportują się w to samo miejsce, aby być wielokrotnie zabijanymi dla łatwych punktów. Ten scenariusz ilustruje różnicę między podejściem reaktywnym a defensywnym:
| Podejście | Przewidywany wynik |
|---|---|
| Ściganie botów poprzez napisanie kodu, który próbuje je wykryć (podejście reaktywne). | |
| Ograniczenie lub całkowite usunięcie zdobywania punktów za zabójstwa świeżo odrodzonych graczy (podejście defensywne). |
Dodatkowe scenariusze projektowe defensywne:
| Potencjalny scenariusz oszustwa | Podejście reaktywne (mniej efektywne) | Podejście defensywne (bardziej efektywne) |
|---|---|---|
| (Obby) Oszust teleportuje się na koniec, aby zdobyć nagrody | Sprawdzenie tylko ostatecznej pozycji gracza i próba wykrycia niemożliwych czasów ukończenia | Projektuj z obowiązkowymi, sekwencyjnymi punktami kontrolnymi. Serwer weryfikuje, czy każdy punkt kontrolny został aktywowany w określonej kolejności przed przyznaniem nagród. Możesz dodać kolejny poziom, flagując graczy, którzy kończą etapy szybciej niż to możliwe dla człowieka. Projekt doświadczenia (wymagający punktów kontrolnych) umożliwia efektywną weryfikację po stronie serwera. |
| (Combat) Klient zgłasza niemożliwe ilości zadawanych obrażeń | Próba wykrywania i filtrowania niemożliwych wartości obrażeń | Serwer oblicza wszystkie obrażenia na podstawie statystyk broni po stronie serwera i weryfikuje trafienia poprzez raycasting po stronie serwera |
| (Gospodarka) Oszust replikuje przedmioty poprzez szybkie żądania | Próba wykrycia duplikatów żądań lub nietypowych wzorców | Wprowadzenie cooldownów po stronie serwera i weryfikacja wszystkich transakcji w odniesieniu do obecnego stanu inwentarza gracza |