GTA Online zoptymalizowane przez gracza. Czasy ładowania o 70 proc. krótsze!
Jeden z graczy GTA Online odkrył, z czego wynikają bardzo długie czasy ładowania w grze Rockstara. I zaproponował rozwiązanie.
Fan "GTA Online" i programista, korzystający z GitHuba pod pseudonimem tostercx, postanowił przyjrzeć się sprawie zaskakująco długich czasów ładowania gry Rockstara. Są one o tyle zaskakujące, że zdają się być niezależne od platformy, na których działa gra. Pojawiają się nie tylko na słabszych PC i starszych konsolach, ale również na sprzętach nowej generacji z szybkimi dyskami SSD.
Sprawę w szczegółach tłumaczy Digital Foundry. Tostercx badając sprawę tych długich loadingów odkrył, że nie są one związane z obciążeniem dysku czy połączenia sieciowego. W windowsowym menadżerze zadań zauważył, że zamiast tego gra obciąża w 100 proc. jego procesor, korzystając z jednego wątku.
Przyglądając się bliżej odkrył, że wynika to ze sposobu, w jaki gra indeksuje dostępne graczowi w świecie gry przedmioty. Zapisywane są one jako lista w 10-megowym pliku tekstowym i za każdym razem, gdy jest na niej wprowadzana jakaś modyfikacja, program sprawdza wszystkie wpisy i poprawność ich indeksów.
Początkowo nie stanowi to wielkiego problemu, ale wraz ze zwiększaniem się liczby przedmiotów prowadzi do tego, że program musi jednorazowo dokonać 1 984 531 500 (niemal 2 miliardy) porównań. A to trwa.
Wydaje się, że gra robi to by sprawdzić, że na liście nie pojawiły się duplikaty. Według użytkownika tostercx cały proces jest jednak niepotrzebnie złożony i prowadzi do wielokrotnego sprawdzania również pustych list. Według niego da się go znacząco skrócić. I takie też rozwiązanie zaprogramował.
Jego modyfikacja, którą udostępnił na GitHubie, skraca czasy ładowania o ok. 70% (z sześciu minut do niecałych dwóch). Jednocześnie jednak modyfikuje pliki gry, co jest równoznaczne z hakowaniem - i może skutkować zbanowaniem gracza w przypadku jej użycia.
W tym wypadku więc z odkrycia gracza musi teraz skorzystać sam Rockstar, by jego efekty były odczuwalne dla graczy.
Pisze tostercx.