Ekran śmierci: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
zmiana na przypis
Jacek k (dyskusja | edycje)
ort., drobne redakcyjne, drobne techniczne
Linia 1:
'''Ekran śmierci''' ([[język angielski|ang]]. ''kill screen'') – plansza lub poziom w [[gry komputerowe i wideo|grze komputerowej lub wideo]], która powstrzymuje gracza od kontynuowania gry z powodu błędu w implementacji. Zamiast "skończyćzakończyć się normalnie", gra zacina się,lub resetuje się lubbądź wywołuje inne błędy uniemożliwiające rozgrywkę.
 
== Przykłady ==
Do znanych ''ekranów śmierci'' należy 256. poziom w grze [[Pac-man]] – po dotarciu do niego połowa planszy jest zniekształcona, co w konsekwencji uniemożliwia jej zakończenie.<ref name="pac">Don Hodges, [http://www.donhodges.com/how_high_can_you_get2.htm Pac-Man's Split Screen level analyzed and fixed]</ref> Spowodowane jest to błędem [[Przekroczenie zakresu liczb całkowitych|przekroczenia zakresu liczb całkowitych]]; programiści nie przewidzieli większej ilości poziomów niż 255, maksymalna wartość jaką można zapisać za pomocą jednego bajta. Gdy gracz dochodzi do 256 poziomu, licznik poziomów "przeskakuje" na następny bajt i wpływa na algorytm rysujący obiekty na planszy.<ref name="pac"/>
=== [[Pac-man]] ===
Do znanych ''ekranów śmierci'' należyW 256. poziompoziomie w grzegry [[Pac-man]] – po dotarciu do niego połowa planszy jest zniekształcona, co w konsekwencji uniemożliwia jej zakończenie.<ref name="pac">Don Hodges, [http://www.donhodges.com/how_high_can_you_get2.htm Pac-Man's Split Screen level analyzed and fixed]</ref> Spowodowane jest to błędem [[Przekroczenie zakresu liczb całkowitych|przekroczenia zakresu liczb całkowitych]]; programiści nie przewidzieli większej ilości poziomów niż 255,. 255 to maksymalna wartość jaką można zapisać za pomocą jednego bajtabajtu. Gdy gracz dochodzi do 256 poziomu, licznik poziomów "przeskakuje"nie namieści następnysię bajtw zakresie ośmiu bitów (następuje [[Dodawanie_z_przeniesieniem|przeniesienie przy dodawaniu]]) i wpływa na algorytm rysujący obiekty na planszy.<ref name="pac"/>
 
=== [[Donkey Kong (gra)|Donkey Kong]] ===
Innym przykładem jest 22. poziom w grzeGra [[Donkey Kong (gra)|Donkey Kong]], gdziezawiera zbłąd na powodupoziomie 22. błędu gracz ginie już po kilku sekundach od rozpoczęcia gry.<ref>Don Hodges, [http://www.donhodges.com/how_high_can_you_get.htm How High Can You Get]</ref> W tym przypadku błąd występuje w algorytmie definiującymokreślającym czas dostępny dla gracza dla na ukończenie danego poziomu. Podczas obliczeń, zerowana jest [[Rejestr flag procesora|flaga przeniesienia]], jednasłużąca z[[Procesor|procesorowi]] flagdo procesora,przechowywania którainformacji informujeo czyprzekroczeniu zakresu przez wynik poprzedniej operacji jest większy niż jeden bajt. Flaga ta nie jest sprawdzana, przez co w przypadku, gdy wynik jestnie większymieści niżsię w jeden1 bajtbajcie, odczytywany rezultat jest mniejszy niż by się tego spodziewałospodziewany.<ref>Gra wykonuje działanie 220 + 40 co daje w wyniku 260. Wynik jest większy niż 255 cozostaje wówczasucięty dajedo zakresu 8 bitów. Wynikiem takiej operacji (260 % 256) jest 4, i tyle sekund dane jest graczowi</ref> Przez to gracz nie dostaje wystarczającej ilości czasu, aby ukończyć poziom.
 
=== [[Dig Dug]] ===
Kolejnym przykładem jest 256. poziom w grze [[Dig Dug]]. Gra wyświetlazostaje planszęwyświetlony jako poziom zerowy, a jeden z przeciwników umieszczony jest dokładnie na graczu, zabijając go natychmiastowo po rozpoczęciu rozgrywki. <ref>AtHomeTech, [http://www.youtube.com/watch?v=600bQMqrEBE Dig Dug New World Record Kill Screen]</ref> Spowodowane jest to tymproblemem samym problememidentycznym jak w przypadku grygrze PacMan, gdzie występuje błąd [[Przekroczenie zakresu liczb całkowitych|przekroczenia zakresu liczb całkowitych]].
 
{{Przypisy}}