래토피아 개발일지 #2 - 그래픽 컨셉과 기술 검토

Cassel
2022-05-01
조회수 559


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

이번 개발일지에서는 <래토피아>의 그래픽이 만들어진 과정 중 일부분에 대해 적어보도록 하겠습니다.




그래픽 컨셉 설정

이번 게임의 경우에는 대략적인 그래픽 컨셉이 잡혀있는 상태로 개발이 시작되었습니다.

<산소미포함>에 <래트로폴리스>의 쥐가 등장한다는 명확한 이미지가 머릿속에 있었지요.

팀 내에서 이번 게임에서는 아름다운 미소녀를 등장시켜 유저들의 환심을 사야된다는 의견이 있었지만,

쥐를 보면 떠오르는 게임 개발사로 기억되고자 하였기에,

대신 아름다운 쥐소녀를 게임에 집어넣는 것으로 타협을 보았었지요.


아무래도 대략적인 그래픽 컨셉이 잡혀있다 보니, 바로 쥐 캐릭터 시안 작업을 시작할 수 있었는데요.

앞으로 오래오래 함께할 쥐이기에 쥐들의 실루엣을 <래트로폴리스> 때보다 더 크고 디테일하게 작업하였습니다.


미스터 래토피아에 참가한 여러 쥐 친구들!


그렇게 제작된 여러 쥐들의 실루엣들 중 Top 3를 선정하였고, 채색 작업까지 진행해 보았는데요.

신중한 검토 끝에 최종적으로는 화살표가 가리키는 쥐를 사용하기로 결정하였고,

이후로는 해당 쥐를 기반으로 좀 더 다양한 쥐와 표정들을 그려 보았지요.


아름다운 쥐소녀와 <래트로폴리스>에 등장했던 쥐들, 귀엽지 않나요?




캐릭터 디자인이 정해진 후에는 쥐들이 돌아다닐 타일맵 컨셉 이미지도 작업을 시작하였습니다.

저에게는 <산소미포함>의 타일맵이 가장 발전된 형태의 타일맵으로 느껴졌기에, 

비슷한 모습의 타일맵을 저희 게임에도 적용하려 했습니다.

자연스러운 타일 경계면 처리와 타일에서 빛이 나는 처리 등이 매우 매력적으로 느껴졌기 때문이지요.



여러 타일맵 게임들과는 색다른 느낌을 주는 산소미포함의 타일맵


대부분의 타일 게임들은 네모난 타일의 각 변에 이미지를 붙여서 자연스러운 경계면을 연출하지만,

<산소미포함>은 하나의 큰 거대한 타일 이미지(텍스쳐)안 에서 타일의 경계면(테두리)을 덧그리고,

경계면 외부는 깍아나가는 특이한 방식으로 구현된 것처럼 보였습니다.

왠지 최적화가 잘 될 것 같은 방식 같았고, 기존 타일맵에 비해 딱딱함이 덜하고 자연스러움이 돋보였지요.

그래서 저희도 동일한 방식을 사용한다면 어떤 그림이 그려질까 그려보았습니다.


<산소미포함> 타일맵 스타일의 컨셉 이미지 



제작된 맵 컨셉 이미지는 아주 만족스러웠지만 게임에 적용하는 것은 예상외의 문제를 가져왔습니다.

구현 방법에 대한 자료를 찾지 못해, 직접 설계해가며 최대한 비슷한 결과물이 나오도록 구현을 하였으나,

어떤 연유에서인지 게임에 타일만 출력하는 데에도 30초 이상의 로딩 시간과 시스템 부하가 일어났지요.




최적화에 대한 고민

타일 시스템에 난항을 겪으면서, 기대하는 게임이 과연 제대로 동작할 수 있을지에 대한 걱정이 들기 시작했습니다.

방대한 맵에 다수의 쥐들이 끊김 없이 움직이는 것이 가능해야 했기에,

최적화에 대해 개발 초기부터 고민하고 사전 작업을 해나갈 필요가 있었습니다.


그러기 위해선 우선 현재의 타일 시스템의 부하 문제부터 개선해야 했습니다.

기획할 때에는 약 250,000개의 타일이 존재하는 맵에서 플레이가 이루어지는 것을 상상했으나,

현재 상태로서는 2,500개의 타일을 불러오는 것도 몹시 버거웠습니다.


앞으로도 게임이 개발되고 발전할수록, 다양한 연산들이 추가되어 시스템 부하가 더 커질 텐데,

현재의 타일 시스템을 계속 유지할 수는 없었습니다.

여러 가지 최적화 기법들을 사용해 보며 부하를 줄여보려고 노력했으나 효과는 미미하였고,

