-
Notifications
You must be signed in to change notification settings - Fork 2
주인공 게임 시스템
캐릭터를 마우스나 키보드 조작을 통해 화면 상에서 움직이는 것을 말한다.
위 그림과 같이 바라보는 화면 기준으로 8개의 방향으로 일정한 속도로 움직인다.
조작은 WASD 나 방향 키 그리고 마우스를 통해 할 수 있다.
위 그림과 같이 W,S,A,D 에 대해 상,하,좌,우 순으로 이동할 수 있다.
마찬가지로 방향키 ↑,↓,←,→ 에 대해 상,하,좌,우 순으로 이동할 수 있다.
그리고 대각선 방향에 대해서도 이동할 수 있다.
상,하,좌,우에 해당하는 이동 키를 조합하여 대각선 방향으로 이동할 수 있다.
조합은 그림을 보면 알 수 있다.
마우스를 통한 이동은 클릭 후 클릭을 유지한 채로 마우스를 이동하여 캐릭터를 움직일 수 있다.
마우스를 통한 이동은 조작 특성 상 방향이 8개로 제한되지 않고, 이동 키 기반 이동 방식에 비해 자유로운 방향 설정이 가능하다.
위 그림을 보면 알 수 있듯이 처음 클릭할 때 화면 상의 좌표가 저장되고, 그 후 마우스를 이동하면 마우스가 움직인 방향과 같은 방향으로 캐릭터가 또한 일정한 속도로 이동한다.
참고로 마우스 클릭은 우클릭, 좌클릭 모두 가능하다.
카메라는 캐릭터에 고정되어 있어야 한다.
위 그림과 같이 캐릭터 이동 잔상을 통해 역동감을 줄 수 있다.
이 '휴먼 서바이벌' 게임은 이름처럼 서바이벌, 즉 생존하는 것이 주 컨셉인 게임이다.
주인공은 체력이 있는데 해당 체력이 0까지 내려가면 죽어 게임 오버이다.
사방에서 몰아치는 적들에게 닿거나 적들의 공격에 닿으면 혹은 함정에 닿으면 체력이 내려간다.
주인공은 이 몰아치는 적들을 피하거나 공격해 없애서 생존해 나갈 수 있다.
주인공은 체력이라는 수치를 가지고 있다. 이 수치는 기본적으로 100 이다.
체력은 다양한 공격에 의해 감소 될 수 있다.
체력의 감소를 보통 데미지를 입는다고 표현한다.
데미지를 입어서 체력이 0으로 내려가면 죽게 된다. 죽으면 게임 오버 화면을 띄운다.
주인공은 또한 방어력이란 수치를 가지고 있다. 방어력은 데미지를 경감 해주는 역할을 한다.
데미지를 입을 때 방어력의 수치만큼 덜 데미지를 입는다.
- 예를 들어 방어력이 3이고 데미지가 8이라면 8 - 3 = 5 , 즉 8이 아닌 5만큼 만 데미지를 입는다.
만약 방어력이 데미지보다 크거나 같다면 난이도 급감을 방지하기 위해 받는 데미지를 1로 고정하도록 하자.
주인공은 적과 접촉하고 있으면 짧은 주기마다 지속적으로 데미지를 입는다.
데미지의 크기는 접촉한 적이 보유한 데미지 수치이다. 이 데미지는 적의 종류마다 다르다.
- 투사체로 인한 피격
일반적으로는 적은 접촉을 통한 공격 만을 하는데 반해 일부 적은 플레이어에게 원거리 투사체를 발사한다. 주인공이 이 투사체에 접촉한다면 투사체 공격력만큼 주인공이 데미지를 입는다.
+폭발하는 적에 의한 피격
플레이어가 적의 폭발 범위 내로 접근하면 폭발하여 플레이어가 폭발 범위 안에 있다면 큰 데미지를 입힌 후 소멸한다.
이 함정은 특정 스테이지에서 만 등장하는 요소이다. 긴 주기 마다 플레이어 주위에 무작위한 위치에 폭발 전 이펙트를 보여준 뒤 일정시간 후 플레이어가 미리 설정된 폭발 범위 안에 있다면 데미지를 받는다.
시각 효과는 크게 2가지 요소로 나뉜다.
- 주인공 색 변화
- 흩날리는 피 연출
위 그림과 같이 주인공은 맞으면 바로 빨간색 이미지로 바뀐다.
그러고 이제 시간이 지나면 원래 이미지 색으로 돌아와야 한다.
그 시점은 언제인가?
그걸 설명하기에 앞서 알아야 할 것이 있다.
주인공은 고유의 피격 주기가 있다.
닿아있는 동안 1프레임 마다 데미지가 다는 것이 아니라 정해진 고유의 주기가 있어 해당 주기마다 데미지를 입는다.
이 피격 시 캐릭터의 빨간색이 원래 색으로 돌아오는 시점은 이 피격 주기로 설명할 수 있다.
다음 피격 주기가 되면 원래 색으로 바로 돌아온다.
위 이미지를 좀 자세히 보면 빨간색 점들이 보일 것이다.
그것이 흩 뿌려지는 피 연출이다.
매 피격 마다 파티클 단위 하나가 생성되는 것으로 보인다.
캐릭터 중심 점에서 생성되어 아래로 떨어진다.
떨어지며 개개의 빨간 점(?) 들은 서로 흩어진다.
주인공은 체력이란 수치가 있다.
이 체력은 적으로부터 데미지를 입으면 감소하고 0이되면 게임 오버이다.
하지만 체력은 반대로 증가 시킬 수도 있다.
그 방법은 크게 2가지가 있다.
- 치킨(아이템)을 통한 체력 회복
- 자동 체력 재생을 통한 체력 회복
치킨은 체력 회복 아이템이다.
그 전에 맵 오브젝트를 알아야한다.
게임 플레이 중엔 스테이지에 무작위로 오브젝트들이 배치된다.
이 오브젝트들은 체력이 있어 주인공 스킬 공격에 데미지를 입을 수 있다.
오브젝트의 체력이 0이 되면 오브젝트는 파괴되고 아이템을 드랍한다.
오브젝트 구현은 추후에 다룰테니 일단 치킨만 생각하자
맵 오브젝트 파괴시 확률적으로 치킨이 드랍 되기도 한다.
치킨을 수집하면 주인공은 기본적으로 30의 체력을 회복한다.
여기서 체력 회복량은 주인공의 회복 스탯에 따라 변화할 수 있다.
회복량 = 기본 회복량 ( 30 ) * ( 1 + 회복 스탯 )
체력은 시간이 지남에 따라 자동으로 재생되기도 한다.
매 초 마다 한 번 재생된다.
재생량은 주인공의 회복스탯과 같다.
체력 재생량 = 회복 스탯
이 휴먼 서바이벌 게임에선 주인공은 다양한 아이템들이 맵 상에 존재한다.
체력 회복 아이템, 경험치, 업그레이드 보물 상자 그리고 돈 등의 아이템이 맵 상에 존재할 수 있다.
어떤 아이템이 맵 상에 존재하게 될 때 이를 아이템이 드랍 되었다고 표현한다.
다양한 드랍 아이템에 대한 공통적인 처리를 구현하자
드랍 될 수 있는 아이템의 종류는 다양하다.
- 경험치
- 돈
- 보물 상자 스킬이나 패시브 혹은 돈을 얻을 수 있다.
- 체력 회복 아이템
- 패시브 스킬
- 효과 아이템 추가적인 공격이나 맵 전체 경험치 수집 그리고 적 전체 얼리기 등의 효과를 가진 아이템이다.
- 무언가(적 이나 맵 오브젝트)를 파괴하면 파괴된 위치에 아이템이 확률 적으로 생성된다.
- 캐릭터의 아이템 수집 범위가 있는데, 이 범위 안에 아이템이 들어오면 아이템은 수집 된다.
- 아이템 드랍 확률은 주인공의 행운 수치에 영향을 받는다.
- 아이템이 주인공의 중심 점에 도착하면 해당 아이템의 효과가 작동한다.
아이템 별로 아이템이 수집 되었을 때 어떤 일이 일어나는 지가 다르다.
추후에 각각 아이템에 대해 자세히 다룰 것이니 각각 아이템에 대한 구체적인 처리는 제쳐두자
캐릭터에겐 고유의 아이템 수집 범위가 있다.
이는 원형이다.
이 수집 원의 크기는 캐릭터의 자석스탯의 영향을 받아 더 커질 수 있다.
최종 수집 원 반지름 = 기본 원 반지름 * ( 1 + 자석 스탯 / 100 )
원의 크기는
수집 범위에 들어선 아이템은 약간 주인공으로부터 멀어진 뒤 다시 주인공을 향해 날아간다.
오류, 가속 방식이 아니라 초기 속도만 있음
수집 되고 있는 드랍템은 주인공 방향으로 등가속 운동을 한다.
마지막으로 주인공 중심 점에 아이템이 다다르면 그때 아이템의 효과가 발휘된다.