No więc tak…
Gram sobie w Deathchase XE w wersji HSC, bardzo fajnie mi się gra. Potrafię w ciągu 5 minut wbić około 44150 punktów, 48576 zostało dodane na listę ręcznie, ponieważ w ferworze walki zapomniałem zapisać na liście wyników w grze (myślałem, że pobierze ostatnio używaną nazwę gracza podczas danego uruchomienia gry).
edit: żebyśmy się rozumieli - przez cały czas gry pędzę z pełną prędkością, żadne tam zwalnianie czy zatrzymywanie się :)
Ale mam inny pomysł na rozwiązanie kwestii:
"Ja nie będę dodawał z żadnych smartfonów, bo stary jestem i w ogóle nie chcę" - Rozumiem ten punkt widzenia i szanuję.
Jak już trzeba dodać, to trzeba się przeklikiwać przez bardzo duże ilości loginów, haseł i innych cholerstw naraz
Koncepcja sama w sobie jest prosta i nawet łatwiejsza do wykonania niż obecny potworek (nie umniejszam zajebístości pomysłu - jest super, lecz wykonanie po wuju): Generalnie myk polega na wrzucaniu losowych bajtów w określone miejsca obrazu dyskietki przy każdym pobraniu pliku .ATR z grą. Takie coś może zrealizować dowolny serwer HTTP z obsługą CGI, poprzez zewnętrzny skrypt w dowolnym języku (który umie stać na CGI) lub nawet sam w sobie (z tego co wiem to Nginx miał taką opcję). Ale mniejsza o "backend", wróćmy do tematu. Te (dajmy na to) sześć bajtów w sektorze takim a takim, jako część programu HSC.COM, będą unikalnym ID obrazu. Gracz będzie sobie grał normalnie w grę, gra będzie zapisywać hajskory, wszystko fajnie. Po odpaleniu pliku HSC.COM poza datamatrixem (który będzie reprezentował tekst niżej) będzie pojawiał się kod złożony z kilku cyfr base16 (nie za dużo), który będzie haszem ID dyskietki i najwyższego hajskora, a niżej komunikat: "type this on xxl.atari.pl/hsc and get yourself to the Hall Of Fame". I faktycznie, użytkownik będzie coś takiego wpisywał i za pierwszym razem serwer odpyta go o nazwę gracza, a za każdym następnym po prostu doda wynik. Nie będzie żadnych cookies - serwer może trzymać bazę key-value z ID dyskietki gracza i jego nazwą z rekordem dodanym przy pierwszym wpisaniu wyniku. Powinien też zapisywać wszystkie ID "oznaczonych" dyskietek z serwera w celu sprawdzenia, czy taka kombinacja może mieć w ogóle miejsce. Funkcja haszująca powinna być jak najprostsza i odwracalna, gdyż nie dość że będzie liczona na ośmiobitowym 1,77MHz, to jeszcze serwer nie może się napocić to dodając. Niestety, nie jestem matematykiem, ale myślę że XOR wyniku przez ID i jakaś operacja na "kluczu" (krótkim) znanym jedynie serwerowi i programowi HSC.COM może dać radę (symetryczna kryptografia jak najbardziej…).
Jakie są plusy tego rozwiązania? Bardzo duże - jedyna interakcja jaką użytkownik podejmuje z serwerem to podanie kilku cyfr szesnastkowych i (przy pierwszym wpisaniu) swój nick. Bez żadnych smartfonów, bez kombinowania, bez rejestracji.
Do tego mamy pełną weryfikację listy wyników - nikt nie może nic fałszować. Do tego jedynym wymogiem jest posiadanie łącza internetowego i odpowiedniej wersji gry pobranej ze strony XXL'a.
Generalnie pomysł naszedł mnie wczoraj od razu po ograniu kilku partyjek w DCXE, a potem w "The Incredible Machine" gdzie ważnym elementem są tzw. "hasła" do kolejnych poziomów. Hasła te były różne w zależności od postępu gry, ilości punktów, itd.