Ekran śmierci

Ekran śmierci (ang. kill screen) – plansza lub poziom w grze komputerowej, która powstrzymuje gracza od kontynuowania gry z powodu błędu w implementacji. Zamiast zakończyć się normalnie, gra zacina lub resetuje się bądź wywołuje inne błędy uniemożliwiające rozgrywkę.

Przykłady

[edytuj | edytuj kod]
 Zobacz więcej w artykule Pac-Man, w sekcji Poziom 256. − split screen.

Błąd w 256. poziomie gry Pac-Man. Połowa planszy jest zniekształcona, co w konsekwencji uniemożliwia jej zakończenie[1]. Spowodowane jest to błędem przekroczenia zakresu liczb całkowitych; programiści nie przewidzieli większej liczby poziomów niż 255. 255 to maksymalna wartość, jaką można zapisać za pomocą jednego bajtu. Gdy gracz dochodzi do 256 poziomu, licznik poziomów nie mieści się w zakresie ośmiu bitów (następuje przekroczenie zakresu liczb całkowitych) i wpływa na algorytm rysujący obiekty na planszy[1].

W wersji na automaty gra Donkey Kong zawiera błąd na poziomie 22. – gracz ginie już po kilku sekundach od rozpoczęcia gry[2]. W tym przypadku błąd występuje w algorytmie określającym czas dostępny dla gracza na ukończenie danego poziomu. Podczas obliczeń, zerowana jest flaga przeniesienia służąca procesorowi do przechowywania informacji o przekroczeniu zakresu przez wynik poprzedniej operacji. Flaga ta nie jest sprawdzana, przez co w przypadku, gdy wynik nie mieści się w 1 bajcie, odczytywany rezultat jest mniejszy niż spodziewany[3]. Przez to gracz nie dostaje wystarczającej ilości czasu, aby ukończyć poziom.

Wersja na NES-a również posiada błąd, ale na poziomie 133 - licznik czasu nastawiony jest na 400, przez to gracz nie ma wystarczającej ilości czasu na ukończenie poziomu.

Kolejny przykład kill screen. Błąd na 256. poziomie. W grze Dig Dug poziom numer dwieście pięćdziesiąt sześć zostaje wyświetlony jako poziom nr 0, a jeden z przeciwników umieszczony jest dokładnie na graczu, zabijając go natychmiastowo po rozpoczęciu rozgrywki[4]. Spowodowane jest to problemem identycznym jak w grze Pac-Man, gdzie występuje błąd przekroczenia zakresu liczb całkowitych.

256. poziom w automatowej grze Galaga zawiera błąd i kill screen, lecz zależy on od ustawionego poziomu trudności. Na poziomie łatwym gra się resetuje. Na trudnym słowa "Stage 0" zostają na ekranie, a gra się zawiesza. Na najtrudniejszym, zachowuje się on jak na pierwszym poziomie. Jednakże na średnim, poziom zachowuje się jak crossover normalnego poziomu i drugiego "challenging stage" (poziomy nr 7, 39, 71, 103, 135, 167, 199, 231)[5].

Poziom nr 100 w Duck Hunt jest kolejnym przykładem kill screen. Gra wyświetla go jako poziom 0, a kaczki migają po ekranie. Te oszalałe kaczki można trafić, lecz przez to, że niektóre z nich w ogóle się nie pokazują, a gra zachowuje się jakby odleciały, poziom nie może być ukończony[6].

Błąd na poziomie numer 29. w grze Tetris; to także kill screen. Po 29. poziomie, nazwy poziomów składają się z liczb w systemie szesnastkowym. Na tym poziomie klocki spadają z dwukrotnie większą prędkością niż normalnie. Nie jest możliwe ukończenie go bez używania cheatów, hacków lub TAS (tool-assisted speedrun)[7]

Idąc w ślad swojego protoplasty, Pac-man Jr. posiada kill screen. Na poziomie 146. gra nie rysuje ani kulek ani ścian, pojawia się jedynie czarny ekran z trzema błędnymi elementami po obu stronach planszy. Poziom nie może być ukończony ze względu na brak kulek. Duszki gonią Pac-Mana po czarnym ekranie, póki nie zostaną stracone wszystkie życia bądź gra nie zostanie zresetowana[8].

Przypisy

[edytuj | edytuj kod]
  1. a b Don Hodges, Pac-Man's Split Screen level analyzed and fixed
  2. Don Hodges, How High Can You Get
  3. Gra wykonuje działanie 220 + 40 co daje w wyniku 260. Wynik większy niż 255 zostaje ucięty do zakresu 8 bitów. Wynikiem takiej operacji (260 – 256) jest 4 – tyle sekund dane jest graczowi
  4. AtHomeTech, Dig Dug New World Record Kill Screen
  5. phantomdj, Galaga Stage 256 on Medium Skill
  6. raydempsey, Duck Hunt level 100 error
  7. Xkeeper0,Tetris Mode-A: To 29 and beyo-- wait, what the hell
  8. Jr Pac Man kill screen level – 146