Kilka narzędzi ułatwiających odszukiwanie (tytułów) starych gier – wywiad z twórcą

Old Games Finder, SimilarType, Game List Generator
Old Games Finder, SimilarType, Game list generator

Na przełomie wieków nawiązałem kontakt z pewną grupą świrów mających fioła na punkcie m.in. starych gier. Prowadzili oni dosyć ciekawy serwis w Internecie, z którego zacząłem czerpać, bo posiadał dosyć unikatowy content dla miłośników starogrania. Być może niektórzy z Was korzystali z tego serwisu. 🙂 Sam dorzuciłem do niego coś od siebie co zaowocowało wieloletnią współpracą i znajomością ze wspomnianym teamem. W międzyczasie wiele się zmieniło, ale w pewnej formie serwis ten funkcjonuje do dziś i ma się całkiem dobrze, gdyż wciąż są użytkownicy, którzy z niego korzystają. Łącznie ze mną. 🙂 Ze wspomnianymi świrami wciąż mam kontakt. Jeden z nich był wówczas i jest obecnie jednym z głównych twórców kilku narzędzi bardzo ułatwiających poszukiwanie tytułów gier, jak i samych gier, także tych z minionego stulecia. 🙂 Osoba ta zgodziła się poświęcić trochę czasu na wywiad, a efekty tego poświęcenia przedstawiam Wam poniżej. 🙂

Kloqus: Pierwszy kontakt ze sobą nawiązaliśmy jakieś dwie dekady temu +- 1 rok (ale ten czas leci!). I cały czas kojarzę Cię jako osobę związaną z jakimiś projektami m.in. o starych grach. Skąd u Ciebie chęć poświęcania się tematyce, która nie jest na topie i na którą nikt nie łoży dużych pieniędzy choćby na marketing? Co innego nowe produkcje.

speedstar: Cóż, tak to bywa z hobby. Nie wszystko robi się dla pieniędzy. Czasem wystarczy, że zajmowanie się czymś daje radochę.
Jeśli chodzi o retro gaming to może nie należy do mainstreamu, ale patrząc na dzisiejszy zalew gier niezależnych, często inspirowanych klasykami, a nawet stylizowanych graficznie, odnoszę wrażenie, że zyskuje na popularności, szczególnie wśród osób urodzonych w okolicach lat 80-tych.

K: Zacznijmy od początku. Jak Cię poznałem (poprzez bodajże usera AmigaRuleZZZZZZZZZZZZZZZZZZZZZZ – nie wiem ile miał „Z” w nicku 😀 i czy miało to znaczenie) to współprowadziłeś serwis Independent Software (IS). Opowiedz czym się on charakteryzował i dlaczego w ogóle powstał.

Independent Software - The Masters Of Immortal Times
Independent Software –
The Masters Of Immortal Times

s: Sądzę, że ilość Z w RuleZ oznaczała podkreślenie stopnia zajebistości, ale raczej nie przekraczała trzech.
W okolicach roku 2000 zacząłem kolekcjonować tzw. ripy starych gier, a także rozpocząłem naukę w liceum, gdzie poznałem dwóch innych fascynatów tematu posługujących się pseudonimami Virus i BKrystek (moim był speedstar). Naszym celem stało się zebranie możliwie największej kolekcji składającej się z przetestowanych tytułów w najlepszych dostępnych wersjach i opisów dotyczących ich uruchamiania oraz rozwiązywania problemów technicznych. Pamiętam, że największą frajdę sprawiało zdobywanie najrzadszych plików, wliczając w to scenowe fixy (grupy wypuszczały poprawki lub aktualizacje do swoich wydań). Najlepszym źródłem były specjalne kanały na IRC, a dokładniej EFnet, gdzie przesiadywali inni kolekcjonerzy.
Później powstała strona Independent Software, która była swego rodzaju spisem zbiorów, ale nie służyła do handlowania nimi. Można tam było znaleźć wspomniane opisy techniczne oraz pliki do pobrania. Download był jednak rozwiązany w dość specyficzny sposób. Uznaliśmy, że nie ma sensu duplikować popularnych plików, które można znaleźć na innych stronach, ale za to można ułatwić proces ich znalezienia. Na naszym serwerze udostępnialiśmy tylko rzadkie pliki, a za pozostałe odpowiadała wyszukiwarka, znana dziś jako Old Games Finder.

