저는 현재 고전적인 경험치와 레벨 업 메카니즘을 갖춘 RPG 게임을 개발하고 있습니다. 플레이어는 몬스터를 처치하고 경험치를 얻습니다. 충분히 모으면 레벨이 올라갑니다.
각 레벨에 도달하는 데 필요한 Exp 포인트와 각 레벨의 각 몬스터가 부여한 Exp의 균형을 맞추려면 어떻게해야합니까?
저는 현재 고전적인 경험치와 레벨 업 메카니즘을 갖춘 RPG 게임을 개발하고 있습니다. 플레이어는 몬스터를 처치하고 경험치를 얻습니다. 충분히 모으면 레벨이 올라갑니다.
각 레벨에 도달하는 데 필요한 Exp 포인트와 각 레벨의 각 몬스터가 부여한 Exp의 균형을 맞추려면 어떻게해야합니까?
답변:
이 점에서 결론에 도달하는 가장 좋은 방법입니다 - 먼저에게 게임 방법을 생각하는 - 게임 개발에 대부분의 것들과 같은 플레이를 하고 같은 게임 플레이가 발생합니다 수학을 구성합니다.
스토리 중심의 싱글 플레이어 RPG에서는 레벨 업을 일정한 보상 스트림으로 유지하고 게임 전체에서 몇 분마다 레벨을 올리려고 할 것입니다. 레벨 업 비율은 일정하게 유지되므로 레벨 당 함수는 일정합니다 ( time = c
).
MMORPG와 같은 성과에 중점을 둔 게임에서는 일반적으로 초보자가 레벨 업을 자주하고 싶지만 플레이어가 진행할수록 점점 더 자주 레벨 업을 원합니다. 이 경우 수준별 함수는 다항식 ( time = Level ^ c
) 또는 지수 ( time = c ^ Level
)입니다. 그러나 지수 식에서 레벨 수를 그대로 사용하는 것은 일반적으로 너무 극단적입니다. 지수를 계속 유지하면서 증가를 훨씬 느리게 만들기 위해 상수로 나누는 것이 좋습니다 time = c1 ^ (1 + Level / c2)
.
스프레드 시트를 사용하여 숫자를 처리하는 것이 좋습니다. 1에서 예상 최대 레벨까지의 숫자가있는 열과 레벨 공식이있는 두 번째 열이있는 테이블을 만듭니다. 이것은 쉽게 당신이 원하는 숫자를 찾기 위해 다른 수식을 실험 할 수 있습니다. 다항식과 지수 성분을 결합하면 더 나은 결과를 얻을 수 있습니까?
여기서 순 전투 시간을 보고 있음을 기억 하십시오. 플레이어가 적극적으로 경험치를 수집하는 게임 시간. 플레이어가 NPC와 대화하고 장비를 비교하고 직접 진행하지 않는 다른 작업을 수행하는 데 걸리는 시간은 계산하지 않습니다.
내 현재 게임 (MMORPG)에서 나는 공식을 생각해 냈습니다 seconds(level) = 10 ^ (1 + Level / 20)
. 처음 몇 레벨은 실제 전투에서 몇 초 밖에 걸리지 않으며 (튜토리얼 단계에서 즉각적인 만족도를 얻음), 20-40 단계는 몇 분이 걸리며 50 년대에는 레벨 당 시간이되고 최대 100 레벨에 가까워지면 전체 주가 걸립니다. 진행.
적에게 명시 적 (또는 의미있는) 레벨 스탯이없는 경우에도 특정 캐릭터 레벨에 대해 균형 잡힌 도전으로 설계해야합니다. 그러나 레벨 40에 추천 된 적이 레벨 40에 추천 한 적이있는 것보다 얼마나 많은 경험을 보상해야합니까?
이 질문에 대한 답은 캐릭터가 레벨 당 얼마나 더 강력 해 졌는지, 그리고 캐릭터 레벨과 함께 현재 적보다 앞이나 뒤에 있기를 원하는 정도와 밀접한 관련이 있습니다.
예를 들어 월드 오브 워크래프트와 같은 일부 게임 시스템은 플레이어 캐릭터 레벨 바로 아래 또는 위의 적과의 전투를 추구하는 것이 무의미합니다. 위의 몇 단계 만 거치면 플레이어가 전멸됩니다. 아래의 몇 단계는 전혀 도전이되지 않으며 보상도 없습니다.
반대의 예는 Disgaea 시리즈입니다. 그 게임에서 당신은 똑똑하게 플레이 할 때 자신의 캐릭터 레벨의 몇 배로 적을 쉽게 물리 칠 수 있습니다 .
플레이어를위한 공정한 싸움 인 레벨 브래킷에 더 제한적 일수록 플레이어가 현재 싸우고있는 적의 레벨보다 뒤쳐지지 않도록해야합니다. 플레이어가 적보다 뒤 떨어지면 게임은 연삭없이 좌절하기가 어려워집니다. 플레이어가 몬스터보다 앞서 나가면 게임이 너무 쉽고 지루해집니다.
플레이어를 레벨 브래킷 안에 유지하는 좋은 방법은 레벨 당 exp 보상을 늘리는 것입니다. 한편으로는 플레이어가 권장 수준보다 약간 낮을 때 쉽게 따라 잡을 수 있습니다. 다른 한편으로는, 더 어려운 지역으로 진행하지 않고 약한 적에게 효율적으로 레벨을 올릴 수 없습니다.
다항식 곡선 ( exp = Level ^ c
)이 일반적으로 효과적입니다. 의 값이 클수록 c
플레이어가 싸우는 몬스터의 현재 레벨 브래킷으로 플레이어를 더 강하게 밀어 넣습니다.
패배하는 데 시간이 오래 걸리는 적도 비례 적으로 더 많은 경험을 제공해야합니다. 20 초가 걸리는 전투는 10 초만 걸리는 전투보다 2 배의 경험치를 제공해야합니다. 수식이로 확장됩니다 exp = (Level ^ c) * minutes_per_combat
.
최종 공식은 이제 두 가지에서 파생 될 수 있습니다. 이 experience per level
는 IS time per level in minutes
와 곱한 experience gained per minute
. 마지막 두 섹션에서 나온 두 가지 공식을 취하고 곱하십시오. 레벨 별 경험치가 있습니다.
레벨 당 다항식 시간이 증가하면 공식은 다음과 같습니다.
exp(level) = (level ^ c1) * (level ^ c2)
어디
c1
각 레벨의 소요 시간에 따라 달라집니다c2
플레이어가 싸우는 적의 수준에 얼마나 가깝게 유지하기를 원하는지에 따라최고의 아이디어 개념조차도 적절한 플레이 테스트를 대체 할 수 없습니다. 플레이 테스트에서 평균 플레이어가 원하는 것보다 훨씬 빠르게 또는 느리게 진행되는 것으로 판명되면 일반적으로 적의 권장 수준을 과소 평가하거나 과소 평가했음을 나타냅니다. 어떤 캐릭터 레벨에서 적을 죽이는 것이 어려운지 테스터들과 함께 분석하여 경험치 나 스탯을 적절히 조정하십시오.