Skip to content

스킬 시스템

rapa1130 edited this page Jan 18, 2023 · 6 revisions

스킬 발사 시스템

스킬?

본 휴먼 서바이벌에서는 스킬이 사실 이 게임의 핵심이다.

사용자는 여러가지 성장 요소 선택을 제외하면 움직임 만을 컨트롤 한다.

그와 동시에 이미 선택되어 온 스킬들이 자동으로 발사된다.

사용자는 다가오는 적들을 피하면서 움직임으로 최대한 스킬들을 활용 해야 한다.

해당 To Do List 에서 해야 할 것

의도

이 게임은 앞으로 28개의 스킬, 진화 무기까지 구현한다면 약 40~50 개의 스킬들을 구현해야 한다.

이 게임에서 스킬들은 많은 종류가 있다. 그 특성들이 비슷한 것도 있고 매우 다른 것도 있다.

이를 효과적으로 구현하려면 공통점에 해당되는 것들을 파악해 두고 구현 해두면 중복 업무를 감소 시킬 수 있을 것이다.

해야 할 것

즉, 해당 ToDo 에선 공격력, 쿨타임, 투사체 수와 같은 공통되는 사항들을 구현을 목표로 둔다.

앞으로 추가될 스킬들을 넣기 좋게 공통되는 부분을 미리 구현하되, 다른 부분이 있는 스킬에 대한 확장성도 고려해야 한다.

스킬 일반 특성

스킬 용어들

공격력 : 스킬이 적 타격 조건(발사체가 맞음 등) 을 만족했을 때 적의 체력을 깎는 정도
쿨타임 : 스킬의 발사 주기
발사체 속도 : 발사체의 이동 속도
지속 시간 : 발사체가 유지되는 시간, 지속 시간이 지나면 발사체 사라짐
발사체 수 제한 : 현재 유지되고 있는 발사체의 수에 제한이 있어 해당 제한 보다 많으면 발사되지 않음
관통 수 : 발사체가 타격할 수 있는 적의 최대 수, 타격 수가 최대 타격 수와 같아지면 소멸
공격 범위 : 발사체의 타격 범위에 대한 정도
희귀도 : 스킬의 희귀도가 높을 수록 레벨업시 스킬선택창에 잘 뜬다.

스킬 경로

사실 스킬에 있어서, 그래픽 요소를 제외한다면, 제일 변화가 많은 부분은 스킬의 움직임과 범위이다.

다음은 다양한 스킬 경로에 대한 예시 사진들이다.

매직 미사일

Image

직선 방향

룬 트레이서

Image

직선 방향이고 구조물에 튕김

마녀의 고양이

Image

Image

고양이들이 맵을 임의 방향으로 움직이며 적과 닿으면 범위 타격, 고양이 끼리 만나면 범위가 커짐

흰/검 둘기쓰

Image

주인공을 공전하는 범위에 대하여 특유의 휘어진 곡선으로 발사한다.

대략적으로 분석해보니 스킬의 움직임은 5가지의 변인들로 추려볼 수 있었다.

예외) 비 공격 스킬들_사탕 상자, 월계수

  1. 시작점

  2. 발사 방향

  3. 변화 조건

  4. 변화 내용

  5. 외력

일반적 스킬 구동 원리

  • 스킬은 쿨타임 마다 발사된다.

  • 스킬은 발사될 때 해당 스킬 종류에 따른 방향시작 점으로 발사된다.

  • 발사된 발사체는 해당 스킬에 따른 지속 시간만큼 유지된다.

  • 어떤 발사체 종류의 현재 발사체 수가 해당 스킬의 발사체 수 제한보다 크거나 같다면 발사하지 않는다.

    if( 현재 발사체 수 >= 해당 스킬 발사체 수 제한 ) 발사체를 발사하지 않음

  • 발사체가 타격한 적의 수가 관통 수와 같아지면 발사체는 소멸한다.

  • 발사체는 적을 타격 시 공격력 만큼 적의 체력을 감소 시킨다.

주인공 스탯과 스킬의 관계

Image

스탯?

스탯은 인물의 특정 능력치에 종류를 부여하여 계량화한 시스템이다.

스탯과 스킬

주인공은 다양한 스탯을 가지고 있다. 이 스탯들로 더 강한 스킬들을 쏠 수 있다.

여기서 스킬 발사와 관련이 있는 스탯은 피해량, 투사체 속도, 지속 시간, 공격 범위, 쿨타임, 투사체 수 이다.

스킬이 발사되고 타격할 때 해당 수치들이 함께 계산되어 스킬에 영향을 미친다.

스택별 식

  • 피해량, 투사체 속도, 지속 시간, 공격 범위, 쿨타임

이 스탯들은 퍼센테이지 수치들로 특정 스킬에 해당하는 값에 캐릭터 스탯과 퍼센테이지 연산을 하면 된다.

