mobile background

래토피아 개발일지 #15 - 전투 시스템#2

Cassel
2023-06-01
조회수 1757


안녕하세요. <래토피아>를 개발 중인 카셀입니다.

지난달 전투 시스템의 문제점에 대해서만 신나게 적어놓고,

그래서 지금 어떤 시스템이 들어가 있는지에 대한 소개는 없어 이렇게 2화를 적게 되었습니다!

전투 시스템을 소개하기 앞서 PlayX4 전시 후기와 텀블벅 진행 사항도 짧게 소개 드리겠습니다.




PlayX4 전시 후기


이번 PlayX4에서는 경기게임오디션을 통해 노트북 3대와 서서 시연할 수 있는 공간을 추가로 지원받았는데요.

매일 앉아서 개발만 하다가 가끔 이렇게 하루 종일 서있으니 체력적으로 무척이나 힘들더군요.

그래도 방문하셔서 재미있게 플레이해 주시는 분들 덕분에 웃으며 버틸 수 있었습니다.

또한 전시마다 매번 찾아와 주시는 반가운 분들도 뵈어 서로 생존 신고도 하고,

여러 참관객 분들과 래토피아 얘기 외에도 근황, 진로, 인생 등에 대한 얘기들도 나누니 좋았습니다.


장병분들이 특히 게임을 잘하셨던 게 기억에 남습니다…! 역시 강한 체력이 강한 지도자를 만드는가!


금요일에는 B2B 관에서 경기게임오디션 최종 발표가 있어서 자리를 비웠었는데요.

리허설 때 다리가 마하 2의 속도로 떨릴 만큼 엄청 긴장했던 행사였지만,

응원해 주신 여러분들 덕분에 2등이라는 값진 성과도 낼 수 있었습니다!


그리고 이번 행사 동안에 텀블벅도 적극적으로 홍보해 보았었는데요.

행사 첫날에는 큰 폭으로 증가했지만 이후로는 크게 증가하지 않아 기대와는 달랐습니다.

<래트로폴리스> 텀블벅 당시 모 스트리머님이 유튜브로 홍보해 주신 효과가 얼마나 컸는지 다시 한번 깨달았지요.


래트로폴리스와 래토피아의 텀블벅 모금액 추이


이 외에도 개발일지를 통해서 모금 증대 효과가 있는지 알아보고 싶었는데요.

다른 인디 개발자분들에게 개발일지 꾸준히 쓰면 홍보에도 유의미하다고 말하고 다녔었는데,

정말 개발일지는 뛰어난 홍보 효과를 낼 수 있을까요?

효과를 만들어보기 → https://tumblbug.com/ratopia


그럼 5월의 행보도 소개 드렸으니, 이제 <래토피아>의 다양한 전투 시스템에 대해 소개 드리도록 하겠습니다.




공주의 직접 전투


<래토피아>에서는 플레이어 캐릭터인 공주가 직접 전투를 수행할 수 있습니다.

평소에는 시민을 통솔하는 내정 상태로 돌아다니다가,

전투가 필요한 순간이 오면 무기를 장착한 전투 상태로 돌입해 조준점 내의 적을 공격할 수 있지요.


초기에는 비겁하게 갑자기 무기를 꺼내 공격했었다.


이는 플레이어가 게임 시작 후 가장 먼저 접하게 되는 기본적인 전투 시스템이지만,

<래토피아>는 시뮬레이션 장르의 특징을 지니고 있는 게임이었기에,

공주로 직접 전투를 하기보다는 병사들을 육성하고 지휘하는 플레이를 장려하고 싶었습니다.

공주의 전투는 도시에 아직 훈련시설과 방어시설이 없을 때 사용하는 보조 수단 정도로만 활용하였으면 했죠.


그러나 밋밋하고 심심하더라도 공주의 직접 전투를 좋아하는 유저들도 꽤 있었고,

좀 더 개선한다면 공주의 직접 전투도 더욱 재미있게 만들 수 있을 것 같았습니다.

그러나 2D 사이드뷰에, 타일 방식의 맵 구조라는 제한된 환경 속에서,

액션성과 전투의 재미를 높일 수 있는 간단한 방식은 쉽게 찾을 수 없었습니다.



가장 먼저 나온 아이디어는 구르기와 대쉬 같은 공주의 회피기였지만,

회피기를 추가하기 위해서는 고려해야 할 요소가 너무 많았는데요.

먼저 회피기가 있다는 것은 회피해야 할 적의 강공격이 있다는 얘긴데,

그러나 추후 병사들을 지휘하는 플레이가 제대로 들어가려면,

병사들도 강공격을 회피할 수 있게 하거나, 강공격을 버틸 수 있을 정도의 강력한 맷집를 가져야만 했죠.

이는 수많은 AI와 밸런스 조절이 동반돼야 한다는 것을 의미했습니다.


또한 타일맵 이동 방식 속에서는 구를 수 있는 위치가 앞 타일/뒷 타일로 제한될 뿐더러,

절벽이나 계단 형태의 타일에서는 제자리 회피를 하는 등 부자연스러운 장면들이 연출되기 쉬울 것 같았죠.

