본문 바로가기

게임 프로그래밍

언리얼5.2 몬스터헌터 기획

구현 리스트

  1. 이동(Locomotion) + 애니메이션 구현
    • 걷기
      MoveDirection: Forward,Back,Left,Right
    • 뛰기
      MoveDirection: Forward,Back,Left,Right
    • 벽 타기
      MoveDirection: Up,Down,Left,Right
    • 빠른 벽타기
      MoveDirection: Up,Down,Left,Right
    • 죽음
      체력 0이하의 경우 발생
    • 숨쉬기
      특정 이벤트 상태가 없을 경우 발생
    • 발도
      숨쉬기 모드에서 공격 버튼 클릭시 발생
  2. 공격

    • 좌 마우스 클릭 시 공격
      공격은 최대 3단계 콤보 공격 가능
      이동 불가능

      우 마우스 클릭 시 몬스터 락온
  3. 스텟(몬스터 공용 사용)
    • 체력
      체력이 0이하 소진될 시 게임 오버

    • 기본 공격력
      -7 ~ +7의 범위 내 적에게 데미지를 입한다.
      몬스터는 플레이어의 기본 공격 + 무기 공격력의 합산으로 계산된다

    • 스태미너
      플레이어: 뛰기(Shift) 사용 시 소진
      몬스터: 공격 시 사용
    1. 전투 맵
      1. 레벨 디자인
        • 맵 소환
          전투맵은 고유한 Id가 존재한다
          전투맵은 고유한 이름이 존재한다
          전투맵은 고유한 맵이 존재한다
          BattleMapLevel은 전투맵 단 하나만을 가진다.
        • 몬스터 소환
          소형 몬스터 스포너는 다수 넓게 존재한다.
          소현몬스터는 한 스포너에서 1~3개의 소환이 가능하다.

          대형 몬스터 스포너는  리전에서만 존재하며 단 하나만을 소환 해야한다.
      2. 리전
        맵은 6~7개의 구역이 존재한다.
        구역의 특징은 전투에 방해되지않게 평평한 지형을 이루고있다.
        대형 몬스터의 이동 좌표의 지정 핸들러이다.
        레벨 디자인은 서로가 연결되는 그래프 구조로 되어있다.
        각 고유 번호를 가지고있다.
      3. 미니 맵
        입력 이벤트: M
        리전의 고유 번호 표기
        플레이어 현재 위치 표기
        대형 몬스터의 위치, 이름 표기
        캠프 좌표 표기
      4. 캠프
        회복 가능
    2. 마을 맵
      1. NPC
        1. 요리사(Creator)
          1. 요리(virtual Create)
            몬스터에게 획득한 재료 아이템의 조합으로 요리 생성이 가능하다
            재료 아이템 타입은 1~2개 필요
            갯수는 1~2개 필요 
          2. 식사
            식사는 3개의 서로 다른 요리가 모이면 가능하다
            식사시 플레이어의 스텟이 2씩 증가
        2. 연금술사(Creator)
          1. 골렘생성
            몬스터에게 획득한 재료 아이템의 조합으로 골렘 생성이 가능하다
            재료 아이템 타입은 1~2개 필요
            갯수는 1~2개 필요
          2. 체력포션 생성
            몬스터에게 획득한 재료 아이템의 조합으로 포션 생성이 가능하다
            재료 아이템 타입은 1~2개 필요
            갯수는 1~2개 필요
            1. 포션 설명
              1. 일정 체력을 증가 시킨다.
              2. 최대 갯수는 20개를 기준으로 한다.
        3. 무기 장인(Creator)
          1. 무기생성
            몬스터에게 획득한 재료 아이템의 조합으로 무기 생성이 가능하다
            재료 아이템 타입은 1~2개 필요

            갯수는 1~2개 필요
          2. Ui
            무기는 그래프 구조의 ListView Ui로 표현
        4. 배틀맵 로더
          배틀맵 선택
          리스트뷰 형태의 배틀맵 리스트를 유저에게 보여준다.
          배틀맵 이름, 소형 몬스터의 이름, 대형 몬스터의 이름이 출력된다.

  4. 몬스터
    1. 소재 아이템(재료 아이템)
      • 획득 조건
        몬스터의 죽음 플러그를 세운 대상이 플레이어인 경우
        소재 아이템을 획득
      • 설명
        몬스터는 드랍 가능한 소재의 아이디를 1차원 자료구조 형태로 고유하게 가지고있다.
        소재 아이템은 각 고유 id를 가진다.
        소재 아이템은 각 소재 타입을 가진다.
      • 타입
        고기소재 타입 = 1
        식물소재 타입 = 2
        각갑소재 타입 = 3
        유기물소재 타입 = 4
    2. 상태머신 FSM
      몬스터는 게임중 단하나의 상태만을 가지며 대형몬스터와 소형몬스터는
      상태의 타입의 존재가 구분되어 관리된다. 
  5. 소형 몬스터 
    • FSM
      1. 일반 상태
        1. 숨쉬기
          1f~3f초간의 정지 상태를 유지한다.
          지정된 범위 내에서 다음 이동할 좌표를 지정한다.
          걷기 상태를 가진다.
        2. 걷기
          이동이 완료되면 숨쉬기를 반환한다.
        3. 전투
          플레이어에게 공격받았을 시 전투상태 반환.
      2. 전투 상태
        1. 일반 공격
          범위 내 플레이어가 존재하지않으면 추적 상태로 반환.
          근접 애니메이션과 함께 일정 내각범위에 플레이어를 공격한다.
          앞으로 약간 이동한다.
          일반 공격이 끝나면 거리만들기 상태를 가진다.
        2. 추적
          공격당한 플레이어를 추적하여 이동한다
          플레이어가 범위내 접근되면 일반 공격상태로 반환한다.
        3. 거리 만들기
          플레이어의 반대 방향으로 일정 거리를 빠르게 이동한다.
          이동이 완료되면 추적상태를 반환한다.
        4. 잊기
          추적상태에서 일정 시간까지 상태변환이 존재하지않으면
          일반상태 숨쉬기를 반환한다.
        5. 죽음
  6. 대형 몬스터
    1. FSM
      1. 일반 상태
        1. 숨쉬기
          1f~3f초간의 정지 상태를 유지한다.
          지정된 범위 내에서 다음 이동할 좌표를 지정한다.
          걷기 상태를 가진다.
        2. 걷기
          이동이 완료되면 숨쉬기를 반환한다.
        3. 전투
          플레이어에게 공격받았을 시 또는 발견시 전투 상태
      2. 전투 상태 
        1. 일반 공격
          범위 내 플레이어가 존재하지 않으면 추적 상태로 반환.
          근접 애니메이션과 함께 일정 내각범위에 플레이어를 공격한다.
          앞으로 약간 이동한다.
          공격이 끝난 이후 숨쉬기 상태를 가진다.
        2. 추적
          플레이어가 일반공격 범위 보다 멀리 존재하면 이동할 좌표를 지정한다.
          조건을 달성하면 일반 공격 상태를 가진다.
        3. 숨쉬기
          1~3초간의 정지 상태를 유지한다.
          이후 흔들기 상태를 가진다.
        4. 흔들기
          몬스터 기준 일정 원 범위 내 존재하는 플레이어에게 넉백 및 데미지를 입힌다.
          -> 플레이어가 데미지를 입으면 일반공격
          -> 플레이어가 데미지를 입지않으면 숨쉬기
        5. 도망
          일정 시간동안 추적상태가 유지되면 특정 리전을 목표 좌표로 이동한다.
        6. 죽음
          몬스터의 체력이 0일 경우
        7. 기절
          지정된 수치보다 플레이어의 DFS가 크면  발생된다.
          5초간 몬스터는 아무것도 상태를 변환하지않는다.
          5초가 지나가면 일반 공격 상태를 가진다.즉사 패턴
          체력이 3/1로 내려갈 경우 몬스터는 스킬 공격을 시도하며 피격 플레이어의 HP는 0이 된다.
  7. 전투맵 클리어
    1. 보상 UI
      대형 몬스터 처치 시 등장
      처치 대형 몬스터 이름

      처치 소형 몬스터 이름 및 마리수
      보너스 소재 아이템
      마을로 가기 클릭 버튼
    2. 마을 맵 이동
      마을의 입구에서 플레이어 소환