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

게임개발 중급(83) - Monster Killer(45)

by jyppro 2024. 7. 6.

Monster Killer

 

안녕하세요 오늘부터는 개발 내용을 주로 이야기하도록 하겠습니다. 이제 상단에 시작하는 인사말은 특이사항이 있는게 아니라면 스킵하도록 하겠습니다.

 

구조 개선

가장 첫번째로는, 너무 오랜만에 프로젝트를 다시 찾아와보니 구조가 상당히 엉망이었다는 것을 알아챌 수 있었습니다. 이 또한 제가 성장했다는 증거겠죠? 간략하게 말씀드리면 기존에 게임의 구조는 정말 러프하게 구현되어 있었고, 객체지향과는 거리가 먼 형태를 띄고 있었습니다. 그 중 특히 심한 것은 플레이어와 몬스터 간의 상호작용, 각종 업그레이드 수단 등이 대부분 UI에 기능이 결합되어 있는 상태였습니다. 한 가지 예시로 플레이어가 형태는 없더라도 하나의 객체로서 플레이어와 관련된 내용을 묶어야 하는데, 플레이어의 공격은 무기쪽에, 플레이어의 체력은 체력바 UI쪽에 구현되어 있습니다.

 

이렇한 부분에 구조 개선이 가장 우선적으로 필요하다고 느껴 차근차근 개선해 나가는 중입니다. 오늘 개선한 내용은 쓸데없이 float로 사용되고 있던 각종 정수 값을 int형으로 바꾸고, 기존에 UI에 부착되어 있던 골드 소스코드를 컨트롤러로 분리시켜 관리하도록 했습니다. 기존에는 골드를 표시하는 UI에 부착되어 있었고, 기능 또한 제한적이었기 때문에 여러 군데에서 획득 골드를 표시해주는 것에 문제가 조금 있었는데 이런 부분을 해결할 수 있었습니다. 이 부분은 아직 완벽히 고치지는 못했기 때문에 나중에 완성되면 다시 이야기 하도록 하겠습니다.

 

모드 구성

헌트 모드
Hunt Mode 입장 맵

 

이번에는 모드 구성입니다. 이전에 나뉘어 구성했던 4가지의 모드가 있었는데, 어떤 형태로 각 모드를 플레이 할지 틀을 잡았습니다. 그리고 입장 UI를 구성했습니다. 현재 위 그림은 Hunt Mode인데 1~10 단계로 나누어서 입장할 수 있는 형태로, 나머지 보스와 가디언도 같은 구성으로 만들었습니다. 현재는 전부 개방되어 있지만 추후 1단계부터 순서대로 입장할 수 있도록 해금 방식을 채용할 생각입니다.

 

업그레이드

업그레이드

 

이것은 메인메뉴에서 진행할 수 있는 업그레이드 페이지 입니다. 모든 능력치는 영구적으로 저장되는 만큼, 플레이어가 메인 메뉴에서도 그 수치를 확인할 수 있어야 한다고 생각해서 일단 추가했습니다. 아직 너무 이상하지만 UI는 천천히 개선해 나갈 생각입니다. 우선은 해당 데이터를 연동하는 데 집중할 생각입니다. 현재 체력 데이터는 연동이 된 상태입니다.

 

데이터 정돈

데이터

 

이번에는 사용할 데이터들을 정돈했습니다. 추후에는 데이터베이스를 사용하기 때문에 다시 변경될 예정이지만, PlayerPrefs를 사용하여 가볍게 데이터를 다루는 방식을 구현하기 위해 정리를 진행하였습니다. 기존에 게임을 구성하던 데이터들하고 Getter와 Setter로 설정해주는 과정을 거쳤습니다.

 

<NEXT>

다음에는 구조 개선 및 데이터 베이스 연동과 관련된 내용으로 찾아오게 될 것 같습니다. 생각보다 작업이 금방 끝날 것 같지는 않지만, 최대한 빠르게 찾아오도록 하겠습니다. 감사합니다.