[Project CatTower] #0. Project CatTower 계획서

👻 프로젝트 계획서


🌱 게임 개요

제목 Project: CatTower
장르 로그라이크, RPG 기반의 3인칭 슈팅(TPS) 게임
플랫폼 PC
목표 로그라이크 던전을 3인칭 시점에서 바라보는 신선한 플레이를 제공
컨셉 고양이가 캣타워를 오르듯이 타워(던전)를 올라가며 성장하는 턴제형 전투 게임

🌱 게임 소개


🪐 기획 의도

대부분의 로그라이크 게임은 2D 방식으로 진행됩니다. 평소 흔하지 않은 장르의 3D 게임을 만들고 싶었던 저는 로그라이크 장르에 3D를 섞으면 어떨까하는 생각을 해보았습니다. 그리하여 탄생된 게임이 바로 Project: CatTower입니다. 3인칭, 부분 1인칭의 시점을 통해 던전에 실제로 있는 듯한 느낌을 선사하고 유저들이 경험해보지 못했던 신선한 시점의 로그라이크 게임 플레이를 제공해주고 싶은 마음에 기획하게 되었습니다.


🪐 콘텐츠의 구성

  • 던전 입장
    던전을 진행하며 전투가 이루어지는 메뉴입니다. 해당 던전 별로 전투 맵, 상점 맵 등이 등장하게 되고 유저는 매번 입장할 때마다 랜덤한 던전에 입장하게 됩니다. 던전 5층마다 엘리트 혹은 보스 몬스터가 등장하게 됩니다.

  • 인게임 스탯
    경험치를 모아 던전 내에서 레벨업을 하게 되면 그 즉시 게임은 일시정지 상태가 되고 해당 스테이지에서 사용 가능한 능력치를 강화할 수 있습니다. 일반적인 능력치와는 다르게 플레이어가 죽으면 사라지는 능력치입니다.

  • 능력치
    던전을 진행하며 주어지는 코인들을 모아 능력치를 선택할 수 있는 메뉴입니다. 선택한 능력치에 따라 캐릭터의 스탯이 변경되며 해당 게임을 오래 플레이하면 할수록 캐릭터를 강화시킬 수 있는 성장형 게임 특성의 대표적 메뉴라고 볼 수 있습니다. 해당 능력치 트리를 통해 다양한 조합법을 만들 수 있을 것으로 예상되며 여러 갈래의 결과를 도출할 수 있을 것이라는 기대 목표가 있습니다.

  • 도감
    던전을 진행하며 얻을 수 있는 아이템들을 모아 둔 메뉴입니다. 던전에서 아이템을 습득하면 캐릭터가 죽기 전까지 능력이 유지되며 도감은 영구적으로 등록됩니다. 아이템들의 그룹화를 통해 해당 그룹에 속한 아이템을 전부 먹으면 별개의 추가 특성을 영구적으로 획득할 수 있습니다.

  • 캐릭터 선택
    다양한 캐릭터들을 볼 수 있는 메뉴입니다. 일정 코인으로 해감할 수 있으며 각 캐릭터 별로 고유 스킬과 능력치를 가지게 됩니다.


  • 플레이어가 장착할 수 있는 모든 총을 볼 수 있는 메뉴입니다. 각 총마다 고유 능력치가 다르며 비교할 수 있습니다.

  • 협동 모드 (옵션)
    멀티플레이어 기능 구현이 가능하다면 개발해보고 싶은 메뉴입니다. 최대 4인까지 모아 다함께 던전을 플레이할 수 있고 나머지 기능은 동일합니다.


🌱 게임의 기본 구성


🪐 플레이 방식

  • 기본 조건
    신규 유저는 무조건 레벨 1, 경험치 0, 스테이지 1에서 시작합니다. 게임의 첫 화면은 메뉴가 모여있는 로비이고, 여기서 던전 입장, 능력치, 도감 등의 페이지를 열 수 있습니다. 던전에 입장하게 되면 랜덤으로 맵이 생성되며 턴제 전투 플레이 방식으로 모든 방을 클리어하게 됩니다. WASD가 이동, 좌클릭이 발사 이벤트입니다.

  • 던전
    던전 내의 레벨은 1, 경험치는 0을 가지고 시작하며 기본 총을 들고 입장하게 됩니다. 또한 일정 비율의 체력 게이지를 가지고 몬스터의 공격을 받을 때마다 데미지를 받습니다. 몬스터를 처치하면 랜덤한 양의 코인과 아이템이 드랍됩니다. 경험치는 자동으로 쌓이게 됩니다. 경험치가 모두 차 레벨업을 하게 되면 게임이 일시정지되고 능력치를 선택할 수 있는 창이 나타납니다. 해당 능력치는 죽으면 모두 사라지며 플레이어가 살아있는 동안만 유효합니다. 체력을 모두 소모해 죽게 되면 해당 스테이지는 끝이나고 던전 탐험은 종료됩니다. 로비에서 재정비 가능하며 던전 재입장을 통해 게임 내 전투 콘텐츠를 게속 진행할 수 있습니다. 던전은 총 30층 정도 존재하며, 1층부터 순차적으로 진행됩니다. 각 던전은 랜덤으로 방이 5개에서 10개 사이로 생기며 5층 단위로 보스가 나타나게 됩니다. 던전은 크게 일반과 스페셜로 분류됩니다. 플레이 방식은 일반 던전과 동일하나 스페셜 던전 나이도가 1.5배 더 높습니다. 또한, 특정 방은 아이템을 구입핧 수 있거나 얻을 수 있게 되고 숨겨진 방이 존재할 가능성도 있습니다.

  • 몬스터
    타워의 층수에 비해 일정 간격으로 데미지 및 난이도가 증가하게 됩니다. 플레이어가 사거리 내에 드러오면 AI 구현을 통해 플레이어에게 원거리 혹은 근거리 공격을 자동으로 가하게 됩니다.

  • 게임 종료
    유저가 사망하면 던전 내 레이드는 즉시 종료되고 캐릭터는 로비로 돌아가게 되며 일정 경험치가 쌓이게 됩니다. 단, 던전 내에서 얻었던 코인은 사라지지 않고 누적됩니다. 얻었던 아이템이 있다면 도감에 새로 등록됩니다.