이 외에도 게임 패드와 키보드의 키 할당 문제와, 많은 유저들이 회피보다는 이동기로 쓰지는 않을지 등

고민해야 하는 요소들이 많아 적용하기 어려웠습니다.



다음 아이디어는 기존 공격 방식을 다양화하자는 의견이었습니다.

공격 버튼을 누르고 있을 시 연타 공격이 나가며,

마지막 공격에는 추가 피해를 입힐 수 있는 강공격이 나가게 하자는 아이디어였죠.

기존 공격은 다소 밋밋했기에 변화를 주면 좋을 것 같았고,

심심했던 공격 모션과 효과음을 빠르게 개선할 수 있었습니다.


검술 수련 중이었는데 사고가 났어요.


이는 공격의 강도와 위험도를 플레이어가 선택할 수 있다는 이점이 있었으며,

구현도 간단히 할 수 있는 시스템이기에, 만족도가 매우 높았습니다.

앞으로 칼뿐만 아니라 활이나 창 등 다양한 무기들도 추가한다면,

다양한 직접 전투 경험을 제공할 수 있을 것 같습니다.




훈련된 병사를 통한 전투


<래토피아>는 플레이어 캐릭터를 중심으로 화면이 고정되어 있으며,

게임이 진행될수록 관리해야 하는 영역이 커지는 흐름을 가지고 있습니다.

따라서 화면에 보이지 않는 곳에서도 전투가 발생할 수 있으며,

플레이어가 이를 신속히 대처할 수 없는 순간도 찾아오게 되지요.

이를 해결할 수 있는 방법이 바로 시민의 직업 병력화를 통한 자동 방어입니다.


다른 생산 및 서비스 건조물에 배치하면 직업을 갖는 시민처럼,

병사 또한 훈련소와 병영 등의 건조물에 시민을 배치하면 직업을 부여받게 하였는데요.

직업을 부여하면서 병사들은 어떻게 돈을 벌어 소비활동을 하게 만들지 정할 필요가 있었죠.


그러나 병사들의 행동에 대한 명확한 보수를 측정하기는 꽤나 어려웠고,

그래서 매일 국가에서 급여를 받는 형태로 보수를 받게 하였죠.

튼튼한 국방을 위해서 많은 병사를 유지할 경우에는 큰 유지비가 들게 하여,

도시 재정에 영향을 미치게 하는 게 설계의 핵심이었습니다.



그러나 이렇게 유지비가 나가게 설계를 했더니 매우 효율적인 플레이가 가능하였는데요.

전투 시에만 병사들을 배치하여 유지비를 최소화하는 플레이였죠.

목숨을 바쳐 전투를 수행한 명예로운 병사들은 첫 급여를 받기도 전에 전사하거나 해고되었습니다.


그대들의 희생은 모두 도시를… 아니 짐를 위해서라네...!


이를 해결하기 위한 방법으로, 두 가지 절차를 병사 훈련 과정에 추가하기로 결정하였는데요.

첫 번째 절차는 병사를 훈련할 때 장비에 들어갈만한 자원을 병영에 재료로 집어넣게 만드는 것이고,

두 번째 절차는 재료 자원을 넣은 이후 일정 시간 훈련을 수행해야 병사가 되게 만드는 것이었습니다.


이러한 병사 훈련 절차는 시민이 장비를 병영에서 만드는 것 같은 장면이 연출되기는 했으나,

필요에 따라 시민을 배치 및 배치 해제를 반복하는 행위를 막는 데는 탁월한 효과가 있었죠.

또한 투입된 재료 자원에 따라 병종이 달라지게 설계한다면,

병종마다 새로운 병영을 추가할 필요 없이 다양한 병종들을 추가하기가 수월했습니다.


기존 생산 시스템과 거의 동일하잖아?! 구현하기 쉽겠는걸?


그러나 이 방식을 장기간 사용하며 즐기던 도중, 종종 이해할 수 없는 상황이 포착되었는데요.

바로 한참 전에 병영에 배치한 시민이 적들이 도시에 쳐들어오는 순간까지도 훈련이 완료되지 않는 현상이었습니다!

원인을 추적해 본 결과 훈련하라고 병영에 배치한 시민이 재료 자원들을 깔짝 운반하고, 

화장실을 가거나, 공연장을 가는 등의 여유로운 휴식을 취하였으며,

심지어 잠까지 자러 가는 경우도 있어, 병사 육성에 걸리는 시간이 대폭 증가하였던 것이죠.

또한 아직 병사가 되지 않은 시민이 소비활동을 하다가 소지금이 바닥나기라도 하면,

재료를 구매하지 못해 병사가 되지 못하는 현상도 발생할 수 있었죠.


이에 대해서 여러 방법을 생각해 봐야 했는데요.

몇 가지 기획의도를 유지한 채로 수정사항을 적용하고 싶었기 때문입니다.

먼저, 높은 등급의 병종일수록 더 고급 자원을 필요로 해 게임 내 사용 시기가 늦춰지기를 원했고,

