버니합에 서핑에 팀포 로켓점프까지 별의 별 기술 연습할때는 이해도 안 되고 제대로 뛰어지지도 않아서 짜증만 났는데 그때 이후로 한 10년 뒤의 이 영상 보고나서야 왜 그때는 안 됐는지 어떻게 했어야 했을지 감이 오는건 참 아이러니함... 그래서 공략영상에 전진 W키를 누르지 말라고 한거구나 이유 설명좀 해주지 젠장
0:13 슈퍼마리오 64에서 뒤로 엉덩방아 계속 박다가 갑자기 벽뚫고 튕겨나가는 현상의 원리 설명 이건 BLJ(Backwards Long Jumping) 으로 알려진 아주 유명한 글리치임. 스피드러너들이 정말 자주 사용하는 글리치지만 절대 쉬운 글리치는 아님. 일단 마리오의 롱점프는 즉시 마리오의 속도를 상한에 도달할 때 까지 1.5배 증가시킴. 이때 앞 방향은 48, 뒷 방향은 16이 최대 속도임. 재밌는건 앞 방향으로는 속도가 48을 넘으면 즉시 48로 속도값을 잘라버리지만, 뒷 방향으로는 속도가 16을 넘어도 자연스러운 감속을 통해 수 프레임에 걸쳐서 도로 16이하로 떨구도록 코드가 짜여져 있음. 즉, 뒷 방향으로는 순간적으로 속도가 16을 넘을 수 있음. 이때 만약 마리오가 뒷방향 롱점프를 하자마자 도로 땅에 있는 판정이 난다면? 속도가 감속되기 전에 또 뒷방향 롱점프를 계속 할 수 있게됨. 이걸 사용하면 속도를 매 뒷점프마다 1.5배씩 지수적으로 쌓아나갈 수 있음. 약 16번의 BLJ 후엔 마리오의 뒷방향 속도는 거진 1000을 넘기게 됨. 일반적으로 마리오가 혼자서 스스로 낼 수 있는 최대 속도가 48~70 사이라는걸 생각하면 말도 안되는 속도를 쌓는거지. 이제 이 압도적인 속도를 이용해서 온갖 폴리곤의 충돌 판정을 피해 움직이는 것이 가능함. 이건 마리오의 충돌 판정 방식 때문인데, quater step 이라고 부르는 방식임. 마리오의 속도를 가지고 다음 프레임의 마리오의 최종 위치를 계산한 후, 현재 위치랑 최종 위치까지 포함해서 그 사이를 4등분함. 그리고 4등분된 각각의 위치에서 폴리곤들과의 충돌을 판정하는 방식임. 이때 속도가 너무 빨라버리면 그 quater step 사이의 간격이 너무 벌어져서 온갖 지형들을 다 뚫고 다닐 수 있게 됨. 애초에 충돌 판정을 하지 않으니까. 여기에 TAS같이 휴먼 스피드러너 말고, 컴퓨터로 하는 스피드런 종목에서는 이 속도를 수십만 단위로 정확하게 프레임 단위로 쌓은 다음 튕겨나갈 수 있음. 이때 마리오의 위치값은 32비트 정수인데 반해, 폴리곤 충돌을 계산하는 좌표값은 16비트 정수임. 그래서 65535마다 오버플로우가 되면서 마리오의 실제 위치에는 아무것도 없어도, 처음 맵의 지형과 충돌 계산이 일어나면서 여전히 게임이 진행됨. 마치 65535칸마다 맵이 반복되면서 수많은 평행세계가 있는 것 같은 느낌. 그래서 평행세계(Parallel Universe, PU) 글리치 라고 불리고. 실제로 0스타로 4분 20초만에 게임을 클리어하는 TAS 기록에 사용된 수많은 글리치들 중에 하나임
선생님의 결론에 공감합니다. 예전에 사이퍼즈란 게임에서도 이와 비슷한 사례가 있었습니다. 우선 사이퍼즈란 게임은 xyz축을 전부 사용했었는데, 낭떠러지 지형에서 낙하시에 낙하모션이 나왔었습니다. 그런데 유저들은 이 낙하 모션을 캔슬하면서 기술을 넣는 방법을 발견하게 되는데, 바로 '낙궁'이라는 버그 기술이었습니다. 방법은 간단합니다. 사이퍼즈에선 마우스 휠 버튼이 캐릭터마다 자체 버프를 거는 키였는데, 낙하시 타이밍 맞게 휠버튼을 굴리면 낙하모션 대신에 버프 모션이 들어가게 됬습니다. 즉 낙하시 마우스 휠버튼 굴림 → 버프 모션을 기술 키(궁극기 포함)로 캔슬 이런 과정을 겪게 되는데, 방법이 상당히 쉬운편이여서 개나 소나 다 쓰게 되었습니다. 이걸 개발사인 네오플도 막으려고 했었던거 같았지만, 어느센가 신규 캐릭 홍보영상에서도 낙궁을쓰는 모습을 보여주면서 결국 자체적으로 컨텐츠화 시켰습니다. 결론은 선생님이 말씀하신것처럼 버그도 컨텐츠로 포장하면 그만입니다.
참고로 그 게임은 여전히 이동방식이 구식이라 이동이 되는 스킬을 사용시(예를 들어 뱀그림자) wa or wd를 누르고 대각선 이동하면 훨씬 멀리 이동이 가능하며 레나의 강화형 궁극기를 사용시 w와 s(뒤이동)의 이동속도가 같아지는 버그도 있었고 뭐 이거저거 굉장히 많습니다
당시 퀘이크3에서 광원효과 계산 최적화를 위해서 사용된 방법인 걸로 알고 있는데 부동소수점에 대한 1/sqrt(x)를 빠르게 구해주는 알고리즘으로 알고있어요. 근데 거기에 사용되는 16진법으로 표기된 상수 0x5f3759df가 알고리즘 계산에 큰 역할을 해서 실제 퀘이크3 소스 코드를 뜯어서 관련 라인을 보면 ㅅㅂ 뭥미? 등 재밌는 주석이 달려있어서 유명해진 방법이죠 ㅋㅋ
마인크래프트에도 버니합이랑 비슷한 게 있죠. 점프를 하지마자 0.05초 만에 시선을 45도 돌리고 a 또는 d키를 누른 다음에, 땅에 착지하기 직전에 다시 0 .05초 만에 정면을 보는 걸 계속 반복하면 되지만 너무 어려워서 스피드런에 이걸 이용한 사람은 없는 거 같더군요
소스엔진 게임에서는 이러한 기술들덕에 재미가 한층 더해졌던 것 같습니다. 혹시 기회가 되신다면 서프를 포함한 트릭즈(맞는 표현인지는 모르겠네요) 자체에 대해서도 설명해주실 수 있나요? 카스소스시절 트릭즈 서버를 항상 감으로만 플레이하곤 했는데 코딩애플님 컨텐츠로 정확한 원리가 어떻게 되는지 궁금합니다.
@@deleet8891 원조 카스 시리즈들은 에임 비중이 더 큰게 맞긴한데 카스 온라인은 라인선스만 카스지 사실상 다른 게임으로 보는게 맞긴함. 좀비모드에서 좀비로 플레이할 때 필요한 잡기술들 대부분이 버니합 파생형이고 인간 진영에서 할 때에도 버니합으로 생존 여부가 어느정도 갈리는 경우도 있음
사실 둠에서도 비슷했습니다. 대각선 방향으로 이동하면 플레이어가 쏜 로켓도 따라잡을 수 있습니다. 퀘이크 3에선 아예 별도의 장르인 defrag(정해진 코스를 온갖 트릭을 사용해서 빠른 시간에 골인하는)씬이 생겨났고, 해마다 커스텀 맵을 만들어서 대회를 열고 있습니다. 사실 무빙 관련한 버그는 벽에 붙었을 때 속도가 붙는 것도 있었고 경사면을 올라가다가 점프할 때 더 높이, 빠르게 점프가 되거나(퀘이크 1) 수평 방향으로 작용하는 모멘텀 없이 오로지 수직으로만 낙하할 경우 다시 튀어오르는 버그(퀘이크 3)도 있죠. 언리얼 토너먼트에선 엘리베이터가 올라갈 때 점프하면 더 높이 뛰는 버그도 있었고요. 퀘이크의 경우 이런 버그성 무빙과 데모 녹화 기능을 제공해서 작은 용량에 리플레이를 공유하는 게 가능하다는 점 때문에(콘솔 게임들만 해도 90년도 중후반-2000년도 초반엔 비디오 테입 혹은 디지털 캠코더로 녹화하고 이걸 어떻게든 피씨에서 볼 수 있게 인코딩했다고 쳐도 생성된 큰 용량의 비디오 파일을 올릴 호스팅 서비스를 찾아야 했는데 보통 일이 아니었죠. 지금이야 유튜브가 있으니 문제가 될 게 없지만)누가 더 레벨을 빨리 깨느냐로 경쟁을 하게 됐고 서로의 결과물을 온라인에 올려가며 순위를 매기게 되었으니… 이것이 Games Done Quick 같은 행사의 뿌리가 된 거죠. 둠도 마찬가지로 녹화 기능을 제공했습니다. 뭐 요즘 게임들이야 무빙에 버그가 있다면 많이 문제가 될 수 있겠지만 퀘이크 3이나 비슷한 시기의 게임들은 말기쯤 돼선 괴물만 돌아다니는 마굴이었던 상황이라 지금은 싱글 플레이 게임만 하는 입장에선 위에 언급한 파생물들을 보면 나름 재밌었던 시절로 추억하고 있고, 스피드런이나 디프랙 영상들은 아직도 한 번씩 보면 재밌습니다.
이런 버그성 테크닉이 게임에 무리를 주어 경험을 망치게 만드는 문제도 있죠... 처음 설계,상정한 걸 벗어나면 에러. 충돌이 터지면서 세이브 파일에 손상이 온다거나 스턱. 끼여버려서 빠져 나오지 못하게 된다던가 하는 일도 있다보니 무작정 된다고 하려는 게 반드시 좋지는 않죠. 헌데 점프가 있으며 가속도를 받을 수 있어도 행동. 스테미너가 있어야 한다거나 아예 점프연속 발동에 제한을 둔다거나 최대속도를 아예 일반적인 접근으론 명백한 제한을 둬버리면...? 아째보면 창과 방패의 대결 같습니다.
버니합에 대해 내용 추가하자면 영상에 나온 가속을 발생시키는 스트레이프 기술과, 점프 후 착지하는 순간 연속점프를 하면 착지경직이 없이 바로 점프가 진행되어 지속적으로 공중에 떠있는 판정이 되는 버그기술 이 두가지 기술이 혼합되어 이론상 계속 공중에 떠있는 상태 판정을 받으면서 스트레이프로 계속 속도를 올릴수 있는 기술이 버니합이라 불리게 되었죠
엄밀히 말하면 에이펙스는 저걸로 최고속도 이상 가속을 받는건 막혀있습니다. 다만 점프중 방향전환을 빠르게 하거나 슬라이딩 중에 마우스를 돌려도 감속이 되지 않도록 하거나 슬라이딩 감속을 늦게 받거나 하는 용도로 사용되다가. 이것도 현재는 점프중 방향전환은 막혔습니다. 애초에 간단한 코딩으로 막을수는 있는데, 전부 막으려다 보면 조작감이 안 좋아지고, 문제가 발생하고 나서 막으려고 하면 유저들이 반발하니 방치당해서 이렇게 되는 듯 하네요.
하프라이프에서 버니합을 막으려다가 발생한 저 사건은 사실 버니합을 막으려고 시도 한 방법이 플레이어의 속도가 일정 유닛을 초과하면 뒤로 가속을 줘 속도를 조절하려던 것이였습니다. 그게 역으로 뒤로 뛰면 속도가 끝없이 증가하게 되어버린거죠 그래도 카스를 사랑해주십시오 ㅠㅠ