ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • STEP#3 게임 전투 RPG 전투시스템 게임 기획
    게임기획 2023. 1. 6. 22:19
    728x90
    반응형

    수집형 RPG 엘룬 의 전투 장면

    1. 전투

    이전에 네이버 블로그에서 정리하던 내용을 한 번 더 정리를 하고 있습니다. 

    지난번 STEP2 에서는 메인 시스템을 잡아보는 과정이었으면 이번에는 설정한 메인 시스템 내에서, 어떤 부분으로 게임이 진행될지를 생각하는 단계입니다. 그중에서 전투 쪽으로 좀 더 집중해서 정리해 보고자 합니다.

    일단 게임 자체가 전투를 중심으로 게임이 진행되는지... 아이템의 습득과 조합 등을 통한 개발, 거래 등의 경제 중심으로 게임이 진행되는지... trap의 통과 나 길 찾기 등의 어드벤처 중심으로 게임이 진행되는지... 이러한 진행 내용을 결정하면 그에 따른 메인 시스템부터 구조를 잡아 나가게 됩니다. 그럼 그중에서 전투를 중심으로 하는 게임으로 결정한다면 전투의 개념부터 확실히 알고 있어야 합니다.

    2. 캐릭터 전투

    우선 캐릭터의 전투 가 있습니다.  

     

    1) 거리 값에 따른 공격 방식이 있습니다.

    캐릭터의 전투 방식에서 거리 값에 따라서는 크게는 근거리와 원거리의 전투 방식으로 구분이 됩니다. 말 그대로 근거리는 가까이에 붙어서 상대를 공격하는 형태이고, 원거리는 탄환이나 화살을 쏴서 먼 거리에서 공격하는 형태입니다. 근거리는 가까이서 공격을 하기 때문에 정확하게 타격하지만 반해 상대에게 공격당할 확률이 높습니다. 하지만 원거리는 멀리서 공격하기 때문에 정확한 타격은 힘들지만 공격당할 확률이 그만큼 낮습니다.

    따라서, 이 두 가지 공격 패턴에 어느 정도의 보정치를 넣어주어 각각 분리한 점을 보완할 수 있도록 유도해야 합니다. 흔히 보정치는 아이템의 교체나 업그레이드를 통해 진행하여 캐릭터의 성장 요소를 넣어주게 되는데, 이 부분을 통해 유저들은 자연스럽게 게임에 몰입하게 되고 아이템의 수집 의욕을 고취할 수 있습니다.

     

    2) 전투 형식에 따른 공격방식이 있습니다.

    게임에서의 전투는 오토매틱 표적화의 절대 타격 방식과 논 타깃의 컨트롤 타격 방식으로 나뉘게 됩니다. (용어는 기획자마다 다르게 사용하고, 여기서는 제가 개인적으로 사용하는 용어를 사용합니다) 절대 타격방식은 말 그대로 첫 타깃을 잡은 대상에게 100% 타격을 입히는 전투방식으로, 회피율이라는 수치를 통해 공격 성공 확률을 이용하여 상호 치고 방어하는 전투를 진행하도록 만듭니다.

    최근에는 너무 조작감이 떨어지는 한계를 보완하기 위해 타이밍에 따른 키 입력이나, 게이지 규칙을 통해 특정 단계에서 공격방식이 바뀌는 등의 다양한 접근이 이루어지고 있는데, 어찌 되었건 이 방식은 접근성의 부분이나 커뮤니케이션 중심의 부분 등에서 쉽게 쉽게 전투를 진행하는 것이 목적인 시스템이기에 너무 다양한 보완 장치를 집어넣다가 원래의 목적이 쇠퇴하는 결과를 내어서는 안 됩니다

    컨트롤 타격방식은 타깃을 따로 잡지 않기 때문에 자신의 공격 방향/범위 나 자신이 발사한 탄환의 부딪침에 따라 타격을 입히는 전투 방식입니다. 따라서 타격 체에 회피율 등의 성공 확률을 따로 적용할 필요 없으며, 움직임을 통해서 게임의 전투 난이도를 조절하게 됩니다.

    조작성이 뒤따르는 방식임에 전투 난도가 높고, 카메라 조작이 잘못되었을 경우 무척이나 어지러운 화면연출이 진행될 수 있는 문제점이 있습니다. 최근에는 FPS 형태의 카메라 시점을 기반으로 사용하거나, 쿼터뷰 형태의 카메라 시점을 사용하여 게임 진행에 피로가 없도록 최적화하고 있고, 실제 전투 시의 공격 범위 값을 조정하여 전투 난도를 낮추는 형태로 보완이 이루어지고 있습니다.

    하지만, 근본적으로 계속된 키 조작이 필요하고 게임 진행의 피로도와 직결되기 때문에 장시간의 플레이가 요구되는 다중 접속 RPG에는 부담이 되는 시스템입니다. (최근에 등장한 C9, 마비노기 영웅전드래곤네스트와 같은 비교적 짧은 전투 시간을 요구하는 MMORPG 형태에는 조작감과 긴장감 부분에서 적절한 시스템이라 생각됩니다)

     

    3) 스킬 및 추가 전투가 있습니다.

    일단 일반 공격과 스킬은 큰 차이가 있습니다. 바로 MP와 같은 특정 수치를 사용하고 안하고의 차이 때문입니다. 즉, 일반 공격은 캐릭터별 특성화된 공격받은 식으로 계속해서 특정 제한 없이 사용할 수 있는 공격 패턴이고, 스킬은 MP와 같은 특정 수치를 소모하면서 사용하는 제한적인 공격패턴입니다.

    따라서 일반 공격에서는 제공하지 못했던 강력한 데 미 지지율이나 범위 값의 공격 형태를 스킬로 제공하며, 이와 함께 발동쿨타임 등으로 보정합니다. 그리고 속성이나 블록, 푸시 등과 같이 기본 공격 이외의 추가 전투 부분도 존재합니다.

    속성은 특정의 속성 수치를 몬스터와 캐릭터에 적용하고, 일반 공격 이외의 추가 공격 형태로 적용하는 형태로 공식상으로는 다음과 같은 기본값으로 구조를 잡습니다.

     

    attribute = 공격자 해당 attribute 수치 합계 - 방어자 해당 attribute 수치 합계. 전체 damage = 일반 damage 합산치 + attribute

     

    * 단, 캐릭터에 속성할지가 없을 경우 몬스터를 잡을 때 드는 기회비용에 대한 밸런싱을 위해 공격자 속성 수치와 방어자 속성 수치에 보정 수치를 넣는 것을 잊지 말아야 합니다. 

    블록이나 푸시, 억백 등과 같은 일반 공격 이외의 추가 공격 요소는 조건 트리거에 따른 확률이나 키 입력으로 적용할 수 있습니다. 조건 트리거에 의한 확률은, 캐릭터의 HP 나 현재 상태 값을 기준으로 두고 확률을 넣어서 해당 추가 공격 요소가 발동하게 만드는 방식이고, 키 입력방식은, 특정한 특수키를 입력했을 때 발동되는 형태로 방식 자체가 스킬과 동일하기에 따로 일반 공격으로 나누지 않고 스킬로 포함하기도 합니다.


    3. 몬스터 전투

    게임들에서는 흔히 상대가 있어야 하고, 그 상대는 바로 몬스터라고 흔히 표현합니다.

     

    1) 대표적인 몬스터 전투를 AI를 이용한 루틴한 전투 구성입니다.

    100%다 그렇지는 않지만 대체로 패턴화 AI와 조건 트리거에 의한 확률 AI로 구성합니다. 가장 먼저 몬스터 AI를 생각할 때는 먼저 몬스터를 얼마만큼 캐릭터처럼 자연스럽게 움직이느냐입니다. 즉, 몬스터도 유저처럼 자신이 위험할 때 도망을 쳐야 하고, 자신에게 위험이 되는 대상을 공격해야 하고, 자신이 위험하면 주변에 도움을 요청해야 합니다.

    몬스터는 시스템 로직을 통해 움직이는 개체이기에 인공적으로 패턴화를 얼마나 잘 이루어 주느냐가 관건이고, 이러한 패턴화는 경우의 수가 많으면 많은 수록 똑똑한 AI 다되고, 그렇지 않을 경우 단순한 AI 다 됩니다.

     

    *개인적으로 AI의 몬스터 일반 패턴은 FSM 을 이용하여 구성하는데, 이는 추후 기회가 있으면 소개하도록 합니다.

     

    그리고 AI에서 중요한 점으로 반응성과 표적화라 할 수 있습니다. 즉, 몬스터의 공격 대상을 상대의 공격에 따라 빠르게 전환하거나 직관적으로 전환되어야 좋은 AI라 할 수 있습니다. 흔히 타깃 개념은 시비 거는 놈 시스템을 이용하는데, 이는 각 상태 값에 일정 POINT를 적용하여 이러한 POINT를 몬스터가 저장하면서 가장 높은 POINT의 개체를 타깃으로 삼는 개념으로 실시간적인 검색을 통해 빠르게 타깃을 잡고 변경할 수 있는 장점이 있습니다.

     

    시비 거는 놈 시스템도 추후 기회가 있으면 소개하도록 합니다.

     

    2) 몬스터 공격 방식은 근거리, 원거리로 공격방식이 구분되지만, 여러 패턴화 작업이 있어야 하기에 좀 더 세부적으로 공격방식에 따라 구분을 하는 것이 좋습니다. 최근에는 몬스터도 캐릭터와 동일한 스탯과 공식을 적용하고 스킬도 MP 등과 같은 포인트에 맞춰 사용하고 회복하는 부분을 AI에 맞춰 진행하기에 몬스터의 공격 방식은 좀 더 세부적으로 그 형태적 특징에 따라 구분해 놓는 것이 좋습니다. 예를 들면 단순한 자꾸 형 몬스터, 중간보스형, 보스형 식으로 구분으로 하고, 각각의 종류에 따라 전투를 진행하는 패턴화 AI를 구성하는 게 좋습니다.


    4. 공식 예시

    실제로 공식화해서 예를 들어 보겠습니다. 

    사용 스텟은 s str, DEXint의 3개로만 한정하고, 가장 기본적인 공식으로만 한번 예를 들어 보겠습니다.

     

    1) 기본 전투 공식

     

    "damage = 공격자의 공격 수치 - 방어자의 방어 수치"

     

    * 공격자의 공격 수치는 

    '근거리 = {(str + DEX/2) + 공격 무기 공격력 합계 + 기본 캐릭터별 보정 수치} x 0.9~1.1' 

    '원거리 = {(DEX + str/2) + 공격 무기 공격력 합계 + 기본 캐릭터별 보정 수치} x 0.9~1.1'

    '크리티컬 = 캐릭터별 레벨에 따른 table 확률로 발생' 

    '기본 damage = 최종 결과 수치 x 1.2~1.4' 

    '방어 = (str + DEX/4) + 방어고 아이템 방어력 합계 + 기본 캐릭터별 보정 수치'  

    설정을 해 볼 수 있습니다.

     

    * 일단 근거리와 원거리를 다르게 설정해 보았습니다. 이러면 유저들은 각 직업이나 캐릭터 간 공격 방식에 따라 성장시키는 요소가 틀리기 때문에 보다 다양한 아이템이나 성장 거리가 생길 수 있습니다.

    * 기본적인 공식의 상숫값은 추후 밸런싱을 잡을 때 계속 변동하는 수치이고, 마지막 0.9~1.1의 곱하기 상수는 동일 공격에 대한 변동률을 집어넣은 것입니다. 이를 통해 유저들은 일반 공격 중에서도 복권처럼 재미 요소를 찾을 수 있고, 기본 공식 자체가 노출되지 않아 밸런싱 잡기에 유리합니다.

    * 마지막 critical은 기본 최종 수치에 1.2~1.4의 수치를 곱한 수치가 최종 damage 값으로 들어오도록 잡은 것으로, 실제 damage 롤이 아주 높지 않도록 해서 밸런싱에 효율적으로 잡아야 하고 싶을지 critical은 damage 룰도 중요하지만 확률이 중요합니다. 저는 기본적으로 레벨 당 확률을 다르게 적용하여 점차 성장해 나가면서 같이 높아질 수 있도록 잡습니다.

     

    이번 예시는 아이템의 능력치 위주로 잡은 계산 공식이고요 아시겠지만 나 / 보다는 + , - 수치를 이용한 공식으로 구조를 잡는 것이 초반에는 유리합니다. (결과값 및 변동률이 아주 심플하게 나올 수 있습니다)

     

     

    2) 기타 수치 공식

     

    "HP = {캐릭터별 레벨 당 HP 수치 + (str/5)} + HP 상승 관련 아이템 수치 + 스킬 수치" 

    "MP = {캐릭터별 레벨 당 MP 수치 + (int/3)} + MP 상승 관련 아이템 수치 + 스킬 수치"

     

    * HP와 MP는 캐릭터 레벨에 따라 일정 수치 또는 비율로 정해 놓는 것이 좋습니다. 즉, 캐릭터와 몬스터 간의 전투를 시뮬레이션해 보고 그에 따라 적절한 시간을 판단하여 상숫값으로 지정해주고 스탯 수치를 보정치로 넣은 것이 보다 명확하게 정의하기 편합니다.

     

    그 밖에 초기 HP를 설정하고 레벨별 HP 상승 수치를 뽑아서 더하는 방법도 있는데 이 부분은 추후 밸런싱을 집을 때 한 번 더 계산을 해야 함으로 저는 잘 사용하지 않습니다.

     

     

    3) 경험치 관련 공식

     

    "현재 경험치 = 이전 경험치 수치 + 습득된 경험치 수치"

     

    초기 경험치는 상숫값으로 지정하면 쉽게 계산을 할 수 있습니다. 경험치는 최대한 지정된 상숫값의 증가분을 더하는 방식으로 잡았는데 이 부분이 쉽게 컨트롤이 되어야 향후 몬스터들의 경험치를 계산하고 그에 따라 플레이 시간을 조정할 수 있습니다. 이 시간이라는 부분은 매우 중요한 부분으로 어떠한 공식 부분보다 컨트롤이 쉬운 쪽으로 구성을 하는 게 좋습니다.


    5. 마무리

    이번 전투 관련 부분은 아주 기본적인 사항만 적용해 본 것입니다. 이외에 원거리 표적을 맞히거나 스킬 개별 부분, 속성이라고 하는 부분, FPS 같은 경우는 바람 세기, 총의 반동 등 다양한 부분을 함께 공식화하여 구성하여야 합니다.

    하지만 이런 부분은 초기에 말한 어떤 식으로 게임을 구성하느냐에 따라 맞추는 것이기에 이번에 예로 든 가장 기본적인 사항을 중심으로 한번 나만의 공식을 구성해 보고, 이를 통해 실제 설계를 시작해 본다면 전체적인 전투 기획을 진행하는 데 도움이 될 거라 생각합니다.

    지난번 STEP2 에서는 메인 시스템을 잡아보는 과정이었으면 이번에는 설정한 메인 시스템 내에서, 어떤 부분으로 게임이 진행될지를 생각하는 단계입니다.

    그중에서 전투 쪽으로 좀 더 집중해서 정리해 보고자 합니다. 일단 게임 자체가 전투를 중심으로 게임이 진행되는지... 아이템의 습득과 조합 등을 통한 개발, 거래 등의 경제 중심으로 게임이 진행되는지... trap의 통과 나길 찾기 등의 어드벤처 중심으로 게임이 진행되는지... 이러한 진행 내용을 결정하면 그에 따른 메인 시스템부터 구조를 잡아 나가게 됩니다. 그럼 그중에서 전투를 중심으로 하는 게임으로 결정한다면 전투의 개념부터 확실히 알고 있어야 합니다.

    728x90
    반응형
Designed by Tistory.