결국에는 기존 타일 시스템을 포기하고, 타일 각 변에 경계면 이미지를 붙이는 방식으로 변경을 하게 되었습니다.



타일의 각 변에 추가 이미지를 붙이는 방식의 타일 이미지와 적용 예시


이 방법은 각 타일마다 경계면 이미지를 만들어 줘야 하는 불편함과,

타일 크기 안에서 타일의 특징을 표현해야 된다는 그래픽적 한계가 있었지만,

약 10,000개의 타일을 3초 내로 불러올 수 있는 시스템 비용적 장점이 있었습니다.

<산소미포함>의 타일 시스템이 더 최적화된 형태일 것 같은데,

기술력이 부족해 이를 제대로 이용하지 못한 부분이 상당히 아쉬웠지요.




타일을 최적화하면서 쥐 캐릭터에 대한 최적화도 함께 논의 선상에 올랐습니다.

<래트로폴리스> 개발 당시에 ‘스파인’이라는 게임용 애니메이션 소프트웨어를 처음 사용해 보면서,

스파인 애니메이션의 본(뼈, Bone) 수가 시스템에 큰 부하를 준다는 것을 체감하였는데요.


최적화를 위해 꼬리가 제거된 쥐들 ㅠ


그래서 이번에는 스파인으로 인한 시스템 부하가 최소화되도록 캐릭터 제작 규칙을 정하였습니다.

모든 쥐 캐릭터가 최소한의 본만 사용하고, 동일한 애니메이션을 가지게 하며,

모습은 게임 내에서 스킨을 교체하는 방식으로 표현하기로 말이지요.


이 방식은 최적화는 확실하였지만 표현에는 한계가 있었습니다.

정해져 있는 틀 안에서만 표현을 해야 했기 때문에  다양한 실루엣을 토한 캐릭터의 특징 표현이 어려웠고,

스킨 이미지를 추가할 때 기존 작업된 애니메이션에 대한 제한 사항을 지켜야 하는 단점이 있었지요.


최적화를 위한 자잘한 규칙을 정하는 데에도 많은 시간과 시행착오를 겪기도 하였습니다 


개발 초기부터 컨셉 그래픽이 최적화 작업을 거쳐가며 열화되어 아쉬운 부분이 조금 있지만,

게임이 원활하게 동작할 수 있다는 점 자체를 천만다행으로 생각하게 되었습니다.

시뮬레이션 게임인 만큼 빠르고 안정적이게 동작하는 것이 우선이기 때문에,

그래픽에서 아쉬운 부분은 추후 퀄리티업 작업을 진행하면서 보완해 나아갈 계획입니다.




자기 개발 시간

최적화 이슈로 타일 시스템을 다시 설계해야 하는 상황이 발생하자,

아트 팀의 작업 속도를 조절할 필요가 생겼습니다.

기존에 만들어둔 그래픽 리소스와 만들 예정인 리소스를 사용 못 하게 될 가능성이 농후했기 때문이었지요.


그래서 시스템 설계가 완료될 때까지 매일 할당된 작업시간 중 2시간은 자기 개발을 하도록 변경해 보았습니다.

계속해서 팀 개개인의 역량을 높여가야 좋은 작품을 개발할 수 있다는 점을 모두가 알고 있었기에,

여러 개발 서적들을 주문하여 학습해 나아가면서 전문성을 높여갔지요.


매주 금요일에는 한 주 동안 각자가 학습한 내용들을 정리하여 발표하는 자리를 가짐으로써,

새로 학습한 내용들을 게임에 어떻게 응용하면 좋을지를 토론했습니다.


성격별 캐릭터 디자인 기법에 대한 발표 자료



공통으로 주어진 자기 개발 시간은 개인의 역량 개발 이외에도 뜻깊은 효과를 가진 시간이었습니다.

각자가 전문성을 높여가는 모습을 지켜보며, 서로를 더 신뢰하고 의지할 수 있게 되었지요.

또한 이렇게 팀이 계속 성장해 나아간다면, 어떤 난관이라도 극복할 수 있겠다는 자신감을 얻기도 하였습니다.


자기 개발 시간은 약 1달 동안 지속되었는데요.

최적화 시스템에 대한 기술 검토가 끝이나자 아쉽지만 다시 개발에 전념하기로 하였습니다. 

다시 엄청나게 바빠진 개발!!

다음 화에서는 시민의 AI와 시민들이 이용하는 건조물들에 대해서 적어보도록 하겠습니다.

긴 글 읽어주셔서 감사합니다!


아, 그리고 저희가 팀에 추가로 합류할 Unity 프로그래머 분을 찾고 있습니다.

관심 있으신 분은 아래 내용을 확인 후 연락 주세요!

https://casselgames.notion.site/3bfe510aa2434942ba521c48ba7829f9

12 0