K: Za co byłeś odpowiedzialny w Independent Software, a za co pozostali dwaj „fascynaci tematu”?

Independent Software
Independent Software

s: Poza byciem założycielem byłem także webmasterem i napisałem wspomnianą wyszukiwarkę. Oprócz tego oczywiście polowałem na pliki do kolekcji, testowałem i w razie potrzeby robiłem opisy techniczne.
Virus był odpowiedzialny za sekcję Nintendo oraz dodatkowe ripy na PC.
BKrystek za sekcję C64 oraz również za dodatkowe ripy na PC.
Później zajmowałem się także sekcją Amiga HD, gdzie skupiałem się na przygotowywaniu plików gier do uruchamiania z dysku twardego Amigi bez użycia płatnego WHDLoad. Do osiągnięcia tego celu chwytałem się różnych rozwiązań. Najprostsze to było skorzystanie z oficjalnych instalatorów lub nieoficjalnych z Aminetu. W pozostałych przypadkach trzeba było kombinować używając różnych narzędzi lub skryptów np. do symulowania, że dane znajdują się w napędzie.

K: Ok, Independent Software było na początku jak Cię poznałem. A było coś podobnego wcześniej w czym brałeś jakiś udział?

s: Wcześniej było kilka innych stron internetowych, ale nie są one warte wspomnienia.
Pierwsza z nich była zbiorem ciekawych linków jakie znalazłem w sieci z tematu sceny komputerowej, muzyki robionej w trackerach, muzyki z gier czy Amigi.

K: Później serwis z downloadem przekształcił się w wyszukiwarkę. Obecnie jest to Old Games Finder (OGF). Po co takie narzędzie? Przecież są wyszukiwarki, choćby Google czy Bing. Czy nie jest to czasem ponowne odkrywanie Ameryki?

Old Games Finder
Old Games Finder

s: OGF jest wyszukiwarką specjalizowaną, zoptymalizowaną do konkretnego zastosowania. Czy jest potrzebny to już pozostawiam ocenie użytkowników.
OGF był tak naprawdę napisany pod kątem moich własnych potrzeb, jako rozwiązanie wygodniejsze do wyszukiwania gier niż uniwersalny i coraz bardziej zaśmiecany technikami pozycjonowania Google. W OGF indeksowane są wyłącznie strony sprawdzone i związane z tematem. Ich kolejność w wynikach również ma znaczenie. Wyżej w rankingu lądują strony, które mają łatwiejszy download, mniej reklam, szybszy transfer, obsługują język angielski i posiadają więcej rzadkich plików. Sama wyszukiwarka pod względem technicznym jest zautomatyzowana i nie wymaga współpracy z właścicielami innych serwisów oraz posiada zdolność samoaktualizowania swojego indeksu, ale z powodu braku czasu na aktualizowanie kodu jej silnika obecnie działa w trybie archiwalnym.

K: Gdy OGF gdzieś coś napisze to podpisuje się niekiedy jako „OGF Team”. Kto wchodzi w skład owego teamu? Czym Ty się zajmujesz a czym pozostali?

s: Obecnie, z aktywnych członków, pozostałem tylko ja. Nadal jednak mam stały kontakt z pozostałymi.

K: Później, jako projekt pokrewny, powstało SimilarType (ST). Do czego służy?

SimilarType
SimilarType

