커버링 공간(및 쌍곡기하학)을 이용한 슈퍼 마리오 64 해킹
**덮개 공간(covering spaces)**은 위상수학에서 중요한 개념으로, 기본적으로 한 공간 위에 연속적이고 전사적인 사상으로 덮인 공간을 의미합니다.
보통 덮개 공간은 원래 공간의 각 점 근처가 여러 개의 분리된 복사본(섬유)으로 나누어져 있으며, 각 복사본은 원래 공간의 해당 부분과 위상동형입니다.
**보편 덮개 공간(universal cover)**은 단순 연결된 덮개 공간으로, 원래 공간의 모든 덮개 공간 중에서 가장 보편적인 역할을 하며, 예를 들어 도넛 모양의 공간(토러스)의 경우 무한히 반복된 직선 형태의 공간이 보편 덮개가 됩니다.
특히, 슈퍼 마리오 64 게임에서 맵의 위치 좌표가 부동소수점에서 short int로 변환되면서 발생하는 모듈로 연산이 덮개 공간 구조와 연결되어, 이를 이용한 속도향상 및 글리치가 가능함을 설명합니다.
또한, 두 개 이상의 구멍이 있는 공간의 보편 덮개는 **자유군(free group)**의 작용으로 형성되며, 이 공간은 **쌍곡기하학(hyperbolic geometry)**과 관련된 복잡한 구조를 띠게 됩니다.
이 글은 덮개 공간 개념을 통해 게임 내 물리 엔진의 수학적 구조와 이를 활용한 해킹 기법을 직관적으로 이해할 수 있게 하며, 데이터 타입 변환 시 발생하는 정보 손실이 보안 취약점으로 이어질 수 있음을 실용적 사례로 제시합니다.
