팩맨 유령들의 AI

루리웹에서 예전에 올렸던 글이 링크되었길래 봤는데, 팩맨 유령들은 다 이름이 있고 제각기 다른 전략으로 움직인다는 내용이다. 마침 작년에 이걸 제대로 설명한 Retro Game Mechanics Explained의 영상을 본 적이 있었기에 그 내용을 소개하고자 한다. 제목에서의 AI는 게임 상에서 등장하는 적이나 NPC 등의 액션 알고리즘을 뜻하고 일반적인 인공지능과는 좀 괴리가 있을 수 있지만 보통 게임에서 이 프로그래밍된 […]

Read More 팩맨 유령들의 AI

물리적 치트키

메가드라이브 소닉 3D 블래스트는 레벨을 선택할 수 있는 모드로 들어가는 치트가 있었다. 그런데 이 모드로 들어가려면 커맨드를 입력하거나 하는게 아니고 플레이 도중 팩을 직접 툭툭 치는 물리적인 방법을 이용해야 했다고 한다. 위 영상에서 당시 개발자였던 Jon Burton이 이것에 대해 자세히 설명했다. 실은 노리고 넣은 이스터에그는 아니었다고. 세가의 게임 버그 체크 과정은 몇 주가 걸리고 버그 […]

Read More 물리적 치트키

AI가 찾은 큐버트의 버그

진화전략 알고리즘으로 아타리판 큐버트를 학습시켰더니 두 가지 흥미로운 전략이 나타났다고 함.[1] 점수 획득형 게임에 ES나 RL 돌려서 새로운 것을 찾아내는 또 다른 예가 될 듯. 첫 번째는 무한 동반 자살. 좀 진행하다가 특정 위치에서 특정 타이밍에 자살하면 쫓아오는 적도 같이 떨어지고, 그 때 목숨도 늘어나기 때문에 점수를 계속 올리는 패턴에 빠지게 된다. 두 번째가 좀 […]

Read More AI가 찾은 큐버트의 버그

세계 최초의 버그

에이다 러브레이스가 1843년에 쓴 해석기관을 위한 베르누이 수를 구하는 프로그램은 세계 최초의 컴퓨터 프로그램으로 알려져 있다. 해석기관은 끝내 완성되지 못했고, 러브레이스 역시 이 프로그램이 실행되는 것을 볼 수 없었다. Two-Bit History에서는 러브레이스의 프로그램을 C로 번역하는 과정과 그 결과물을 소개하였다. 그는 번역 후 실행을 시켰더니 계속 잘못된 결과가 나와서 어디가 문제였는지를 살펴보니, 원래 코드의 네 번째 […]

Read More 세계 최초의 버그

팩맨 킬스크린

Retro Game Mechanics Explained에서 올렸던 팩맨의 킬스크린 버그에 대한 영상. 팩맨에서는 레벨 256에 도달하면 버그가 일어나는데, 그 원리를 설명하고 있다. 화면 우하단에는 현재 레벨을 과일로 표시하는 레벨 카운터가 있는데 각 레벨마다 상징하는 아이콘이 주어져 있고 (레벨 13부턴 열쇠 모양으로 고정) 레벨을 올라가며 옆으로 밀어내는 식이다. 이는 위와 같은 간단한 알고리즘으로 구현된다. 레벨 L의 값이 오버플로 […]

Read More 팩맨 킬스크린

마이너스 월드

슈퍼 마리오 브라더스에서 버그를 이용해 마이너스 월드로 갈 수 있다는 것은 잘 알려져 있다. 젤다의 전설 1에서도 이에 대응하는 마이너스 월드가 있다는 것이 최근 유튜브 영상을 통해 알려짐. 젤다의 전설 1에서 등장하는 맵은 8*16개이지만 실제로는 맵의 위치를 나타내는 인포는 1바이트=16*16개라 절반($00-$7F)만을 쓰는 것이고 나머지 절반에 위치하게 되면 스타트 지점으로 돌아가도록 예외처리를 해놓는데 SKELUX가 코드에서 해당 […]

Read More 마이너스 월드

메모리 위를 걷다 – 슈퍼 마리오 랜드 2

레트로 게임의 작동원리를 어셈블리어 수준까지 자세하면서도 이해하기 쉽게 가시화해서 설명해주는 유튜브채널 Retro Game Mechanics Explained의 영상. 게임보이 슈퍼 마리오 랜드 2에는 특정 조건을 만족시키면 발생하는 버그가 있는데, 이 버그를 쓰면 램과 카트리지 롬이 그대로 맵 타일로 등장하고 심지어 수정할 수도 있게 되어서 이를 이용해 게임을 클리어하게 만들 수 있다. 슈퍼 마리오 랜드 2의 초기 버젼은 […]

Read More 메모리 위를 걷다 – 슈퍼 마리오 랜드 2