Half-Life: Valve w końcu usunęło buga pamiętającego czasy Windowsa 2000

Half-Life niedawno dostał dużą aktualizację z okazji 25. rocznicy powstania. Jednak nawet tamta aktualizacja nie naprawiła problemu, który trapił grę od blisko ćwierć wieku.

Zrobiła to dopiero kolejna aktualizacja. W słynnej oskryptowanej sekwencji, w czasie której długa, zielona macka przebija się przez okno i ciągnie do siebie jednego z naukowców, modele macki oraz naukowca “rozjeżdżają" się względem siebie. Wygląda to jakby naukowiec pływał w powietrzu siłą własnego rozpędu. Jednak teraz błąd ten w końcu został naprawiony. Programista Valve, Ben Burbank naprawił problem i wyjaśnił jak udało mu się tego dokonać.

Co ciekawe, z początku problem nie występował. Najpoważniejsza teoria na jego temat mówi, że powstał gdy wraz z pojawieniem się Windowsa 2000 wprowadzono API Win32. Burbank wyjaśnia, że rozmijanie się modeli można było zobaczyć jedynie na komputerach pracujących z systemem Windows 2000 lub nowszych. Pierwotnie twórcy chcieli naprawić błąd jeszcze w aktualizacji na 25-lecie, ale inne zmiany miały większy priorytet, dlatego gra otrzymała drugą, szybką poprawkę.

Reklama

Można to było zrobić na trzy sposoby. Pierwszy to poprawka w kodzie, która zdaniem Burbanka byłaby możliwa, ale wymagała by ponownego sprawdzenia każdej oskryptowanej sekwencji i mogła nie rozwiązać problemu. Drugi to zmiana animacji (możliwa do wykonania) oraz trzeci czyli zmiana mapy tak, żeby animacja lepiej się synchronizowała. Finalnie padło na zmiany na mapie. Przy zmianie animacji powstawało ryzyko, że gracz stojący w przejściu strzeli do naukowca, przerywając cała sekwencję, po czym animacja wyglądałaby absurdalnie. Dlatego zdecydowano się na wprowadzenie zmiany w sposobie odpalania animacji, by tej nie dało się przerwać. 

Ale ten scenariusz też powodował ryzyko - przekompilowana, zmodyfikowana mapa mogła wprowadzić mnóstwo zmian w finalnym pliku bsp. Pamiętajmy, że ostatni raz mapy kompilowano na komputerach z systemem Windows 95 / 98. Każda niepożądana zmiana w pliku bsp mogła skutkować niewielkimi, ale irytującymi błędami w ścieżkach, po jakich poruszają się modele oraz w wykrywaniu kolizji. Twórcy tego nie chcieli, więc zmian dokonano bezpośrednio otwierając kod mapy w hex-edytorze. Jest to sposób zmiany danych binarnych, z których składa się każdy plik. Pliki otwarte w takim edytorze wyglądają jak ciąg liter i liczb, zgrupowanych pary.

Odpalanie animacji macki na otwarciu drzwi zamiast momentu kiedy gracz przechodzi przez drzwi zapewniało, że naukowiec nie zostanie zastrzelony zanim modele zaczną się synchronizować. Animacja jest przez to odrobinę inna, ale przynajmniej działają w sposób bardziej zbliżony do tego, jaki pierwotnie zakładali twórcy.

INTERIA.PL
Dowiedz się więcej na temat: Valve | Half-Life
Reklama
Reklama
Reklama
Reklama
Strona główna INTERIA.PL
Polecamy