병종별로 각기 다른 훈련시간을 갖되, 이전과 달리 훈련 완료 시간을 예상할 수 있는 해결책이 필요했죠.



이에 대한 해결책으로 마련한 것은 여러 종류의 훈련소를 추가하고,

고급 훈련소일수록 건설 자원에 고급 자원을 재료로 포함시키는 방법이었습니다.

이를 통해 병사가 되어야 할 시민이 자원을 운반하느라 불필요하게 소비되는 시간은 줄이고,

고급 병종을 위해 필요한 자원은 유지시킬 수 있었죠.

하지만 이를 위해서는 여러 단계의 훈련소 건조물이 필요했으며, 병종들을 묶어줘야 했습니다.

기존처럼 한 시설 안에 더 세분화된 병종 단계 구분은 불가능 해졌지만,

개척한 군계의 자원을 활용한 특수 병사 양성소도 자연스럽게 추가될 수 있었습니다.


다양한 훈련소에 따른 병종들 




방어 건조물을 통한 전투


<래토피아>는 시민의 수가 제한되어 있고, 한정된 시민들로 도시의 모든 생산과 서비스 공급을 만들어나가야 하는 게임입니다.

때문에 병사로 활용할 수 있는 시민의 수 역시 제한되기 마련인데요.

따라서 시간이 지날수록 더 많이, 더 강력하게 공격해오는 적들을 수월하게 막아내기 위해서는,

시민을 사용하지 않는 방어 건조물들도 설계하고 활용해야 했지요.

이를 위한 방어 건조물들은 크게 아래와 같은 기능들로 분류할 수 있었습니다.



방어형 건조물:

목책/성문 등의 적들의 공격을 받아내는 건조물

함정형 건조물:

가시함정/지진추 등의 적들의 공격을 받지 않으며, 지나가는 적에게 피해를 입히는 건조물


사격형 건조물:

노포/투석기 등의 적들에게 투사체를 발사하여 피해를 입히는 건조물

지원형 건조물:

뿔피리/탄약고 등의 전투를 수행하는 병사들을 강화시키거나, 다른 군사 건조물들을 보조하는 건조물



방어형 건조물과 사격형 건조물의 경우는 이전 개발일지에서도 다뤘던 것처럼,

데스볼과 사격 AI 등에서 아직 해결해야 할 과제가 남아있어 적극적인 추가는 어려웠습니다.

반면에 함정형 건조물들은 연산량을 많이 차지하지도 않고,

문제 될 것도 없을 것 같아 빠르게 기획하고 추가해 볼 수 있었는데요.

먼저 깜짝상자나 지진추 등 전작에 등장했던 시설들을 넣어보았습니다.


래트로폴리스 건물 카드들의 래토피아화. 이 작업... 맛있다!



함정 건조물들의 전투 기능에 대한 테스트는 매우 만족스러웠으나,

실제 도시를 지어가며 테스트를 해보니 결국 문제가 드러나더군요.

함정 건조물은 뛰어난 방어 효과에 비해 유지비 같은 개념이 없어,

앞서 만들어둔 병사들의 훈련을 통한 방어의 필요성이 퇴색되는 상황이 조성되었습니다.


흔들리지 않는 도시 안위


물론 병사들은 고정된 함정 건조물에 비해 유동적으로 움직이며 넓은 범위를 대처할 수 있지만,

그럼에도 한번 건설해두면 영구적인 효과를 제공하는 함정 건조물들의 가치와는 상대가 안 됐습니다.

그래서 이를 해결하기 위한 간단한 방법을 추가해 보았는데요.

함정 건조물들은 매 공격 시 일정량의 체력을 소모하고,

시민들이 정기적으로 수리하지 않으면, 작동하지 않게 만들어 보는 것이었습니다.

수리를 한 시민들에게 지급되는 보수가 유지 비용으로 작용하게끔 한 것이죠.


이 같은 시스템은 플레이어로 하여금 방어시설의 체력을 관리해 주게 만들었으나,

매번 방어 건조물들에게 수리 명령을 내려야 하는 번거로움을 또 만들어 냈는데요.

좀 더 테스트를 해 보면서, 이러한 번거로움을 해소하기 위한 기능들을 고민해 봐야 할 것 같습니다.



다양한 병사와 방어 건조물들이 추가됨에 따라, 도시를 방어하는 방법도 더욱 다채로워졌는데요.

수많은 요소가 결합되어 만들어지고 있는 <래토피아>의 전투 시스템,

많이 고심하며 만들어가고 있는 만큼, 많은 분들이 즐겁게 플레이하셨으면 좋겠네요!


6월 19일부터 스팀에서 넥스트 페스타가 진행되는데요.

<래토피아>의 최신 요소들을 즐겨보실 수 있게 데모 버전의 업데이트를 준비 중이오니,

많은 관심과 피드백 부탁드립니다!


그럼 이번에도 행복하고 즐거운 한 달 보내시길 바라며,

다음 개발일지로 찾아뵙도록 하겠습니다!


스팀 스토어: https://store.steampowered.com/app/2244130/Ratopia/

페이스북: https://www.facebook.com/CasselGames/

트위터: https://twitter.com/CasselGames

15 5