너무 빠르다가, 너무 흐물흐물해진: 추력 조정하기
TUNL의 느낌을 결정하는 데 다른 무엇보다 큰 역할을 하는 상수가 하나 있습니다. 한 플레이어가 게임이 너무 빠르다고 말한 하루 동안 저는 그 값을 두 번 바꿨고, 두 번째 변경이 첫 번째보다 더 많은 것을 가르쳐 주었습니다.
조작은 대부분의 사람이 생각하는 것과 다르다
플래피 버드 스타일 게임에서는 탭 한 번으로 새에게 즉각적인 위쪽 속도가 주어집니다. TUNL은 다릅니다. 누르고 있는 것은 속도를 정하지 않고 가속도를 정합니다. 누르고 있는 동안 위쪽 힘이 중력에 더해지고, 손을 떼면 중력만 작용합니다. 배는 전환 중에도 관성을 유지하므로, 상승의 정점에서 손을 떼면 잠시 더 올라갑니다. 이것이 게임에 무게감을 주며, 동시에 수치를 매우 민감하게 만듭니다.
세 가지 상수가 이를 정의합니다. 중력은 아래로 당기고, 추력은 누르고 있는 동안 위로 밀며, 최대 속도는 속도의 상한을 정합니다. 느낌에 가장 중요한 것은 순 가속도의 쌍입니다. 누르고 있을 때 얼마나 강하게 위로 가속하는지(추력에서 중력을 뺀 값)와 손을 뗐을 때 얼마나 강하게 아래로 가속하는지(중력만). 이 둘의 비율이 게임의 개성입니다.
너무 빨라지게 된 과정
여러 차례 수정을 거치며 플래피 버드 같은 예민한 느낌을 좇아 수치를 계속 조여 나갔습니다. 중력은 1150에서 1300으로, 추력은 2400에서 3400으로, 최대 속도는 820에서 1080으로 올라갔습니다. 매 단계가 테스트할 때마다 더 낫게 느껴졌는데, 엄지와 배 사이의 지연을 줄이는 방향으로 조정하고 있었기 때문입니다. 결국 순 상승 가속도는 순 하강 가속도의 약 1.6배가 되었습니다.
그러던 중 레딧의 한 플레이어가 가속이 너무 빠르게 느껴진다고, 런의 짜릿함을 느끼기도 전에 죽는다고 말했습니다. 이는 게임이 받은 첫 자발적 피드백이었기에 무게가 있었습니다. 제가 최적화하던 것, 즉 반응성이야말로 게임을 가혹하게 만든 바로 그 요인이었습니다.
너무 흐물흐물했다가, 그 중간 어딘가로
첫 반응은 추력을 2700으로 되돌리는 것이었습니다. 이는 중력에 훨씬 가까워서, 순 상승 가속도가 순 하강 가속도보다 아주 조금만 큽니다. 같은 날 플레이해 보니 이번에는 반대 방향으로 잘못되어 있었습니다. 흐물흐물했습니다. 배가 공중에 멈춰 있는 듯했고, 상승이 하강과 거의 다르지 않게 느껴졌는데, 이는 느낌을 잃는 또 다른 방식입니다.
그래서 두 번째 변경은 느낌만이 아니라 두 비율을 함께 보고 선택한 절충안이었습니다. 원래의 예민한 조정은 상승 약 2100 대 하강 1300이었습니다. 완화된 조정은 상승 1400 대 하강 1300이었습니다. 저는 추력을 3100으로 고정했는데, 이는 순 상승 1800 대 순 하강 1300으로 대략 중간입니다. 상승은 여전히 하강보다 반응이 빠르게 느껴지지만, 최대 속도로 거의 즉시 고정되는 현상은 더 이상 없습니다. 이 과정 내내 중력과 최대 속도는 움직이지 않았습니다.
여기서 얻은 교훈은 "너무 빠르다"와 "너무 흐물흐물하다"가 별개의 두 문제가 아니라 하나의 비율의 양 끝이라는 것입니다. 순 상승 대 순 하강을 보고 나니 목표는 명백했습니다. 그전에는 숫자 하나를 조정하고 느낌으로 다시 판단하고 있었을 뿐입니다.
답의 나머지 절반은 시작 부분에 있었다
추력을 재조정하니 느낌은 고쳐졌지만, 새 플레이어가 빨리 죽는 이유는 고쳐지지 않았습니다. 초보자의 런을 측정해 보니 중앙값은 비행 시간 약 1초였습니다. 발사 애니메이션만 해도 그보다 길었습니다. 패턴은 명확했습니다. 초보자는 누르고 있고, 배는 천장으로 올라가고, 그걸로 끝입니다. 게임의 그 무엇도 조작 체계의 나머지 절반, 즉 손을 떼는 것을 가르쳐 준 적이 없었습니다.
텍스트 힌트는 배제했습니다. 제목 아래에 "누르면 상승, 떼면 하강"이라는 문구를 넣어본 적이 있는데, 이미 누르라고 말하는 버튼 옆에 있으니 중복되게 느껴졌고 아래 버튼 줄을 답답하게 만들어서 같은 날 제거했습니다. 정보 자체는 옳았습니다. 다만 문장 하나로 전달하는 것은 옳은 방법이 아니었습니다.
그래서 대신 초반 코인이 이를 가르칩니다. 동굴의 첫 구간 동안 코인 배치선은 발사 높이 아래에서 시작해 위로 올라가는 완만한 호로 강제됩니다. 첫 번째 코인을 얻으려면 손을 떼고 활공해 내려가야 합니다. 두 번째 코인을 얻으려면 누르고 있으면서 상승해야 합니다. 세 번째쯤이면 조작의 두 절반을 모두 체감했지만, 아무도 한마디도 하지 않았습니다. 이는 나머지 변경 사항, 즉 선체 흠집 두 번을 허용하는 안전한 시작 구간과 잘 맞물렸으며, 이는 페이싱에 관한 글에서 설명합니다.
조정 이력이 존재하는 이유
이 기록을 남기는 이유는 이런 상수가 시간이 지나며 표류하기 때문입니다. 파일 속 숫자 하나는 조금 건드리기 쉽고, 매번 조금씩 건드리는 것은 그 순간에는 정당화됩니다. 저는 그 값이 지금까지 가졌던 모든 값과 그 이유의 이력을 남겨둡니다. 그래야 다음에 누군가(저 자신 포함)가 게임이 조금 더 예민하면 더 좋아지겠다고 생각할 때, 답이 이미 적혀 있습니다. 이미 시도해 봤고, 플레이어들이 너무 빠르다고 말했다는 답이요.
입력 모델 역시 고정되어 있습니다. 누르고 있으면 가속하는 방식은 이 게임의 정체성이며, 조정은 그 안에서 움직일 수는 있어도 절대 즉각적인 임펄스로 대체해서는 안 됩니다. 크기가 다른 화면에서도 체감 궤적이 동일하게 유지되는 것은 스케일링 규칙 덕분이며, 이는 공정성에 관한 글에서 설명합니다.
결과를 직접 느껴보고 싶다면, 배는 탭 한 번 거리에 있습니다.