s: SimilarType jest kontynuacją, nazwijmy to wersją 2.0, wcześniejszego projektu Audiologic Experiment.
Generalnie, jako miłośnik muzyki, także tej niszowej, nigdy nie byłem zadowolony z algorytmów odpowiedzialnych za podpowiadanie podobieństw muzycznych, a przetestowałem ich wiele, wliczając dość ciekawy i zaawansowany koncept radia Pandora, gdzie każda piosenka w bazie jest opisana wieloma parametrami, w przeciwieństwie do prostych powszechnych rozwiązań, wykazujących podobieństwa tylko dlatego, że artyści grają ten sam gatunek np. szeroko pojęty rock. Uznałem, że przydałaby się większa precyzja i skoro nic mnie nie zadowala to spróbuję to zrobić po swojemu.
Tak powstała wersja 1.0, skupiona początkowo tylko na muzyce, ale później rozszerzona o gry i filmy. Zasada działania była zupełnie inna niż obecnej wersji. Mechanizm był oparty na społeczności, a nie zautomatyzowaniu. W skrócie działało to tak, że jako użytkownik wprowadzam jakąś piosenkę, grę lub film do bazy, a następnie wprowadzam moim zdaniem podobny tytuł. Pozostali użytkownicy mogli dodawać swoje sugestie podobnych tytułów. W ten sposób powstawała lista podobieństw, ale każdy mógł zagłosować na dane podobieństwo przyznając +2 za wysokie podobieństwo, +1 za całkiem podobne, -1 za mało podobne, -2 za zupełnie niepodobne. Dodatkowo, każdy użytkownik miał swoją rangę, która była zależna od kilku czynników, między innymi tego jak oceniane były wprowadzane przez niego podobieństwa, a wyższa ranga sprawiała, że jego ocenianie miało większy wpływ. Celem było tworzenie list podobieństw, gdzie te lepiej oceniane lądowały wyżej na liście. Niestety, bez dobrego marketingu, a co za tym idzie, dużej zaangażowanej społeczności, projekt upadł, choć nadal posiadam jego w pełni ukończony kod.
Drugim podejściem jest SimilarType, tym razem stawiający na pełne zautomatyzowanie, co moim zdaniem nie jest lepszym rozwiązaniem, ale postanowiłem spróbować. System ma trzy całkowicie osobne analizatory: do gier, do filmów, i działający najsłabiej, do muzyki, tym razem ograniczającej się do samych artystów, a niestety nie precyzji piosenek jak wcześniej. Całkiem obszerna baza posiada sporo dość szczegółowych tagów, które są podzielone na kategorie traktowane z różnym priorytetem. Te informacje są następnie wykorzystywane do oceniania podobieństw, z końcowym wynikiem od 0 do 99, przy czym oczywiście zwracane są tylko te najwyższe.
Przyznam, że efekt końcowy nie jest tak dobry jak chciałem uzyskać, ale w porównaniu do absurdalnych wyników jakie widywałem w innych systemach, jest akceptowalny. Udało mi się odkryć sporo gier, filmów, czy artystów.

K: Jak się korzysta z OGF to pojawia się Game list generator, ale chyba nie ma on wydzielonej strony… Dla kogo może być przydatny taki generator?
Wydaje mi się, że jest to produkt uboczny ST. Mam rację? Chociaż nie mam pewności co było pierwsze. 😀

Game list generator
Game list generator

s: Generator listy gier korzysta z bazy projektu SimilarType, i właściwie przekierowuje na ten serwis aby wyświetlić wyniki.
Przydatny może być dla kogoś, kto chce sobie wygenerować listę gier o ściśle określonych regułach, po to aby przyjrzeć się pasującym tytułom i znaleźć coś czego jeszcze nie zna.
Liczba po lewej stronie to średnia ocena z różnych źródeł, zaś kolejne ikonki obok mają ułatwić proces znalezienia informacji.
Mimo, że baza jest dość obszerna (ok. 32.000 gier na PC, 10.000 na PlayStation, 5.000 na Xbox), to może mieć braki w przypadku gier niezależnych z ostatnich kilku lat.

