게임 매거진 킬스크린에 대한 내용은 Kill Screen 문서 참고하십시오.
팩맨의 킬스크린. 사실상 팩맨의 엔딩이다.[1] |
[clearfix]
1. 개요
Kill Screen주로 옛날의 비디오 게임에서 주로 나타나던 현상들.
아케이드 비디오 게임들 중에는 같은 스테이지의 난이도만 올리면서 무한 반복이 되는 형식의 게임들이 많았다. 예를 들면 팩맨이나 동키콩 등이 있는데 물론 당시에는 하드웨어의 비트 문제도 있고 용량 자체가 적었기 때문에 한계가 명확해서 이걸 계속 밑도 끝도 없이 하다 보면 하드웨어가 그걸 버티지 못하고 이상을 일으킬 수 있었으므로 제작사에서는 이걸 방지하기 위해 만들어놓은 일종의 장치를 만들거나 그냥 냅두는 바람에 소프트웨어적인 버그를 일으키는 경우도 있었다. 어쨌거나 둘 다 게임 진행이 전혀 불가능한 상태가 되므로 흔히 킬스크린이라고 불렸다. 요약하면 더 나가면 게임을 넘어서 기계가 버틸 수가 없으니 이제 그만 하고 죽으라는
보통 이런 류의 게임은 밑도 끝도 없으므로 플레이어들은 킬스크린을 진정한 엔딩으로 취급한다.
2. 유명한 킬스크린
- 팩맨: 256레벨에 도달하면 화면 반쪽이 깨진다. 팩맨은 8비트 게임이므로 저장용량이 8비트[2]이기 때문에 레벨 256에 도달하면 레벨 0으로 인식되기 때문이다. 정확히는 우측 하단의 레벨 카운터 때문이다. 레벨 카운터는 1부터 20까지의 번호를 매겨 20개의 아이콘을 보관한 목록에서 현재 레벨에 따라 일정 범위의 그래픽을 불러와 우측부터 그려내는 식으로 작동하는데 현재 레벨을 N이라고 하면 N<8이라면 해당 목록에서 1부터 N까지의 그래픽을 불러오고, 그 다음에 7-N개의 빈 칸(검은색)을 로딩한다.[3] 하지만 레벨 256에 도달하면 레벨 0으로 인식되기 때문에 게임은 1부터 0까지의 목록을 불러오려고 시도한다. 이 때 이 불러오는 작업은 오류로 즉시 중단되지 않고 현재 불러오는 번호가 0이 될 때까지 계속해서 번호를 증가시키며 로딩한다. 따라서 기존에 의도했던 1부터 20까지의 그래픽 데이터 이외에도 사운드 데이터처럼 그래픽이 아닌 데이터를 불러와서 게임의 그래픽을 표시하려고 시도하므로 화면이 박살이 나는 것이다. 해당 과정을 설명한 영상. (영문)
여기서 화면의 오른쪽 절반만 영향을 받는 이유는,팩맨의 그래픽 데이터는 메모리 주소 순서대로 레벨 아이콘과 잔기가 그려지는 맨 아래 2줄[4]이 가장 먼저 오고 나머지 그래픽 데이터는 오른쪽부터 그려진다. 이 때, 위에 설명한 목록에서 1부터 0까지의 데이터를 불러오려고 시도할 때 현재 목록에서 불러오는 데이터의 번호 역시 8비트로 저장되어 0~255의 값만을 가질 수 있기 때문에 256번째 데이터를 로딩할 때 이 번호 역시 오버플로되어 0이 되므로 결과적으로 총 256개의 레벨 아이콘이 로드된다. 이 아이콘들은 메모리 주소 순서대로 배치되기 때문에 처음 14개의 아이콘은 정상적으로 그려지지만,[5] 15번째 아이콘부터는 화면의 우측 상단부터 위에서 아래로, 오른쪽에서 왼쪽의 순서대로 기존에 로딩되어 있던 펠렛, 벽, 파워 펠렛 등을 덮어씌우기 시작한다. 이렇게 총 256개의 아이콘을 로딩하고 나면, 현재 레벨이 게임상에서 0 레벨이므로, 7개의 빈칸이 추가로 로딩된다.
이후에는 게임이 화면 좌측 하단에 잔기를 표기하고, 마지막으로 적과 플레이어를 로딩하고 나면 256레벨 혹은 0레벨이 시작된다. 게임은 정상적으로 동작하지만, 다음 레벨로 넘어가기 위해서는 244개의 펠렛이 필요한데, 잔기를 최대로 들고 오더라도 이 레벨에서 얻을 수 있는 최대 펠렛 갯수는 168개이기 때문에[6] 다음 레벨인 1레벨로 진행하지는 못한다.
킬스크린 중 가장 유명하다. 주먹왕 랄프의 엔딩 크레딧에서 디즈니 로고가 깨져 나오는 것도 이것의 패러디인데 상술한 내용처럼 화면의 오른쪽 반쪽만 깨져 나오는 것도 충실히 재현했다.
- 디그 더그: 제작사가 의도적으로 255레벨의 접근을 막은 사례. 255레벨에서는 시작 위치에 적이 배치되어 있기 때문에 게임이 시작하자마자 적에게 닿아서 죽는다. 여기까지만 하고 그만 하라는 의미로 보면 된다. 다만 현재는 에뮬레이터도 크게 발달했기 때문에 플레이어 무적 치트를 사용해 강제로 이 레벨을 클리어하면 킬스크린이란 이름에 맞지 않게 게임이 고장나거나 하지는 않고 1 레벨로 다시 돌아온다.
- 덕헌트: 99 레벨이 끝이다. 100 레벨에 도달하면 레벨이 0으로 표기되며 각종 기현상이 일어난다. 자세한 것은 항목 참조.
- 갤러그: 스테이지 0으로 표기되며 화면에 아무것도 나오지 않는다. 자세한 것은 항목 참조.
- 닌텐도 테트리스: 레벨 29가 대표적인 킬스크린으로 알려져 있는데 테트로미노가 내려오는 속도가 1줄 당 1프레임(약 1/60초)에 불과해 0.33초만에 바닥에 닿아 버려 일반적인 방법으로는 게임 진행이 불가능해서 이렇게 알려졌지만 이후에 인공지능을 이용하여 실험해 본 결과 155레벨 이후부터 게임이 멈추는 진짜 킬스크린이 발견되었다. 인간 중에선 13세 소년 윌리엄 깁슨이 157레벨을 돌파해 최초로 킬 스크린을 보는 데 성공했다. 만약 킬스크린을 피해 255레벨을 클리어하면 다시 0레벨로 되돌아간다.
3. 기타
킬스크린을 주제로 만든 인디 게임으로 ROM CHECK FAIL이 있다.팩맨 256은 아예 킬스크린에 침식당한 "256 레벨"을 배경으로 하고 있다. 킬스크린이 화면 밑에서 올라오며 팩맨이 여기 닿으면 즉사하고, 팩맨이 킬스크린에 근접할 수록 화면 자체가 심하게 치직거리는 등 "실시간으로 망가지는 게임"의 정의를 잘 재현했다.
마인크래프트에서도 소프트웨어의 한계로 인해 일정 거리 이상 가다보면 비정상적이고 왜곡된 지형들이 생성되는 경우가 있었다. 킬스크린은 아니지만 원리 자체는 동일하다. 후에 패치되었다.[8][9]
[1] 다만 플레이 자체는 킬스크린 이후에도 무한히 가능하다.[2] 따라서 저장할 수 있는 값은 0~255의 총 256개이다.[3] 참고로 7<N<19라면 N-6부터 N까지, N>18이라면 13부터 19까지의 아이콘을 불러온다. 따라서 목록의 20번 아이콘은 기본적으로는 사용되지 않는다.[4] $4000~$4039, 16진수[5] 이 때, 14번째 아이콘은 로딩은 되지만 게임 화면상에는 보이지 않는다.[6] 화면 우측에 펠렛이 약간 있는데 이 펠렛들은 레벨 아이콘 로딩 과정에서 생긴 것이기 때문에 죽으면 다시 스폰된다. 참고로 255레벨까지 얻을 수 있는 모든 득점요소를 얻고 이 펠렛까지 모두 모으면 이 게임에서 구현할 수 있는 최고 점수인 3,333,360점이 된다.[7] 이유는 동키콩 문서에도 작성돼 있듯이 동키콩에는 시간 제한이 있는데 레벨 22에 도달하면 오버플로로 인하여 시간이 엄청나게 짧아진다. 이게 얼마나 짧아지냐면 마리오가 두번째 철판에 올라갔는데 죽어버린다.[8] 지금은 정상적인 지형이 생성되며 자기장 결계와 방벽으로 막혀져있다. 엔더진주를 이용하지 않고는 절대 넘어갈 수 없다.[9] 원래는 일반적인 플레이로는 도달할 수 없는 곳이니 패치할 생각 없다고 했는데 베타 1.8에서 대대적인 업데이트를 하다가 우연히 고쳐졌다고. 하지만 이 우연한 픽스가 의도하지 않은 또 다른 버그를 불러와서 결국 머나먼 땅 픽스는 롤백했다고 한다.