🌱 개발 일정

개발 일정, 기간의 경우 정확하게 세우기 힘들어 대략적인 내용만 정리하였습니다.


🪐 개발 기간

Alt Text

  • 맵 제작 : 로비를 포함한 모든 게임 내 맵 제작
  • 몬스터 AI 구현 : 이동, 범위 내 플레이어 들어올 시 자동 공격 기능
  • 캐릭터 기능 구현 : 플레이어의 전반적인 기능 구현
  • 게임 메뉴 구성 : 시작 시 뜨는 메뉴화면을 포함하여 모든 메뉴 구성
  • 아이템 메뉴와 기능 구현 : 아이템 기획, 메뉴 기능 구현
  • 캐릭터 모델링 : 플레이어 모델링, 몬스터 모델링
  • 모델 변경 작업 : 만들어진 모델 매핑 작업
  • 기능 보완 및 테스트 : 개발 마무리 및 QA 단계

🌱 활용하고 싶은 기술

  • 언리얼 엔진에서 C++을 이용한 전반적인 개발 진행 흐름
  • Behavior Tree
  • 네비게이션메쉬
  • A* 알고리즘
  • Vector, Rotation, Transform
  • Camera, Movement, Collision 등 여러 기능
  • 블루프린트 클래스
  • 애니메이션 블루프린트
  • C++ 클래스
  • 게임 최적화
  • 연리얼 엔진 에디터의 각종 프레임워크와 애셋
  • 멀티플레이어 기능
  • UI
  • (게임 수학을 이용한) 물리 엔진
  • UMG

🌱 레퍼런스

  • 건파이어 리본(Gunfire Reborn)
    • 로그라이크 1인칭 슈팅 비디오 게임. 게임의 대략적인 흐름 기획에 참고하였습니다.
      Alt Text
  • 아이작의 번제(The Binding of Isaac)
    • 탑뷰 슈팅, RPG. 맵 기획에 참고하였습니다.
      Alt Text
  • 배틀 그라운드(PUBG)
    • 배틀로얄. UI와 부분 1인칭 전환 기능 기획에 참고하였습니다.
      Alt Text
  • 뱀파이어 서바이버즈(Vampire Survivors)
    • 탄막 슈팅, 핵 앤 슬래시. 게임 내 경험치 이벤트와 능력치 선택 기능, 아이템 효과 기획에 참고하였습니다.
      Alt Text

👻 개발 환경

  • 사양
    • Windows 10 Home x64
    • AMD Ryzen 5 5600X 6-Core Processor 3.70 GHz
    • RAM : 16.0GB
  • 엔진
    • Unreal Engine 5.1.0
    • Blueprint
    • C++ (Visual Studio 2022)
  • 버전 관리
  • 개발 기간
    • 2023.05.22 ~

👻 프로젝트 목표

  • 언리얼 엔진 에디터 숙련도 증가
  • C++ 스킬 향상
  • RPG의 전투 기능 구현을 통한 알고리즘 이해
  • 앞서 공부했던 이론 심화 및 내 것으로 만들기
  • 포트폴리오 완성

👻 글을 마치며

원래라면 2월에 시작했어야 했는데 중간에 그래픽스 스터디를 시작하면서 본의아니게 미뤄지게 됐다. 역시 알바와 학업 병행은 힘든 것.. 그래도 이제 언리얼 공부에 집중하게 될 수 있어서 더 좋은 것 같다! 느리지만 꾸준히, 차근차근 잘 진행해보자 😏

해당 프로젝트는 스마일게이트 UNSEEN 프로그램에 참가하려고 만들었던 기획서를 토대로 진행할 것이당. 허술한 부분이 많지만 하면서 뭐 어떻게든 되지 않을까라고 생각하는 중..!

Leave a comment