K: Kiedyś mi wspomniałeś, że na potrzeby swoich serwisów stworzyłeś coś w rodzaju własnego silnika bazy danych. Co to miało na celu? Przecież są dostępne tego typu rozwiązania, darmowe, a nawet open sourcowe, których kod można sobie przerobić by dostosować do własnych, indywidualnych potrzeb.

Old Games Finder - Przykład
Old Games Finder – Przykład

s: Zwykle muszę mieć wszystko po swojemu, wiedzieć jak coś działa od podszewki, i przede wszystkim być jak najmniej zależnym od rzeczy dodatkowych. Unikam wymagań dodatkowego oprogramowania czy korzystania z nie swoich bibliotek, na tyle na ile jest to możliwe.
Przyznam, że z ciekawości robiłem test wydajności dla OGF i ST, baza plikowa oparta na bezpośrednim dostępie, ładowana z dysku SSD do cache w pamięci RAM, kontra zapytania do bazy SQL. Pierwsze rozwiązanie okazało się wydajniejsze, choć oczywiście nie polecam i nie używam go w przypadku większych serwisów z systemem logowania i wielokrotnych próbach zapisu danych w tym samym czasie. W przypadku tego jak wspomniane tutaj projekty są skonstruowane, ma to jeszcze jakiś sens.
Jakie korzyści zyskałem na bazie plikowej? Pominięcie wielu zbędnych instrukcji dodatkowych (np. wykonywanych przez usługę SQL), niezależność od dodatkowego oprogramowania na danym serwerze (OGF był przenoszony wielokrotnie, w tym raz tymczasowo dawał radę na domowym retro serwerze, Pentium 100 MHz, 64 MB), odporność na popularne ataki kierowane w bazy danych (od tego się aż roi w logach), łatwość migracji bez zabaw w eksportowanie i importowanie, a także jeden prosty backup. Oczywiście osoba obeznana w temacie się zaśmieje i powie, że takie plusy to dziś właściwie niewystarczające plusy, ale tak jak wcześniej wspomniałem, jest to kwestia indywidualna danego projektu.

K: Skąd, w jaki sposób i jak często są pobierane dane do baz danych Twoich serwisów?

s: W przypadku OGF, zanim jakaś strona trafi do bazy, jest najpierw weryfikowana przez człowieka, a następnie, jeśli zaakceptowana, to otrzymuje swoje miejsce w rankingu wedle wspomnianych wcześniej kryteriów i trafia do zautomatyzowanego analizatora, który szuka wzorców w jej kodzie. Po analizie struktury danego serwisu, zostaje uruchomiony indekser, który zaczyna dodawać dane do bazy. Późniejsza aktualizacja przebiega w taki sam sposób. Obecnie wyszukiwarka jest w trybie archiwalnym. Wcześniej dokonywała automatycznej aktualizacji bazy co miesiąc.
W przypadku ST, baza została stworzona tylko raz i był to długi proces trwający wiele dni. Dane zostały zebrane w całość z najróżniejszych serwisów, w tym także i Wikipedii. Następnie, najbardziej kluczowe informacje stały się tagami, które ostatecznie trafiły do bazy danych.

K: Czy oprócz obsługi baz danych stworzyłeś jeszcze jakieś własne, specyficzne rozwiązania?

s: To co przychodzi mi do głowy, że może być dzisiaj niecodzienne, to to że projekty są napisane strukturalnie z wykorzystaniem funkcji, są kompatybilne zarówno z już od dawna nieużywanym php 3 jak i najnowszymi wersjami (tutaj miały pewne aktualizacje pod tym kątem, bo pewne rzeczy przestały być wspierane), pozycjonowanie elementów w przeglądarce jest wykonane za pomocą starej szkoły niewidzialnych tabelek zamiast css, dzięki czemu teoretycznie powinno wyglądać niemal identycznie na każdej przeglądarce, wliczając w to kompatybilność ze starusieńkim IE dostarczanym z Windows 98 SE (a tam, jak parę lat temu patrzyłem, to już nawet główna strona Google nie działała jak trzeba). Innymi słowy, retro po całości.

