본문 바로가기

개발 프로젝트/Unity - WeaponGameProject

WeaponGameProject - 개발 계획서

3인칭 액션게임
개발 계획서

 

프로젝트 명 : Weapon Game Project

 

     
OS        Unity 3D
Tools      Visual Studio 2019
Language   C#
 

일정표

전체  일정 2023.06.26 ~ 2023.07.24
개발 Client Character Monster Weapon
1 주차 메인 화면 제작 , 게임 종료 구현 플레이어 이동 구현 스테이터스 파일 제작 -
2 주차 - 무기 던지기 , Bash 구현 행동패턴 구현 , 인스턴스화 무기 클래스 구현
3 주차 - 공격 구현 , 플레이어 체력 구현 몬스터, 플레이어 간 상호작용 구현  
4 주차 게임 클리어 구현 , 게임 최적화 (스테이터스 파일을 이용하여 안전성이 높고 빠르게 로딩하는 방법 연구) , 게임 중지 구현 , 버그 수정 카메라 움직임 구현 , 리소스 탐색 리소스 탐색 및 몬스터 난이도 조절 리소스 탐색

 

자세한 구현 사항

 

1. 클라이언트 :

메인 화면에서 게임 시작, 게임 종료 구현. 씬 컴포넌트의 전환에 대해 연구합니다.

 

2. 캐릭터 (Character) : 이동 , 무기 던지기 , Bash, 공격을 구현 :

플레이어 이동은 펄 어비스 사의 게임 검은 사막의 움직임을 참고하여 무게감이 가벼운 움직임을 구현합니다.

무기 던지기 운동은 Unity의 기본 물리엔진인 RigidBody 컴포넌트를 활용하지 않고 좌표 이동 컴포넌트인 Transform 컴포넌트를 활용합니다. 물리엔진에 의존하지 않고 수학 및 물리를 활용하여 포물선 운동을 구현합니다.

Bash 기술은 가속도 운동을 활용하는 기술이 될 것입니다. Bash 기술은 제가 창작한 기술로, 게임의 시간을 느리게하고 주변에 배치된 무기로 빠르게 돌진하는 기술입니다. 이 기술을 몬스터가 가지고 있는 무기에도 돌진이 가능하게끔 구현할 것입니다. 이 때 몬스터가 가지고 있는 무기를 어떻게 인식 시킬 것인가에 집중하고, 월드에 배치되어있는 무기와 겹쳐 부작용이 일어나지 않도록 설계하는 것에 집중할 것입니다.

플레이어 카메라는 기본적으로 마우스로 움직입니다. 카메라는 플레이어와 일정 거리를 유지한 체로 공전합니다.

 

3. 무기 오브젝트

무기 오브젝트는 특수한 구조로 설계할 것입니다.

먼저 모든 무기는 무기의 기능을 수행하는 무기 클래스를 포함합니다. 이 클래스에는 무기의 정보가 담겨있지 않고, 오로지 월드에서 상호작용을 하는 함수만 포함되어 있습니다.

무기 오브젝트의 식별번호 , 공격력 , 내구도 등의 정보는 무기 오브젝트를 제작할 때 결정할 수 있게끔 Item 클래스로 선언합니다. Item 클래스는 프로젝트 뷰에서 스테이터스 형태로 생성 가능합니다.

 즉 무기 오브젝트는 무기 클래스를 가진 Item 클래스입니다. Item 클래스에 담긴 정보는 외부에서 개입을 할 수 없게 만들어, 내부의 정보를 쉽게 수정하지 못하게 만듭니다. 이러한 설계는 무기 오브젝트의 수월한 제작을 돕지만, 캡슐화와 은닉성을 높이는 모델이 될 것입니다.

 

4. 몬스터

 몬스터 오브젝트는 코루틴으로 설계하여 상황마다 다른 행동 패턴을 취하게 합니다. 몬스터의 행동 패턴은 크게 3가지로 분류합니다. 경계 상태 , 추적 상태 , 전투 상태 입니다.

이러한 상태 구현과 상태들간의 변화는 유니티의 코루틴을 활용하여 어렵지 않게 구현이 가능합니다. 이번 프로젝트의 목적은 플레이어의 움직임에 있다고 생각하기 때문에 몬스터의 자세한 구현은 하지 않기로 결정했습니다. 만약 시간이 남는다면, 도전해볼듯 합니다.

 

일정  요약

 1주차 : 게임의 기본 설계 (인터페이스, 월드 , 스테이터스 파일 생성 및 적용 등)

2주차 : 플레이어 기술 구현 , 플레이어와 무기 오브젝트간 상호작용 구현

3주차 : 몬스터 및 플레이어 상호작용 구현

4주차 : 리소스 탐색 , 게임 클리어 및 일시정지 기능 구현 , 카메라 구현