Co wspólnego mają koty z radiem w Fallout 4?
Okazuje się, że są sprytnym obejściem problemu. Podobnie jak wiele innych, na pierwszy rzut oka dziwnych, rozwiązań w grach wideo.
24.01.2017 17:59
Old World Radio: Boston to mod do Fallouta 4 dodający do gry ponad 30 nowych stacji radiowych. Niektóre z nich puszczają po prostu muzykę, inne zawierają profesjonalnie nagrane audycje. Obecnie natomiast autor modyfikacji pracuje nad dodaniem jeszcze jednej stacji, w której głos podłoży Timothy Banfield, znany z wcielania się w Christophera Walkena.
Mod działa dobrze i jest wysoko oceniany, ale - jak zauważyło Kotaku - jakiś czas temu jeden z graczy zgłosił na Nexusie coś dziwnego. Otóż w pewnym momencie zaczął majaczyć mu przed oczami... migocący kot. Da się w niego trafić, można też zabić go odpowiednią komendą z poziomu konsoli, ale drań ciągle wraca i trochę przeszkadza.
Jeden z deweloperów moda szybko rozwiązał problem, ale postanowił też udzielić wyjaśnienia, skąd ten kot się tam bierze. Okazuje się, że sierściuch jest spawnowany kawałek za graczem za każdym razem, gdy niesłuchana przez niego stacja radiowa zmienia piosenkę. Trwa to kilka sekund, a wszystko po to, by podtrzymać nieaktywną stację "przy życiu". Kot działa po prostu jak samodzielny odbiornik nastawiony na daną stację.
Keeping inactive radio stations alive - Fallout 4 tech demo
Dziwne? A co powiecie na pociski napędzające pojazdy w modzie XRE Cars do Fallouta 3 i New Vegas? Silnik, na którym oparte są obie gry, nie obsługuje poruszających się pojazdów i jeśli widzimy je w grze, jest to po prostu animacja. Dlatego autor XRE stworzył drugi, działający obok tego właściwego. Zarówno poruszanie się pojazdów, jak i sterowanie nimi odbywa się za pomocą niewidocznych pocisków wystrzeliwanych w stronę ruchomych elementów. Potem wszystko przejmuje fizyka.
Tego typu obchodzenie ograniczeń towarzyszy grom od bardzo dawna, a największą kreatywnością musieli wykazywać się twórcy gier na naprawdę stare sprzęty. Jak na przykład w Exile na BBC Micro. Ówcześnie gra oferowała bardzo dużo: otwarty, proceduralnie generowany świat, newtonowski model fizyki czy możliwość dalszej zabawy po ukończeniu fabuły. Na Micro radziła sobie dobrze, ale powstała też wersja na słabszy system - Acorn Electron. Wyglądała tak, jak na obrazku po lewej.
Parę ciekawych historii mają też ludzie z Insomniac Games. Ratchet & Clank 3 był pierwszą grą z serii oferującą multiplayer online. Problem w tym, że gry nie dało się patchować. Rozwiązanie? EULA, która za każdym razem pobierała się z serwerów i wyświetlała przed uruchomieniem gry. Była ona pobierana do bufora bez sprawdzania, czy na pewno się w nim zmieści.
Sprytni deweloperzy wpadli na pomysł, żeby przepełniać rzeczony bufor powodując nadpisanie pewnej zmiennej, to z kolei prowadziło do przeskoku do kodu, który ukryty był w umowie licencyjnej i umożliwienia zainstalowania łatki.
Albo Monolith Productions, które miało problem z przejściem certyfikacji na konsolach. Jak mówi Michael Carr-Robb-John, dopuszczenie gry do sprzedaży na konsolach to kwestia w dużej mierze umowna, ale pewne rzeczy są niezmienne. Jedną z nich jest wymóg, by od momentu uruchomienia gry do wyświetlenia jej pierwszego ekranu minęły nie więcej niż cztery sekundy. Gra Michaela potrzebowała na to 26 sekund.
Pogrzebał trochę w kodzie, wyizolował elementy, które nie były potrzebne na start i udało mu się zejść do 10 sekund. Nadal za długo. Nagle go oświeciło, że konsola miała jeszcze jeden wymóg - przed uruchomieniem gry (i startem właściwego odliczania) musiały wyświetlać się dwa ekrany, których gracz przez pewien czas nie mógł pominąć. Wniosek? Zacznijmy ładować menu główne, kiedy sfrustrowany gracz tłucze w pada próbując pominąć wyświetlające się na ekranie bzdury. Zadziałało i choć nie udało się zejść do czterech sekund, producent konsoli dopuścił grę do sprzedaży.
Takich historii jest więcej i pokazują, że robienie gier wideo to nie tylko czarowanie w kodzie, ale też spryt programistów i stosowanie małych "sztuczek". Znacie ich więcej? Podzielcie się w komentarzach.
Bartosz Stodolny