게임 개발/Tower of Rings

6/13 - 다시 개발 시작하기

CastleMouse 2022. 6. 13. 15:43

Color Funnel 완성 후...

Color Funnel이라는 첫 게임을 만들어 플레이 스토어에 올린 후 약 2달 동안 다른 게임을 제작했다. 이름은 Ring Summoners로 디펜스에 로그라이크를 합친 장르였다. 무작위로 얻은 링을 그리드에 배치하여 몬스터 웨이브를 막아내는 것인데 배치시 가로, 세로, 주변에 배치된 특정 링끼리 시너지가 발생하도록 하는것이 특징이었다.

그동안 기록한 일지이다.

4월 초 쯤부터 기획해서 만들고 미스터리 스테이지와 상점을 제외한 대부분이 (스프라이트는 임시 디자인을 사용해서 구렸지만) 기능적으로 구현 완성된 상태였다. 그러나...

Ring Summoners의 전투 장면

문제는 내가 해봐도 너무 재미가 없었다. 전투는 박진감이 없었고, 디펜스와 로그라이크 특유의 전략/템 조합 등이 전혀 강조되지 않는 느낌이었다. 그리고 밸런스 패치만 생각해도 눈앞이 깜깜했고, 고쳐보려고 이것저것 계속 추가하니까 결국 스파게티 코드가 되어버렸다. 

 

가장 큰 문제점은 사정거리 개념이 없었다는 것, 그리고 같은 종류 링의 배치 개수 제한이 없었다는 것 같다.

1) 사정거리가 없었으니 일단 링이 그리드에 배치되면 몬스터 웨이브 경로의 처음부터 끝까지 모든 지점을 타격할 수 있었기 때문에, 링을 하나씩 추가 배치할 때마다 방어 효율이 급격하게 상승하는 것이 문제였다.

2) 위를 이어받아, 같은 종류 링 배치 개수 제한이 없으니 로그라이크임에도 아무 링이나 골라도 게임 진행이 원활했다. 아무거나 하나만 풀강하면 뭘 써도 솔직히 게임 클리어가 너무너무너무너무 쉬웠다.

3) 그래서 이를 해결하려고 링들의 스펙을 최대한 낮춰보면, 링끼리 생성하는 시너지가 의미가 없어졌다. 링을 배치할 때도 전혀 신경 안쓰고 배치하게 되는 수준이었다. 즉, 게임이 무색무취해졌다.

5) 마지막으로 사정거리 개념이 없었으므로 화면상에 있는 모든 몬스터들은 링의 잠재적인 공격 타겟이었다. 즉, 각 링들이 타겟을 찾는데 너무 많은 연산이 필요했다. 랜덤한 몬스터를 타겟으로 삼는 링들은 괜찮았지만, 앞에서부터 or HP에 따라 or 가장 적이 몰려있는 위치를 n개까지 타겟으로 삼는 링들은 일일이 몬스터들을 거리순&HP순 등으로 정렬하여 찾아냈다. 공격할 때마다 이 작업을 해야 했으니 얼마나 비효율적인지... 이를 고쳐보려고 BattleManager(전투 시스템을 담당)에서 모든 링들에게 타입에 따라 한번에 타겟을 정해주도록 수정해보았지만 효율면에서 큰 차이점이 없었다.

 

그래서 두 달... 열심히 만든 것이 아깝지만 이제 Ring Summoners는 놔주고 이 게임의 단점들을 보완한 새로운 게임을 만들려고 한다. 이름은 Tower of Rings! 이 게임의 컨셉은 타락한 인간들이 점령한 악에 물든 탑을 링 소환사(플레이어)가 축복 받은 링들의 힘으로 정화하는 것이다. 소환사가 1층부터 다양한 링과 유물을 모아가며 마지막 7층에 도달해서 해당 층의 보스 몬스터인 타락한 왕을 죽이면 게임 클리어이다.

 

위에 내가 나열한 단점들을 보완하면 기존에 내가 작성한 링/몬스터/유물의 DB가 좀 달라질 것이다. 새로운 것들이 추가되고, 일부는 사라질 것이다. 그래도 뭐, Ring Summoners의 코드가 어느정도 재활용 될 것 같다. 큰 시스템은 달라지지 않으니까. 

 

내일은 개발 첫째날이다. 몬스터의 이동과 엔드라인 터치로 인한 게임오버를 구현할 것이다. 사정거리를 넣었을 때 유저가 이를 신경쓰도록 하기 위해서 이제 몬스터는 기존의 단순한 'ㄷ'자 경로를 벗어나 좀더 복잡한 'ㄹ', 'W', 'T', 'Z', 'X' 등 랜덤하게 등장하는 경로들을 따라 이동하게 할 계획이다. 그래서 이동 방식도 좀 달라져야 할 것같다. 검색해보니 Bezier Path Creator라는 에셋이 있어 오브젝트를 해당 Path를 따라 이동시키는 것이 있다고 한다. 이걸 활용해서 다양한 스테이지를 만들어보아야겠다.

https://assetstore.unity.com/packages/tools/utilities/b-zier-path-creator-136082

 

Bézier Path Creator | 유틸리티 도구 | Unity Asset Store

Use the Bézier Path Creator from Sebastian Lague on your next project. Find this utility tool & more on the Unity Asset Store.

assetstore.unity.com