K: Co stanowiło największe wyzwanie przy tworzeniu Twoich serwisów?

SimilarType - Przykład
SimilarType – Przykład

s: Myślę, że kwestie związane z wydajnością. OGF i ST działają w czasie rzeczywistym na dość sporej ilości danych, gdzie w tym drugim przypadku, są one dodatkowo przetwarzane. Robiłem testy z licznikiem czasu i wprowadzałem modyfikacje, które ostatecznie znacząco zoptymalizowały szybkość działania.

K: Jakie pojawiły się trudności przy ich powstawaniu oraz czy i jak udało Ci się je rozwiązać?

s: Na pewno wspomniane wcześniej optymalizacje. Można do tego dodać stworzenie bazy dla ST, bo był to proces długi i wymagał jeszcze złożenia wszystkiego w sensowną całość. Następnie, szlifowanie algorytmów do oceniania podobieństw, też wymagało nieco eksperymentów z formułami obliczeń dla każdej kategorii z osobna (gry, filmy, muzyka).

K: A co okazało się wyjątkowo łatwe? Co poszło szybko i z górki a się tego nie spodziewałeś? 🙂

Old Games Finder - 640x480 (Nokia E6)
Old Games Finder – 640×480 (Nokia E6)

s: Jedyna rzecz jaka przychodzi mi do głowy, to dostosowanie OGF dla telefonów, wliczając w to wsparcie 320 pixeli. Wcześniej nie zwracałem na to uwagi i projekty były robione sztywno dla minimum 1024 pixeli. Był to dla mnie nowy temat i spodziewałem się, że będzie trochę zabawy, szczególnie z powodu zastosowania niewidzialnych tabelek zamiast css, ale jednak poszło szybko. Nie zmienia to faktu, że ST do tej pory nie otrzymał takiej aktualizacji.

K: Wiem, że niektóre wyniki ze swojej wyszukiwarki musiałeś usunąć, bo wiele z indeksowanych tytułów jest np. w sprzedaży. Ale przecież Twoja wyszukiwarka podaje jako wynik linki do zewnętrznych źródeł. Wydaje mi się, że w takim wypadku odpowiedzialność za możliwość ściągania bierze na siebie ten kto to udostępnił, a nie ten kto wskazał takie miejsce. Jakie więc były argumenty, które zmusiły Cię do ograniczenia wyświetlanych wyników?

s: Nie znam się na kwestiach prawnych, ale jak dla mnie, równie dobrze Google nie powinno mieć wielu wyników wyszukiwania.
Wszystko zaczęło się od tego, że skontaktował się ze mną nowy właściciel praw do pewnej serii gier. Jeśli się nie mylę, to byli w trakcie tworzenia nowej części, a sprzedaż starych została wznowiona. Był miły, pochwalił wyszukiwarkę, napisał że są małą firmą, która przejęła prawa i chcą kontynuować rozwój serii. Postanowiłem wprowadzić modyfikacje, które odfiltrują wskazane wyniki.

K: Dużo miałeś takich przypadków roszczeń i od kogo? Od jakiś znaczących instytucji lub firm czy może marginalnych i nieliczących się na rynku?

s: Kilka. Większość od znaczących, ale nie będę wymieniał nazw.
Jeśli chodzi o marginalne, to takim szczególnie nie chcę utrudniać potencjalnych zarobków.

K: Ile gier z tego powodu przestało być indeksowanych? Czy to jakiś znaczący procent wszystkich pozycji? Czy z wyników musiały wypaść jakieś istotne tytuły?

s: Obecnie takich tytułów jest ok 20. One są indeksowane, ale odrzucane z wyników wyszukiwania.
Co najmniej połowa to istotne klasyki, które zapewne znasz.

