본문 바로가기
게임 프로그래밍/게임개발 중급

게임개발 중급(87) - Monster Killer(49)

by jyppro 2024. 7. 18.

Monster Killer

 

헌트모드(Hunt Mode)

이 모드를 구현하기 위한 핵심은 두 가지로 나눠서 살펴볼 수 있습니다. 첫번째는 모든 모드에서 사용가능한 기본적인 모드 설정에 따른 레벨의 변화를 구현하는 것과, 두번째로 몬스터가 스폰될 수 있도록 하는 몬스터 스포너(오브젝트 풀)을 구현하는 것입니다.

 

이번 글에서는 첫번째에 대해서만 이야기 하도록 하겠습니다.

 

모드 구현

일단 확장성이 높은 1~10 까지의 데이터를 가지고 레벨을 로드하기 위해 모드를 구현하기로 했습니다. 그래서 GameManager와 StageLoader를 사용하게 되었습니다.

게임매니저-데이터스테이지-로더

 

위와 같은 방식으로 스테이지에 데이터를 담는 클래스를 만들고 해당 데이터를 가지고, 스테이지를 로드할 수 있도록 하는 스테이지 로더를 사용했습니다. 데이터 정보는 에디터에서 편집을 통해 1~10 까지의 정보를 모두 입력했습니다.

 

몬스터 변경

그런데, 기존에 사용하던 몬스터는 킬러모드에서만 사용이 편리하도록 구현이 되어 있었기 때문에 새로운 몬스터 프리팹을 만들어 주었습니다. 기존에 것을 고치는 방향성도 생각해 보았지만, 몬스터가 사용되는 곳이 많지는 않기 때문에 새롭게 만들어 사용하는 것이 더 좋다고 판단하였습니다.

몬스터-정보

 

킬러모드의 기존 몬스터가 사용하던 프리팹과 다른 점은 Monster Controller가 Hunt Monster Controller로 바뀌면서, 컨트롤러에 붙어있던 일부 기능(타이머, 골드 등)을 제거하고, 몬스터의 능력치 데이터를 독립적으로 갖도록 만든 것입니다. 다른 기능은 기존 컨트롤러와 동일합니다.

 

스테이지 입장

이제 메인 씬 -> 헌트모드 씬 -> 헌트 스테이지 순서로 게임에 입장하도록 하기 위해 버튼을 구현하겠습니다.

 

버튼

 

1~ 10 스테이지에 대한 버튼이 위 스크립트와 같은 기능을 하도록 설정해주었습니다. 싱글톤으로 사용되는 스테이지 로더의 함수를 실행시켜 스테이지 데이터를 가져오고, 씬을 페이드 아웃하며 전환시켜 줍니다.

 

실행

이제 실행을 시켜보겠습니다. 메인씬에서 헌트모드 버튼을 클릭해 입장합니다.

헌트모드-입장

 

헌트모드에서 스테이지에 진입하기 위해 1번 스테이지 버튼을 클릭합니다.

헌트스테이지-입장

 

스테이지에 입장하게 되면, 기존 GameManager에 설정한 데이터에 따라 모든 환경이 세팅된 상태로 게임이 시작됩니다. 현재 입장한 스테이지는 1스테이지로 가장 기초적인 데이터로 설정을 해놓은 상태입니다.

스테이지-로드

 

이번에는 스테이지 별 데이터 설정이 제대로 된 것인지 확인하기 위해 스테이지 10을 입장해보겠습니다.

스테이지10

 

몬스터의 체력, 목표 처치 마리 수, 몬스터의 종류 등 제대로 데이터가 연결되어 변경된 것을 확인할 수 있습니다.

 

<NEXT>

단계에 따라 설정 데이터 값이 달라지는 스테이지를 구현하였으니, 다음에는 몬스터 스포너 구현에 대해서 살펴보도록 하겠습니다. 감사합니다.