본문 바로가기
유니티/개발

Monster Defense 게임 개발 - 1

by 노튜 2025. 2. 9.
728x90
반응형

 

게임 컨셉 (Game Concept)

새로운 앱이나 주기적인 업데이트를 하지 않아, 개발자 계정이 위태로운 상태였다. 그래서 무엇을 만들 것인지 고민할 시간 자체가 없었다. 가장 빨리 제작 가능한 게임 컨셉을 잡았다. 유튜브에서 자주 접하던 광고에서 게임 컨셉을 잡았다. 굳이 이름 등은 언급하지 않겠다. 몰려오는 좀비, 총알을 발사하는 캐릭터 등이 나오는 광고다. 오히려 플래피 버드 같은게 쉽지 않을까?라고 생각이 들 수 있다. 하지만 나에게는 이미 제작해 둔 몬스터, 캐릭터가 있고, 인벤토리 시스템, 불렛 시스템, 캐릭터 스탯 시스템, 레벨 선택 시스템 등을 배제하고 초기 버전을 만들면 가능할 것으로 판단되었다. 게임 컨셉은 디펜스 게임으로, 플레이 모드는 세로 모드 (Portrait)로 결정하였다. 추후에는 뱀서라이크류로 새로 제작도 할 수 있을 것으로 판단하였다.

 

 

초기 버전

초기 버전은 레벨(또는 스테이지)만 존재하며, 레벨 시스템,  플레이어 시스템, 몬스터 시스템, 스킬 시스템, UI 등을 포함한다. 플레이어 및 몬스터를 제작하고 레벨 매니저를 만들어 게임 시작 및 종료, 몬스터 소환 등을 관리하도록 만들었다. 최대한 서로 독립적으로 동작하도록 구현하였다. 

   

플레이어  

일단 플레이어 시스템을 제작하였다. 플레이어는 조이스틱을 사용하여 캐릭터를 움직이도록 하며, 자동으로 공격한다.

우선, 캔버스(Canvas)를 만들고 조이스틱을 구현하고, 플레이어 오브젝트(큐브)를 만들어 연결한다. 조이스틱을 조작해 플레이어 오브젝트가 원하는 방향으로 이동이 가능한지 확인하였다.

플레이어 캐릭터 제작

블렌더(Blender)에서 캐릭터를 만들고, 애니메이션을 제작해 유니티에서 설정 및 플레이어 오브젝트에 연결한다.

캐릭터는 총과 미사일 발사대를 소지한 모습이다. 애니메이션은 휴식(Idle), 움직임(Run), 공격(Attack), 스킬(Skill), 죽음(Die), 죽음 지속(Died)의 애니메이션을 가지도록 제작했다. 공격 모션은 총을 가지고 있는 모습, 스킬 모션은 미사일을 발사하는 모습으로 제작하였다. 

 

유니티 애니메이터 컨트롤러

블렌더에서 만든 캐릭터를 유니티로 가져와 추가적인 작업을 하였다. 유니티의 애니메이터 컨트롤러를 사용해, 캐릭터가 공격 및 이동을 하도록 만든다. 자동 공격 및 이동 모션이 캐릭터 조작 방식에 어울리도록 애니메이터 컨트롤러를 구성한다. 플레이어가 조이스틱을 움직이면, 이동 모션이 플레이되도록 하고, 플레이어가 조이스틱을 사용하거나 사용하지 않는 상태에서도 공격이 가능하도록 애니메이션 컨트롤러에서 레이어를 나누어 제작하였다.  즉, 공격 레이어, 이동 레이어를 나누어 제작했다. 다음으로는 플레이어 오브젝트의 하위 오브젝트로 연결하고, 플레이어 스크립트에 연결하였다.

 

몬스터 

몬스터도 기본적으로 캐릭터 제작 과정과 같다. 몬스터를 제작하기에 앞서 3D 게임 오브젝트 스피어(Sphere)를 사용해 몬스터에 필요한 요소들을 구현한다. 

 

공격 시스템

플레이어 캐릭터와 몬스터 오브젝트에 리지드 바디(Rigidbody) 와 콜라이더(Collider)를 연결한다. 탄환 오브젝트(큐브)를 만들어 탄환 스크립트를 연결해 적(몬스터)에 맞으면 데미지를 입히도록 하였다. 탄환 오브젝트 또한 충돌이 가능하도록 콜라이더를 추가하였다.

플레이어는 공격 버튼을 누르지 않도록 개념을 잡았으므로 자동으로 공격하는 코드를 작성한다. 발사 매니저 스크립트를 만들고, 애니매이션 컨트롤러에 연결하여, 플레이어가 공격 모션을 취하면 자동으로 탄환이 발사되도록 하였다. 발사 매니저는 오브젝트를 풀링 기법을 사용해, 탄환 오브젝트를 관리하도록 구성하였다.

 게임을 유니티에서 플레이하여, 플레이어의 조이스틱 조작에 맞춰 캐릭터가 움직이고, 지동으로 탄환이 발사하는지 확인하였다. 그리고 플레이어 캐릭터가 탄환을 발사하고 적이 맞으면 데미지를 입히는 게임 로직이 작동하는지 Debug 클래스를 사용하여 확인하였다.  

 

 

 

Monster Defense

https://play.google.com/store/apps/details?id=com.notyu.monsterdefense

 

Monster Defense - Google Play 앱

방어하고, 생존하고, 수집하세요

play.google.com

 

 

 

728x90
반응형