K: Kiedyś stworzyłeś i przez jakiś czas udostępniałeś przeglądarkowe emulatory starych konsol i komputerów. Czemu już ich nie ma u Ciebie? Niektóre z tych emulowanych sprzętów miałem wtedy i mam do dziś!

Online emulator
Online emulator

s: Tutaj poprawka, nie stworzyłem, a zmodyfikowałem, takie które były udostępnione na licencji Open Source.
Same zmiany nie były czymś wielkim, między innymi ładowanie własnych ROM-ów z dysku lokalnego, obsługa ZIP-a, wyłącznik dźwięku, dopasowanie audio do działania na trzech przeglądarkach (tak, wtedy Chrome miał swoją obsługę audio, FireFox swoją, i Opera swoją), wygodniejsze klawisze do grania, czy wyświetlanie obrazu w trybie pixel perfect (nigdy nie lubiłem filtrów, które rozmazują obraz). Emulatory miały wbudowane ROM-y, żeby ktoś z miejsca, bez szukania i ściągania czegokolwiek, mógł poznać dany sprzęt lub powspominać.
Sekcja zniknęła, bo z kolejnymi aktualizacjami przeglądarek, ciągle coś przestawało działać z powodu używania dość zaawansowanego JavaScript (tutaj najbardziej dawał w kość Chrome, ciągle coś usuwali, albo dodawali, a po kilku miesiącach znowu usuwali). Poza tym, pojawiło się kilka stron internetowych będących swego rodzaju interaktywnymi muzeami online, dającymi możliwość grania. Ponadto czy ktoś, kto ma ROM-y na swoim dysku lokalnie, używałby emulatora online? Wydaje mi się że takie osoby mają już zainstalowane co trzeba.

K: Jak duże jest zainteresowanie OGF-em i SimilarTypem? Jak to wygląda na przestrzeni całego okresu funkcjonowania?

s: Ruch na OGF to zależnie od dnia, między 1500 a 3000 unikatowych wejść dziennie. Przez cały okres funkcjonowania jest dość stabilnie, choć dawniej było więcej wejść pochodzących z Google (spadek nastąpił prawdopodobnie od momentu jak zaczęto faworyzować strony z https).
Jeśli chodzi o ST to ruch jest znacznie mniejszy, w okolicach 100 dziennie.

K: Czy są jeszcze jakieś projekty starogrowe, w które jesteś zaangażowany, a o których nie wiem lub je pominąłem?

s: Nie ma. Na dzień dzisiejszy nie planuję też czegoś więcej, poza ewentualnym programowaniem gier niezależnych.
Swoją drogą, fajne czasy nastały pod tym względem. 10 czy 20 lat temu w życiu bym nie pomyślał, że w przyszłości będzie powstawać tyle nowych i czasami naprawdę fajnych gier w pixel arcie.

K: Dzięki, że zgodziłeś się poświęcić mi trochę czasu na przeprowadzenie tego wywiadu. 🙂

s: Nie ma problemu. Pozdrawiam wszystkich retro graczy!


Game list generator - Przykład
Game list generator – Przykład

Ze swojej strony zachęcam czytelników do sprawdzenia jak działają wspomniane w rozmowie narzędzia. 🙂 Sam od czasu do czasu z nich korzystam, bo uważam, że są skuteczne i na przestrzeni lat ich funkcjonowania zaoszczędziłem dzięki nim już sporo czasu i błądzenia po Internecie. 🙂 Wyszukiwarka potrafi znaleźć także cheaty, opisy przejść, manuale itp. Serwisy posiadają sekcje typu info i help, z którymi proponuję się zapoznać – można dowiedzieć się jak konstruować zapytania i jak interpretować zwrócone wyniki. 🙂 Linki do narzędzi poniżej:
Old Games Finder
SimilarType
Game list generator

Tagi , , , , , , .Dodaj do zakładek Link.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.