Enkidu
Rycerz
Razem ze znajomymi przeprowadziłem małe techniczne śledztwo, wraz z odszukaniem kilku ciekawostek o podejściu IG do osób piszących te narzędzia. Nie, linków do nich nie podam, ale wyszukiwarki ma chyba każdy (uwaga:Google na prośbę IG zablokowało wyniki z narzędziami)
1. Boty prymitywne
Te boty, czyli tzw "autoklikery" można było co najwyżej nauczyć znanych im lokalizacji na ekranie. Całkiem nieźle nadawały się do zbierania kilkuminutowych produkcji, z niektórymi ustawieniami pozwalały na nieco szybsze podkładanie obrony w sektorach czy pomagały w klikaniu w dobrze ustawione sektory. Zachowywały się przy tym całkiem podobnie do gracza i jako takie ciężko je odróżnić od osób grających uczciwie. Szkodliwość: niska
2. Boty wykorzystujące prostą logikę
Tu również mamy klikery, ale wykorzystujące różne metody rozpoznawania obrazu. Ponieważ FoE ma prosty graficznie interfejs (w którym co najwyżej raz na parę lat ktoś nadgorliwy zmieni kolory), możliwe jest stworzenie bota szukającego wzorców w obrazie, a następnie reagującego kliknięciem. Nieco groźniejsze, niż te w punkcie 1, ale nadal możliwe do pokonania przez wprawnego gracza.
3. Boty wykorzystujące API gry
Tu niespodzianka - co prawda wersja Flash jest już martwa, ale już wtedy wykorzystywano JSON do komunikacji klient↔serwer. O ile podsłuchiwanie takich eventów przez wtyczki typu FOE-Helper czy FOE-Info (ze znalezieniem tej życzę powodzenia, gdyż działa w całości w narzędziach developerskich) to nic stwarzającego przewagę - o tyle skrypty nasłuchujące zdarzeń mogą być zaprogramowane na pewne działania. W skrócie: serwer wysyła paczkę z informacjami - i zanim GUI gry ją przetworzy - skrypt ma gotową odpowiedź (lub kilka). W czasach wersji Flash stworzono co prawda proste narzędzia zabezpieczające przed automatyzacją przez skrypty - jednak algorytm dosalania wiadomości był zaszyty jawnie w aplikacji. Obecnie, ze względu na pojawienie się wersji HTML5 - te dane są jeszcze łatwiejsze do znalezienia (w skrócie - event listener podaje je "na tacy" twórcom skryptów).
Co to oznacza? To oznacza, że nieuczciwy gracz wykona trzy akcje, zanim uczciwy dowie się, że mógł wykonać jedną. Na przykład - "podłożenie" oblegu nastąpi zanim obrońcy dowiedzą się, że "spadła" ostatnia kratka. Jedyne, co ogranicza szybkość takich botów - to RTT (round-trip time) dla wiadomości.Dla graczy z pingiem rzędu 30ms - RTT wynosi poniżej 100ms, a więc są w stanie wykonać solo ponad dziesięć pojedynczych akcji na sekundę (na przykład wymienić połowę wojska w armii atakującej i jeszcze dokonać ataku). "Żywy" gracz z tempem reakcji kierowcy rajdowego mógł wykonać dwie akcje na sekundę. Jest różnica?
1. Boty prymitywne
Te boty, czyli tzw "autoklikery" można było co najwyżej nauczyć znanych im lokalizacji na ekranie. Całkiem nieźle nadawały się do zbierania kilkuminutowych produkcji, z niektórymi ustawieniami pozwalały na nieco szybsze podkładanie obrony w sektorach czy pomagały w klikaniu w dobrze ustawione sektory. Zachowywały się przy tym całkiem podobnie do gracza i jako takie ciężko je odróżnić od osób grających uczciwie. Szkodliwość: niska
2. Boty wykorzystujące prostą logikę
Tu również mamy klikery, ale wykorzystujące różne metody rozpoznawania obrazu. Ponieważ FoE ma prosty graficznie interfejs (w którym co najwyżej raz na parę lat ktoś nadgorliwy zmieni kolory), możliwe jest stworzenie bota szukającego wzorców w obrazie, a następnie reagującego kliknięciem. Nieco groźniejsze, niż te w punkcie 1, ale nadal możliwe do pokonania przez wprawnego gracza.
3. Boty wykorzystujące API gry
Tu niespodzianka - co prawda wersja Flash jest już martwa, ale już wtedy wykorzystywano JSON do komunikacji klient↔serwer. O ile podsłuchiwanie takich eventów przez wtyczki typu FOE-Helper czy FOE-Info (ze znalezieniem tej życzę powodzenia, gdyż działa w całości w narzędziach developerskich) to nic stwarzającego przewagę - o tyle skrypty nasłuchujące zdarzeń mogą być zaprogramowane na pewne działania. W skrócie: serwer wysyła paczkę z informacjami - i zanim GUI gry ją przetworzy - skrypt ma gotową odpowiedź (lub kilka). W czasach wersji Flash stworzono co prawda proste narzędzia zabezpieczające przed automatyzacją przez skrypty - jednak algorytm dosalania wiadomości był zaszyty jawnie w aplikacji. Obecnie, ze względu na pojawienie się wersji HTML5 - te dane są jeszcze łatwiejsze do znalezienia (w skrócie - event listener podaje je "na tacy" twórcom skryptów).
Co to oznacza? To oznacza, że nieuczciwy gracz wykona trzy akcje, zanim uczciwy dowie się, że mógł wykonać jedną. Na przykład - "podłożenie" oblegu nastąpi zanim obrońcy dowiedzą się, że "spadła" ostatnia kratka. Jedyne, co ogranicza szybkość takich botów - to RTT (round-trip time) dla wiadomości.Dla graczy z pingiem rzędu 30ms - RTT wynosi poniżej 100ms, a więc są w stanie wykonać solo ponad dziesięć pojedynczych akcji na sekundę (na przykład wymienić połowę wojska w armii atakującej i jeszcze dokonać ataku). "Żywy" gracz z tempem reakcji kierowcy rajdowego mógł wykonać dwie akcje na sekundę. Jest różnica?