피해량을 예로 들어보자.

계산된 피해량 = 해당 스킬 피해량 * (1 + 피해량스탯 / 100)

예를 들면 스킬 피해량 20 그리고 피해량 스탯이 50% 라면

피해량 = 20 * (1 + 50 / 100) = 30 

즉 피해량은 30이 된다.

_ 참고로 쿨타임 스탯은 음수 값이다_

  • 발사체 수

발사될 스킬의 발사체 수는 해당하는 스킬의 발사체수와 발사체 수 스탯의 합이다.

발사될 투사체 수 = 해당 스킬 발사체 수 + 발사체 수 스탯

스킬 타격 이펙트

Image

적은 주인공의 스킬에 맞으면 타격 이펙트가 적 위치에 생성된다.

타격 이펙트는 스킬별로 다를 수 있다.

스킬/패시브 관리 기능

다수의 스킬들과 패시브 스킬들

Image

휴먼 서바이벌에서 주인공은 스킬을 보유하고 보유하고 있는 스킬들을 지속적으로 발사한다.

스킬/패시브 은(는) 하나만 있는 것이 아니고 여러 개 보유할 수 있다.

보유하고 있는 스킬들은 모두 지속적으로 발사되어야 한다.

패시브 스킬 또한 여러 개를 가질 수 있다.

스킬 획득 및 진화

레벨업을 하거나 보물상자를 열어서 스킬/패시브를 얻을 수 있다.

기존에 가지고 있지 않은 스킬이나 패시브를 얻으면 선택한 스킬/패시브를 새로이 가질 수 있다.

만약 기존에 가지고 있는 스킬이나 패시브를 얻으면 선택한 스킬/패시브의 레벨이 1만큼 상승하며 그에 따른 능력치 변화가 발생한다.

스킬 레벨업에 따른 변화

레벨에 따른 능력치 변화는 스킬/패시브 마다 정해져 있다.

각 변화에 대한 정보를 가져와서 반영하는 기능도 일반화 시켜서 만들어두면 좋을 것으로 보인다.

채찍 레벨업에 따른 변화 예시

Lv.1 : 무기 획득, 주인공 앞으로 수평으로 ?s 공격

Lv.2 : 발사체 1개 증가, 주인공 뒤로도 수평으로 공격

Lv.3 : 기본 데미지 5 증가

Lv.4 : 기본 데미지 5 증가 및 공격 범위 10% 증가

Lv.5 : 기본 데미지 5 증가

Lv.6 : 기본 데미지 5 증가 및 공격 범위 10% 증가

Lv.7 : 기본 데미지 5 증가

Lv.8 : 기본 데미지 5 증가

진화 무기

휴먼 서바이벌엔 무기의 진화라는 개념이 있다. 예를 들어 이 게임엔 불의 지팡이란 무기가 있다. 이 무기를 끝까지 강화했고 시금치라는 장신구가 있는 상태에서 보물상자를 얻으면 불의 지팡이를 진화시킬 수 있다. 즉, 무기를 진화하려면 진화할 무기의 진화 조건을 만족한 상태에서 보물상자를 얻으면 할 수 있는 것이다.

진화

진화는 사실 별거없다. 진화 조건을 만족해서 진화를 하면 기존 스킬은 빼고 진화 스킬을 다시 넣어주면 된다. 즉, 보유한 무기를 다른 무기로 대체하는 거이다.

진화 조건

기본적으로 어떤 스킬을 진화하려면 그 스킬의 레벨을 끝까지 올려야한다. 8레벨까지 있는 스킬이라면 8레벨까지 올려야 진화를 할 수 있는 것이다. 그 외의 조건이 더 붙기도 하는데 그건 스킬마다 다를 수 있다. 하지만 일반적으로 스킬은 끝레벨까지 올리고 특정 장신구를 보유하고 있으면 진화할 수 있다. 해당 특정 장신구는 스킬마다 정해져있다. 예를 들면, 마법 지팡이라는 무기는 빈 책이라는 장신구가 있어야 진화할 수 있는 식이다.

그러나 예외도 있다. 예를 들어 하얀 비둘기와 검은 비둘기라는 스킬은 둘 다 무기 스킬이다. 이 둘은 진화를 하기 위해선 따로 장신구가 필요하지 않다. 대신 이 둘이 만렙인채로 보유하고 있어야 한다. 그러고 진화를 하면 하얀 비둘기와 검은 비둘기가 무지개 비둘기로 대체된다.

이 진화 조건이 만족 되었다면 보물 상자를 얻을 때 진화된다.

보물상자로 진화

Vampire Survivors 2023-01-18 오후 4_21_15

위와 같이 보물 상자에서 뜨는 아이템중 하나로 표현된다. 완료 버튼을 누르면 기존 스킬이 진화 스킬로 변경된다.

Clone this wiki locally