작은 캐릭터 앞에 구덩이가 하나 있습니다. 오른쪽으로 달리다가 점프 버튼을 누릅니다. 캐릭터는 분명 반대편에 도착했습니다. 그런데 손에는 어딘가 이상한 느낌이 남습니다. 너무 늦게 뜬 것 같기도 하고, 착지하기까지 오래 기다린 것 같기도 합니다.
높이도 맞고 거리도 맞는데 왜 점프가 어색할까요? 점프는 목적지에 도착하는 기능이면서, 그곳에 도착할 때까지 플레이어에게 어떤 판단을 맡길지 정하는 디자인이기 때문입니다. 버튼 하나 안에 숨어 있는 선택을 차례로 꺼내봅시다.
공중에 떠 있는 동안에도 속도는 바뀐다
공을 위로 던지는 모습을 생각하면 쉽습니다. 처음에는 빠르게 올라가다가 점점 느려지고, 가장 높은 곳을 지난 뒤 아래로 떨어집니다. 위치만 보면 하나의 곡선이지만, 그 안에서는 속도가 계속 바뀌고 있습니다.
게임에서도 출발할 때 위쪽 속도를 주고, 시간이 흐르는 동안 아래쪽 가속도를 적용하는 간단한 모델로 이 움직임을 만들 수 있습니다. 위쪽을 양수로 정했다면 세로 속도는 양수에서 0을 지나 음수가 됩니다. 0이 되는 지점 부근이 최고점입니다. 최고점에서도 중력은 계속 작용하므로 캐릭터가 그곳에 영원히 멈춰 있지는 않습니다.
그림 1 · 원본 00:52. 점의 높이와 시간에 따른 곡선을 함께 보여주는 설명용 시뮬레이션. 올라갈 때는 위쪽 속도가 줄어들고, 최고점을 지난 뒤에는 아래쪽 속도가 커집니다. 표시된 수치는 특정 게임에서 측정한 값이 아닙니다.
영상의 “속도 5에서 4, 3, 2로 줄어든다”는 설명은 일정한 간격으로 계산한다고 가정한 예시입니다. 실제 구현에서 화면이 그려질 때마다 무조건 같은 값을 빼면 컴퓨터 성능에 따라 움직임이 달라질 수 있습니다. 시간 간격을 함께 계산해야 합니다.
세로 속도 = 세로 속도 - 중력 × 지난 시간
세로 위치 = 세로 위치 + 세로 속도 × 지난 시간
Plain Text
복사
여기서 중력은 양수인 크기이고, 위쪽을 양수로 놓았습니다. 화면 좌표처럼 아래쪽이 양수인 환경에서는 부호가 달라집니다. 이 두 줄은 원리를 설명하는 단순한 계산이며 실제 게임에는 충돌 검사와 착지 처리도 필요합니다. 물리는 고정된 시간 간격으로 계산하기도 합니다.
높이 하나를 바꾸면 기다리는 시간도 달라진다
첫 번째 개발자는 캐릭터를 높이 뛰게 만들려고 출발 속도를 키웁니다. 캐릭터는 높은 발판에 닿습니다. 그런데 공중에 머무는 시간도 길어져서 달리기의 리듬이 느슨해졌습니다. 원하는 것은 높은 점프였는데, 함께 바뀐 체공 시간은 놓친 것입니다.
같은 높이에 도달해도 빠르게 올라갔다가 빠르게 내려오는 점프와 천천히 올라갔다 내려오는 점프는 다르게 느껴집니다. 출발 속도와 중력을 함께 조절하면 높이뿐 아니라 최고점까지 걸리는 시간도 설계할 수 있습니다.
위아래에 같은 일정한 중력을 쓰고 같은 높이의 바닥으로 돌아오는 단순 모델에서는, 최고점까지의 시간은 출발 속도를 중력으로 나눈 값입니다. 최고 높이는 출발 속도의 제곱을 중력의 두 배로 나눈 값입니다. 공식을 외우기 전에 중요한 관계부터 봅시다. 높이와 속도, 체공 시간은 서로 연결되어 있습니다.
게임은 필요하면 올라갈 때와 내려올 때 다른 중력을 쓸 수도 있습니다. 내려올 때 더 빠르게 떨어지게 하면 착지가 또렷해질 수 있습니다. 반대로 최고점 부근에 잠깐 여유를 주면 다음 행동을 판단할 시간이 생깁니다. 현실의 중력과 꼭 같은 움직임을 만드는 것만이 목표는 아닙니다.
그림 2 · 원본 01:52. 마리오를 소재로 상승과 낙하의 차이를 설명한 도식. 곡선은 조작감을 설명하기 위한 재현이며 원작의 물리 상수를 복원한 자료는 아닙니다. 느린 상승만으로 중력이 약하다고 결론 내릴 수는 없고, 출발 속도와 버튼 입력도 함께 봐야 합니다.
뛰기 전에 결정할까, 공중에서 고칠까
이번에는 구덩이의 폭이 조금 넓어졌습니다. 첫 번째 점프에서는 공중에서도 오른쪽을 누르면 착지 위치를 조금 바꿀 수 있습니다. 발판을 지나칠 것 같으면 반대 방향으로 보정할 여지가 있습니다. 플레이어는 뛰어오른 뒤에도 계속 판단합니다.
두 번째 점프에서는 발이 땅을 떠나는 순간 이후의 궤적이 거의 정해집니다. 공중에서 방향키를 누른다고 쉽게 되돌릴 수 없습니다. 그렇다면 중요한 판단은 출발 전으로 옮겨갑니다. 어디에서, 어느 방향으로, 얼마나 강하게 뛸지 미리 재야 합니다.
둘 중 하나가 언제나 우월한 것은 아닙니다. 공중 조작이 넉넉하면 순간적인 대응을 즐길 수 있고, 제한하면 출발 전의 거리 판단과 결심에 무게가 실립니다. 자유도를 줄이는 것이 어떤 게임에서는 핵심 긴장감을 만드는 방법이 될 수 있습니다.
그림 3 · 원본 04:30. Jump King의 발판과 캐릭터. 버튼을 누르는 동안 힘을 모으고 손을 떼면 뛰는 구조에서는, 출발 전에 충전 시간을 가늠하는 일이 중요합니다. 정지 화면에는 입력 시간이 보이지 않으므로 본문에서 조작 순서를 함께 설명했습니다.
Jump King을 떠올리면 이 차이가 분명해집니다. 버튼을 오래 누르는 행동이 곧 “아직 점프하지 않고 준비하는 시간”입니다. 손을 떼는 순간 점프가 시작되며, 공중에서 방향을 자유롭게 수정할 수 없습니다. 실패한 뒤에는 다음 도약의 방향과 충전 시간을 다시 판단하게 됩니다.
같은 버튼을 오래 눌러도 뜻은 다를 수 있다
Celeste처럼 버튼을 누르자마자 뛰고, 일찍 떼면 낮은 점프가 되는 게임에서는 판단의 시점이 다릅니다. 처음부터 출발을 기다리는 대신, 이미 뛰어오른 상태에서 언제 손을 뗄지 선택합니다. 낮은 천장 아래에서는 짧게, 높은 발판 앞에서는 길게 눌러볼 수 있습니다.
그림 4 · 원본 04:50. Celeste의 캐릭터와 가까운 발판. 주변 지형에 맞춰 점프의 높이와 이동을 조절하는 상황입니다. 한 장의 캡처는 버튼 유지 시간을 증명하지 않으며, 높이 조절의 의미를 설명하는 사례 화면으로 사용했습니다.
“버튼을 오래 누르면 높아진다”는 결과만 보면 두 게임이 비슷해 보입니다. 하지만 Jump King에서는 누르고 준비한 뒤 손을 떼어 출발하고, Celeste의 일반적인 가변 점프에서는 누르자마자 출발한 뒤 유지 시간을 조절합니다. 같은 입력 장치가 전혀 다른 판단을 만듭니다.
여기서 손맛의 설명과 내부 구현을 구분해야 합니다. 버튼을 일찍 떼었을 때 상승이 짧아지는 효과는 위쪽 속도를 제한하거나, 중력이나 상승 유지 조건을 바꾸는 등 여러 방식으로 만들 수 있습니다. 우리 영상의 강한 중력 도식은 효과를 설명하는 모델이며, Celeste 원본 코드가 그 도식과 똑같이 구현되었다는 뜻은 아닙니다. 개발자가 공개한 Celeste와 TowerFall의 물리 설명은 실제 충돌·이동 설계가 별도의 시스템임을 살펴보는 참고 자료입니다.
멀리 뛰는 것과 높이 뛰는 것은 다른 조절 손잡이다
가로 움직임도 분리해서 생각해봅시다. 캐릭터가 공중에 있는 동안 가로 속도를 유지한다고 가정하면, 이동 거리는 가로 속도에 체공 시간을 곱한 값입니다. 세로 점프를 그대로 두고 가로 속도만 높여도 더 멀리 갈 수 있습니다.
록맨 X의 대시 점프처럼 가로 속도의 차이가 도달 범위를 넓혀주는 사례를 생각해볼 수 있습니다. 우리가 만들 실험에서도 일반 점프와 대시 점프의 세로 조건을 같게 놓고 가로 속도만 바꾸면, 높이와 체공 시간을 유지한 채 착지 거리만 비교할 수 있습니다. 실제 게임에서는 공중 제동이나 벽과의 충돌 등 다른 규칙이 이 관계에 영향을 줍니다.
점프하기 직전의 짧은 준비 동작도 손잡이 하나입니다. 격투 게임에서 말하는 점프 스쿼트처럼, 입력과 이륙 사이에 준비 시간이 있을 수 있습니다. 이는 예비 동작을 보여주거나 다른 입력을 구별하는 데 쓰일 수 있지만, 길어지면 반응이 둔하게 느껴질 수도 있습니다. 적절한 길이는 그 게임의 입력 체계와 전투 규칙 속에서 판단해야 합니다.
숫자를 고치기 전에, 어떤 망설임을 만들지 적는다
우리가 만들 구덩이로 돌아왔습니다. 이번에는 “점프를 더 좋게”라는 목표 대신 “공중에서 한 번쯤 착지 위치를 고칠 수 있게”라고 적습니다. 그러면 먼저 바꿔볼 것은 최고 높이보다 공중 조작의 양이라는 사실이 보입니다.
같은 발판을 놓고 한 번에 한 조건씩 바꿔봅시다. 출발 속도, 상승 중력, 낙하 중력, 버튼을 뗐을 때의 반응, 공중 가속, 준비 시간 중 하나를 고릅니다. 바꾸기 전후에 플레이어가 언제 결정을 내리는지, 실패했을 때 무엇을 다음에 바꾸려 하는지 기록합니다.
결국 재미있는 점프를 만드는 질문은 숫자만으로 끝나지 않습니다. 출발 전에 숨을 고르게 할 것인가, 공중에서 아슬아슬하게 수정하게 할 것인가, 빠른 착지로 다음 행동을 이어가게 할 것인가. 그 질문에 맞게 숫자가 자리를 잡을 때, 구덩이 하나도 플레이어가 읽고 판단하는 장면이 됩니다.
자료와 그림
얌얌코딩 「재미있는 점프는 어떻게 만들까? — 게임 점프 물리와 조작감 분석」의 대본과 6분 13.5초 원본 영상에서 발췌해 재구성했습니다. 도식은 설명용 모델이며 게임의 실제 물리 상수를 측정한 그래프가 아닙니다.
그림 3의 원본 영상 출처: Jump King — Ukiyo Publishing, Nexile 공식 트레일러. 그림 4: Celeste 플레이 — UltraPita, 프로젝트 출처 기록상 Creative Commons Attribution. 각 게임의 화면과 캐릭터 권리는 해당 제작사·권리자에게 있습니다. 그림 1·2는 얌얌코딩 영상의 설명용 시뮬레이션입니다.







