슈퍼 마리오 64(Super Mario 64) 해킹, 위상수학으로 스피드런을 혁신하다!

by DD
3개월 전
조회수 24

슈퍼 마리오 64(Super Mario 64) 스피드런 커뮤니티에서 위상수학(Topology) 개념을 활용하여 게임 내 버그(Bug)를 해킹하는 기술을 소개함

게임 내 위치 정보를 표현하는 부동 소수점(Floating Point) 데이터 타입정수형 변환(Casting) 과정에서 발생하는 수학적 원리를 분석함

커버링 맵(Covering Map), 기본군(Fundamental Group) 등 위상수학적 개념을 통해 게임 내 '병렬 우주(Parallel Universe)' 현상을 설명함

댓글에서는 이러한 기술이 스피드런(Speedrun) 전략에 어떻게 활용되는지, 그리고 수학적 지식이 게임 해킹에 어떻게 기여하는지에 대한 논의가 이루어짐

SM64의 병렬 우주(Parallel Universe)와 위상수학

게시글은 슈퍼 마리오 64(Super Mario 64)에서 위치 정보(Position Data)를 표현하기 위해 사용되는 부동 소수점(Floating Point) 숫자를 정수형(Short Int)으로 변환하는 과정에서 발생하는 현상을 분석한다. 특히, 이러한 변환 과정이 커버링 맵(Covering Map)과 유사한 구조를 가지며, 게임 내에서 '병렬 우주(Parallel Universe)'와 같은 효과를 만들어낸다고 설명한다. 이러한 현상은 스피드런(Speedrun)에서 벽 통과(Wall Clipping)와 같은 기술을 가능하게 한다.

부동 소수점(Floating Point)과 정수형 변환(Casting)의 함정

게시글은 부동 소수점(Floating Point) 숫자를 정수형(Short Int)으로 변환하는 과정에서 정보 손실이 발생하며, 이는 게임 내에서 예상치 못한 동작(Unexpected Behavior)을 유발할 수 있다고 지적한다. 특히, 이러한 변환 과정에서 발생하는 모듈로 연산(Modulo Operation)의 특성을 이용하여, 스피드러너(Speedrunner)들은 마리오의 위치를 조작하고, 의도적으로 충돌 감지(Collision Detection)를 우회하는 기술을 사용한다. 이는 데이터 타입(Data Type) 선택의 중요성을 강조한다.

기본군(Fundamental Group)과 게임 맵(Game Map) 구조

게시글은 슈퍼 마리오 64(Super Mario 64)의 맵(Map) 구조를 3차원 토러스(3-dimensional Torus)로 모델링하고, 맵의 기본군(Fundamental Group)을 분석한다. 맵의 위상학적 특성을 이해함으로써, 스피드러너(Speedrunner)들은 게임 내에서 지름길(Shortcut)을 찾거나, 특정 지점에 빠르게 도달(Fast Travel)하는 방법을 고안할 수 있다. 이러한 분석은 게임 맵의 구조적 특성(Structural Characteristics)을 활용하는 전략의 기반이 된다.

스피드런(Speedrun)에서의 활용

게시글은 위상수학적 개념을 활용한 SM64 해킹 기술이 스피드런(Speedrun)에서 어떻게 사용되는지 구체적인 사례를 제시한다. 특히, 백워드 롱 점프(Backwards Long Jump)와 같은 기술을 통해 마리오의 속도를 극대화하고, 이를 통해 벽을 통과(Wall Clipping)하거나, 맵의 특정 지점에 순식간에 이동(Instantaneous Movement)하는 방법을 설명한다. 이러한 기술은 게임의 물리 엔진(Physics Engine)의 취약점을 공략하여 기록 단축에 기여한다.

Hacking Super Mario 64 using Algebraic Topology