In a 2D platforming game of any kind, how you design the jump defines a tremendous amount of how the game is going to feel. Since Wayward will indeed have 2D platforms, jumping is naturally the first thing we prototyped. We’re still quite early in development, and things are changing all the time, but I thought I’d take you through some of our early thinking, walk through a little basic design, and discuss a few interesting tidbits on jumping.
2D 로 구성된 게임이라면, 점프를 어떻게 설계하는 지에 따라, 게임에 대한 느낌이 크게 달라지게 됩니다. Wayward 는 2D 플렛폼으로 되어 있기 때문에, 점프라는 요소는 우리가 프로토타입을 만든 후, 첫번째로 고려하게된 부분입니다. 우리는 여전히 개발 초기이며, 항상 변화하고 있지만, 지금까지 우리가 해온 몇가지 기본 설계를 통해, 점프에 관하여 논의해보겠습니다.
DEGREES OF FREEDOM (자유도)
The simplest version of jumping requires knowing initial vertical velocity and acceleration due to gravity to determine character height as a function of time during the jump:
점프의 가장 간단하게 나타내면, 절대 수직 속도와, 캐릭터 높이에 의해 결정되는 중력에 영향을 받는 가속도의 함수로 나타낼 수 있습니다.
This is the standard projectile motion equation from Newtonian mechanics, and yields a familiar parabolic trajectory which is more or less how jumping works in the real world. You could use a different model (like going for a more square-ish curve than a parabola), but humans are surprisingly attuned to parabolic motion. Players tend to feel that something is off when they don’t get that parabolic arc.
이것은 뉴턴 역학의 표준 발사체 운동 방정식입니다. 이것은 현실 세계의 점프 운동에 대하여, 친숙한 포물선 궤적을 그리고 있습니다. 당신은 또 다른 모델(좀 더 평면에 가까운 곡선의 어떠한 것)을 사용할수도 있지만, 사람들은 생각보다 포물선 운동에 익숙합니다. 그렇기 때문에, 플레이어들은 점프가 포물선 궤적에서 벗어나지 않을꺼라고 기대하는 경향을 가지고 있습니다.
So, assuming the usual model, one way of designing a jump is to mess around with various values for initial velocity and gravity until you find numbers that make the jump feel right. (Note: using Earth's real gravity constant probably won't work, but more on that later.) This can be a valid approach, but thinking from a design perspective, you're probably more interested in numbers besides initial velocity and gravity. You might care instead about jump duration, max jump height, horizontal jump distance (when running at full speed), time to max height, or maybe something else. All of those things can be derived from a choice of velocity and gravity, but what if you want to think of gravity and velocity as being derived from things you care about, instead of the other way around? How can you make the choices that you care about from a design perspective and let properties like gravity fall out from those choices? And where do you start? Which choices do you make, and how many can you make?
그래서, 일반적인 점프 모델을 설계하는 방법 중 하나는, 플레이어들이 점프를 잘 느낄 수 있도록 다양한 값을 대입하여, 초기 속도와 중력에 대한 적절한 값을 찾는 것입니다. (Note: 아마도 당신은 지구의 진짜 중력 계수를 사용하겠지만, 아마도 그것은 적절하게 작동하지 않을 것입니다. 이것에 대한 내용은 뒷부분을 통해서 다루도록 하겠습니다.) 이것은 올바른 방법이 될 수 있습니다. 그러나, 디자인적인 관점에서 생각해보면, 당신은 아마도 절대 속력과 중력 외의 숫자에 더 많은 관심을 가지고 있을 것입니다. 점프 지속 시간, 최대 점프 높이, 점프 거리(최대 속도로 달렸을 때), 최대 높이에 도달하는 시간 또는 그 밖의 것들에 바로 그러한 것들일 것입니다. 그 모든 것들이 속력과 중력에 의하여 결정이 됩니다. 하지만, 당신은 중력과 속력으로부터 당신이 생각하고 있는 것들을 모두 해결하려면 어떻게 해야 될까요? 그리고 어디부터 시작해야 될까요? 당신은 도대체 어떻게 해야되며, 얼마나 많은 것을 시도해야 될까요?
We can apply an approach which I call Degrees of Freedom design. The idea is that for any game mechanic (or system in general), there are a finite number of choices you can make before everything else is determined by those choices. This forces you to pick the small number of things you care about most, figure those out, and let everything else be what it has to be.
저희는 이러한 고민 끝에, 제가 Degrees of Freedom 디자인이라고 부르는 것에 도달할 수 있었습니다. 그 아이디어는 게임 구조에 관계 없이, 유한한 숫자의 변수를 선택하고, 그 수치들에 의하여 다른 모든 것들이 결정되도록 하는 것이었습니다. 이것은 당신이 가장 중요하다고 생각하는 몇 개의 수치를 선정하고, 그것들이 다른 모든 것을 제어할 수 있도록 하는 것입니다.
In our jump equation, we know the jump is mechanically determined by two things: gravity and initial velocity. Therefore, we have two degrees of freedom. That means that as a designer, I will be able to make two choices, and everything else is determined. For me, jump height and jump duration are usually the two things I care about most for jump design, so I'll pick those two and know that I don't get to make any more choices. I've prioritized the two things I think are most important, and let everything else be determined.
저희는 점프 방정식을 통해, 점프는 역학적으로 중력과 절대 속력, 그 2가지에 의해 결정된다는 사실을 알고 있습니다. 따라서, 우리는 2가지 degrees of freedom (이하: 자유도)를 가지고 있는 것입니다. 즉, 디자이너로서, 저는 2가지 수치를 선택함으로서, 다른 모든 것을 결정할 수 있습입니다. 저는 점프 디자인에서 가장 주의해야되는 점프 높이와 점프 지속시간, 그 2가지로 선택하여, 다른 모든 것을 조절할 수 있도록 하였습니다. 저는 가장 중요하다고 생각하는 2가지를 통해, 다른 모든 것을 판단하도록 한 것입니다.
Once you've decided what you care about, if you want you can do some math and then code the mechanic so that those things are the literal parameters you adjust, instead of the things that might be most straightforward to code (in this example, gravity and initial velocity). But often that step isn't required - the more useful thing is the design knowledge of how many things you have control of. In this example, I might then proceed by trying various values for velocity and gravity, but armed with the goal of hitting particular heights and durations, and the knowledge that it's possible to do so for any pair of values I like.
원래 당신은 당신이 걱정하는 것에 대하여 조절할 수 있도록, 수학과 역학적 코드를 작성하고, 그러한 것들을 복잡하지 않은 코드로 표현하기 위하여 노력해야 됩니다. (예, 중력과 초기 속도) 그러나 종종 그 단계가 필요하지 않을 수 있습니다. 더 유용한 것은 당신이 조절할 수 있는 것에 대한 많은 디자인적인 지식입니다. 이 예시에서 저는 그 속도와 중력에 대하여 다양한 값을 시도하며 진행할 수도 있었지만, 제가 추구하는 목표에 더 직접적으로 영향을 미치는 점프 높이와 점프 지속시간 그리고 그것들에 대한 디자인적인 지식을 통해, 더 좋은 상황을 만들고 더 목표에 접근할 수 있었습니다.
VARIABLE JUMP HEIGHTS (다양한 점프 높이)
Of course, that model of jumping is too simple. Games have a long tradition of allowing players to vary the heights of their jumps by holding down the jump button for shorter or longer durations. This doesn't make a whole lot of physical sense, and not every game does it, but it is fairly common.
물론 점프의 모델은 너무 간단합니다. 일반적으로 게임은 플레이어가 짧은 또는 긴 시간동안 점프 버튼을 누르면, 점프의 높이를 변화시킬 수 있도록 하는 오랜 전통적인 방식을 가지고 있습니다. 이것은 물리학적으로 말이 되지 않는 현상이며, 모든 게임에서 그렇게 작동하는 것도 아니지만, 매우 일반적으로 사용되고 있습니다.
The usual way of accomplishing this is to suppress gravity while the jump button is held down, up to some maximum duration. This results in a jump motion which isn't quite projectile motion
이때, 일반적으로 사용되는 개발 방법은 점프 버튼을 최대 시간에 도달할 때까지 누르고 있는 동안, 중력을 억제하는 것입니다. 그 결과는 다음과 같습니다.
If this is height vs time, the red line is height until gravity kicks in, at which point the blue or purple parabola takes over.
만약 이것이 높이와 시간애 대한 함수라면, 빨간선은 중력에 의해 감소되고 있는 부분이며, 파란색 또는 보라색은 중력에 의해 떨어지는 부분입니다.
It's important to realize that you can't get a jump that feels quite like proper projectile motion using this scheme. That initial linear part is always going to give a bit of a float-y, jetpack-y feel to the jump.
이것으로부터 당신은 확실히 이 방식을 통해서 적절한 발사체 운동 같은 느낌의 점프를 얻을 수 없다는 사실을 알 수 있습니다.
Going back to the degrees of freedom approach, we can now think of the jump as being determined by initial velocity, gravity, and the duration of the jump suppression. It’s clear that we've got three degrees of freedom now, the third one coming from the gravity suppression timer.
다시, degrees of freedom 로 돌아가보면, 우리는 초기 속력, 중력 그리고 점프를 제어하는 시간에 의해 결정되는 점프를 생각해 볼 수 있습니다. 우리는 지금 3가지 자유도를 가지고 있지만, 세번째 것은 중력 억제 시간으로부터 구할 수 있는 값이기 때문에, 여전히 우리는 다룰 수 있는 2가지 자유도에서 벗어나지 않습니다.
I don't care about that timer directly. Note that the timer doesn't correspond to the apex of the jump - the player will continue moving upwards once gravity kicks in, until gravity "overtakes" that initial velocity. The timer is more subtle, and not something the player (or designer) will feel specifically. But I've got another degree of freedom (I still care about max height and max jump duration, as before, for my first two degrees), so what else do I care about in this new system?
저는 시간에 대한 부분을 직접적으로 고려하고 싶지 않습니다. 시간은 점프의 핵심이 아니기 때문입니다. 플레이어는 중력을 벗어날 때까지, 일단 위쪽으로 이동하는 것만 생각할 것입니다. 시간이라는 것은 미묘합니다. 그리고 플레이어(또는 디자이너)는 시간보다 더 구체적들을 느낄 것입니다. 하지만, 또 다른 자유도 (내가 아직도 처음에 결정한 degrees of freedom 이 최대 높이와 최대 점프 지속 시간, 이렇게 2가지라는 사실을 잊지 않고 있습니다.)를 함께 다루기 위하여, 어떠한 새로운 시스템을 고려해야 될까요?
The answer probably should be related to variable jump heights. Thinking about how players process a variable jump, I'm pretty confident that they really only consider two cases: the highest jump (where they hold the button down until they hit the apex (although they didn't have to, to achieve that max jump)), and lowest jump (where they just tap on the jump button as lightly as possible). So maybe the third thing I care about is lowest jump height. I might also care about lowest jump duration, but I'm out of degrees - I have to pick one or the other, and I think jump height is more important.
그 대답은 바로 점프 높이의 다양함에 있습니다. 저는 플레이어가 다양한 점프를 수행하기 위해, 어떠한 생각을 하게 될 것인지에 관하여, 다음 두가지 예시를 통해 매우 확신하고 있습니다. 우선 최대 높이의 점프하기 위하여, 플레이어들은 버튼을 자신이 원하는 최대 높이에 도달할 때까지 누르고 있을 것입니다. 또한, 가장 낮은 점프를 하기 위하여, 점프를 가장 가볍게 누를려고 할 것입니다. 그래서, 제가 세번째로 관심을 가지게 된 부분은 바로 가장 낮은 점프 높이입니다. 저는 가장 짧은 점프 지속시간을 고려할 수도 있지만, 그러나 나는 가장 낮은 점프 높이와 가장 짧은 점프 지속시간, 이 두가지 중에 선택하여야 하고, 저는 점프 높이가 더 중요하다고 생각하기 때문에, 점프 높이를 고려하는 선택을 하게 되었습니다.
AIR CONTROL (공중 제어)
So far we've only really covered the up and down part of the jump, but there’s a lot more to decide about what happens in the air. Specifically, how much horizontal motion control should we give the player? There are the extremes of no air control (Ghouls ‘n Ghosts games), full air control (Mega Man games), and lots in between (Mario, Metroid). Having no air control is the most “realistic” scheme for sure, but generally makes for unforgiving gameplay. Granting full air control is the most game-y scheme, allowing for ultra-precise movement and tricky platform puzzles.
지금까지 저희는 점프의 상승, 하강에 대한 부분을 고려했지만, 실제로 공중에 떠 있는 동안에 더 많은 것을 고려해야 됩니다. 구체적으로 우리는 플레이어에게 얼마나 많은 수평 이동 제어(horizontal motion control)를 제공해야될까요? 공중에서 제어를 불가능하게 할 수도 있으며, (Ghouls'm Ghosts 게임들), 완벽한 공중 제어를 제공할 수도 있으며(Mega Man 게임들), 그 중간 합의점을 제공할 수도(마리오, 메트로이드) 있을 것입니다. 공중 제어를 제공하지 않는 것이 확실히 가장 "현실적인" 방법이지만, 일반적으로 게임들은 그것에 대하여 관대한 편입니다. 완벽한 공중 제어를 제공하는 것은 매우 정밀한 움직임과 까다로운 플렛폼 퍼즐을 제공하는, 이른바 Y축 방식의 게임들(game-y scheme)에서 주로 사용됩니다.
by Mohan Rajagopalan
번역: breezecu (AKA KrHammer)
원문: http://gamasutra.com/blogs/MohanRajagopalan/20140813/223251/Designing_a_2D_Jump.php
'게임 관련 번역 > Gamesutra' 카테고리의 다른 글
[번역] 리차드 가필드의 게임 밸런스 전략(2/8) - 표준적인 게임의 밸런스 (0) | 2014.12.14 |
---|---|
[번역] 리차드 가필드의 게임 밸런스 전략(1/8) - 개요 (0) | 2014.12.14 |
[번역] 2D 잠입 게임: Mark of the Ninja 에서 배울 수 있는 디자인 교훈 (0) | 2013.02.22 |
[번역] Game Jam 에서 내가 배운 5가지 (0) | 2013.02.12 |
[번역] Focusing Creativity: RPG 장르 [4/4] (0) | 2013.02.05 |