본문내용 바로가기 주메뉴 바로가기
닫기

유니티 스퀘어

산나비: 조선 사이버펑크 디스토피아의 세계에서 펼쳐지는 복수 여정
제작사 | 원더포션
2024.03.15 조회수 1,096

MWU 코리아 어워드 2021에서 베스트 학생 부문을 수상한 프로젝트인 산나비는 '조선 사이버펑크 사슬액션 플랫포머'라는 독특한 장르를 자랑하는 게임으로, 전통적인 한국풍 배경에 사이버펑크 요소를 결합해 미래화된 조선을 배경으로하는 액션 게임입니다.  

 

<산나비 메인 이미지>

 게임의 주인공은 복수를 위해 싸우는 캐릭터로, 플레이어는 이 주인공을 플레이하며 수상한 메가시티인 '마고특별시'를 탐험합니다. 특히, '사슬팔'이라는 스타일리시한 로프 액션은 산나비의 가장 큰 특징 중 하나이며, 이 외에도 액션 뿐 만아니라 풀 컷씬으로 연출되는 스토리와 화려한 픽셀 아트가 함께 돋보이는 게임입니다. 산나비가 다른 사슬 액션 게임과 구분되는 가장 큰 차별점은 자유롭게 발사 가능한 로프, 그리고 ‘대쉬’기능을 통한 빠르고 스타일리쉬한 스윙 액션입니다.

 산나비는 원더포션의 첫 번째 게임으로, 개발 경험이 전혀 없던 저희 팀은 쉽게 접근하고 배울 수 있는 동시에 원하는 시스템을 충분히 구현할 수 있는 엔진이 필요했습니다. 그런 점에서 유니티 엔진이 저희의 요구사항에 딱 맞는 선택이었습니다.

유니티를 활용한 최적화 과정 

<비 내리는 씬 gif>

산나비는 스프라이트 기반의 게임으로, 스프라이트 아틀라스를 활용함으로써 게임 최적화에 큰 도움을 얻을 수 있었습니다. 개발 과정에서는 다양한 그래픽 요소들이 플레이어와 상호작용이 가능하도록 구현하는 데에 중점을 두었습니다. 예를 들어, 비가 내리는 씬의 경우 빗줄기가 픽셀 하나하나에 부딪힐 수 있도록 하는 부분이나, 각 씬에서 보여지는 빛이 모든 오브젝트나 플레이어에 의해 가려질 수 있도록 구현하였습니다. 또한, 플레이어의 움직임에 따라 맵에 있는 로프가 흔들리거나 끊어지며, 끊어진 부분에서 불꽃파티클이 보여지는 방식으로 표현하는 등 그래픽 요소와 플레이어의 상호작용에 신경썼습니다. 

그 과정에서 이러한 상호작용들이 성능에는 크게 영향을 미치지 않고 처리될 수 있도록, 유니티의 컴퓨트 셰이더(Compute Shader) 기능을 활용하였습니다. 

 PC에서는 체감하지 못했던 부분이었지만, 3D게임인 동시에 2D게임인 산나비는 닌텐도 스위치 출시를 준비하며 최적화 부분에서 많은 어려움을 마주하였습니다. 이를 해결하기 위해, 컴퓨트 셰이더를 활용해 파티클, 빗줄기 하나하나 모두 GPU로 처리하고, 그릴 때에는 Graphics.DrawMesh API를 사용하여 GPU 단에서 그릴 수 있도록 최적화에 큰 도움을 얻었습니다. 이를 통해 많은 연산을 GPU로 처리하면서 수천개의 파티클들을 그리거나, 충돌 체크를 하는 과정에서도 닌텐도와 같은 콘솔 기기에서 60프레임의 성능을 유지할 수 있었습니다. 또한, 닌텐도 스위치 배포용 개발시 프레임 체크를 하는 과정에서 프레임이 잘 나오지 않는 문제가 있었으나, URP 배칭 기능을 활성화하여 프레임 부분에서 큰 도움을 받았습니다.

 저희는 렌더링의 대부분을 스크립트로 작성하였습니다. CPU 사용량과 로직 부분에서 최적화를 진행하는 것을 우선순위로 두고, CPU 프로파일러를 효과적으로 활용하여 최적화를 진행하였습니다.
또한, 모든 장면을 직접 그려서 구현하였기 때문에 메모리 최적화도 중요한 과제였습니다. 큰 단위인 챕터별로 나누어 어드레서블을 사용하였습니다. 에셋  번들을 활용하면서 로딩 속도가 향상되는 것을 체감할 수 있었고, 캐릭터가 죽고 재도전하는 것이 많은 게임인 만큼, 이 부분에서 큰 도움을 받을 수 있었습니다. 

유니크한 조선 사이버 펑크 배경 아트 

<산나비 사이버 펑크 배경 이미지> 
 

 사이버펑크의 이미지는 일본, 혹은 중국의 동양적 이미지를 퇴폐적인 미래상과 융합한 경우가 많습니다. 그러나, 저희는 이러한 틀에서 벗어나  한국의 신림동이나 신촌의 밤거리 등에서도 충분히 감각적인 사이버펑크 분위기를 느낄 수 있다고 생각했습니다. 이러한 생각을 바탕으로 고전적인 한국 전통 분위기를 미래적인 배경과 적절하게 혼합하여 배경 컨셉을 잡게 되었습니다. 그리고 이것이 '산나비'의 독특한 매력을 한층 더 돋보이게 하는 요소가 되었습니다. 


 아트 리소스를 제작 시에는 각 챕터마다 컨셉을 명확히 설정하고, 사용할 색감을 결정하였습니다. 그리고 단순히 스프라이트 리소스만 사용하는 것이 아니라, 배경이 입체감을 가질 수 있도록 인게임에서 안개나 파티클 등도 배경 요소로 추가하였습니다. 예를 들어, 배경에 단순히 안개를 쌓는 것이 아니라, 안개를 뒤쪽 배경에 쌓은 후 파티클 등을 떨어뜨려 배경이 입체적으로 느껴질 수 있도록 연출하였습니다.

 이외에도, 뒤에 있는 배경 멀리 떨어져있으면 시차로 인해 천천히 움직이고, 가까이 있는 물체는 빨리 움직이는 현상인 패럴랙스 효과를 구현할 수 있도록 신경썼습니다. 3D의 경우, 패럴랙스 효과를 자연스럽게 연출할 수 있지만 2D의 경우에는 하나하나 만들어야하는 수고가 필요합니다. 이러한 부분에서 자연스럽게 구현할 수 있도록 많은 노력을 기울였습니다.  


  유니티에서 제공하는 2d 라이팅 기능을 사용하지 않고 자체적으로 라이팅을 구현해서 사용하였지만, 유니티에서 제공하는 스크립터블 렌더 파이프라인을 활용하여 쉽고 편리하게 원하는 라이팅 효과를 구현할 수 있었습니다. 

특히 포스트 프로세싱 중에서 룩업 테이블을 잘 활용하였습니다. 아트 담당자들 기술적인 지식이 없음에도 불구하고, 룩업 테이블 활용하면 자신들이 익숙한 툴 내에서 색감을 조정할 수 있어 확실한 색감, 전체적인 룩뎁을 잡는데에 큰 도움이 되었습니다. 뿐만 아니라 유니티의 직관적인 UI/UX도  큰 도움이 되었습니다. 비 개발자들도 손쉽게 배우고 익숙해져서 보다 적극적으로 게임 개발에 참여할 수 있었습니다. 

많은 양의 이미지 에셋 관리  

<유니티를 활용한 산나비 개발 이미지>

산나비 내에 대부분 이미지들이 노말맵과 라이팅용 마스크 맵을 포함하고 있었습니다. 따라서 굉장히 많은 이미지가 존재했기 때문에 마스크맵에 일반 스프라이트용 설정값을 적용 시키는 실수가 발생하기도 했으며, 애니메이션 클립을 생성할 때 노말맵과 마스크맵을 하나하나 배정하는 과정에도 어려움을 겪었습니다. 

 앞선 문제를 해결하는 동시에, 이미지 파일들을 잘 관리하고 사용하기 위해 철저한 네이밍 규칙을 유지하였습니다. 에셋 임포트 시에 AssetPostprocessor를 활용하여 각 네이밍에 따라 종류별 설정값들이 반영될 수 있도록 관리하였습니다. 또한, 애니메이션 클립들을 생성할 때에도 네이밍 규칙에 따라 클립을 자동으로 생성하며, 노말맵과 마스크맵 또한 스프라이트와 동일한 키프레임에 맞춰 생성되도록 작업하였습니다.
 

산나비 스토리 구상과 게임 연출

<산나비 게임 내 이미지>

 
스토리 구상시에는 큰 틀을 먼저 구성한 후, 플레이 가능한 부분들이 많이 등장할 수 있도록 접근하였습니다. 

각 챕터에서 어떤 식으로 플레이 할지와, 어떤 적이나 보스가 등장할 지 또는 어떤 기믹을 설정할 지 등 대략적인 이야기를 구성한 후, 스토리를 구체화하는 방식으로 진행하였습니다. 


산나비는 영화나 만화가 아닌 게임이기 때문에,  플레이어가 이야기의 주인공이 되어 직접 경험하는 스토리텔링이 게임 스토리텔링의 핵심이라고 생각했습니다. 주인공이 느끼는 감정과 플레이어가 느끼는 감정을 동기화시켜 완전히 몰입할 수 있도록 연출에 있어서 많은 노력을 기울였습니다.

 특히, 두 가지 부분에서 많은 공을 들였습니다. 첫 번째로, 스토리 부분에서 약 10분 가까이 되는 시간 동안 엔딩씬과 음악이 타이밍을 맞출 수 있도록 하는 데에 많은 시간을 들였습니다. 

 두번째로는 시각적인 부분에서, 특히 ‘챕터 3 감독관’이라는 3D 보스 캐릭터를 게임에 적절하게 등장 시키는 것에 가장 신경을 썼습니다. 이 과정에서 2D 프로젝트에 3D 오브젝트를 적용시킬 때 어색하지 않게 보이기 위해 고민을 거듭하며, 사소한 부분도 놓치지 않고 지속해서 수정하였습니다. 


 현재 산나비는  난이도가 세분화 되어있어 직접 설정할 수 있습니다. 처음 제작시에는 난이도 설정 기능이 따로 없었으나, 플레이어들이 게임 난이도에 어려움을 겪는 것을 알게 된 이후 난이도 세분화를 결정하게 되었습니다.  가장 보편적인 방법인 난이도와 체력 회복을 세분화하여 더 많은 사람들이 저희 산나비의 결말까지 플레이 할 수 있도록 조정하였습니다. 



실제 플레이어 피드백


 2024년 1월 29일 기준 총 18,155개의 유저 평가를 받았으며, Steam에서 압도적으로 긍정적인 유저 평가를 받았습니다. 특히 그 중 조작감에 관련된 피드백들이 많았습니다. ‘사슬팔’은 산나비의 핵심 기믹 중 하나로서, 다른 게임에서 찾아보기 어려운 유니크한 액션이었기 때문에 배울 만한 게임이 많지 않았습니다. 이로 인해 어려운 점이 있었지만, 많은 분들이 조작감에 대한 소중한 피드백을 보내주셨습니다. 유저 피드백 하나하나에 모두 귀 기울이며, 수정하고 반영하여 지금의 산나비가 나올 수 있었습니다. 

 산나비는 처음에는 난이도가 생각보다 높아 보일 수 있는 액션 게임입니다. 하지만, 실제 플레이 할 경우,  플레이어들이 생각보다 빠르게 게임에 익숙해질 수 있습니다. 게임 스트리머들의 화려한 플레이에 압도되지 않으셨으면 좋겠습니다. 오히려 직접 플레이해보시면 더 재미있게 즐기실 수 있을 것이라고 생각합니다. 

 

“유니티는 인디게임 개발자에게 있어 손쉽게 접근 가능하고 상업 퀄리티의 게임을 만들어낼 수 있는, 게임 엔진의 기준과 같은 존재라고 생각합니다. 버그나 최적화 부분에서 어려움을 겪기도 했지만,
그래도 유니티가 없었더라면 산나비는 완성되지 못했을 겁니다."

- 유승현 대표, 원더포션
 

"사슬 액션" 어드벤처 플랫포머 게임 산나비에 대해 더 자세히 알아보세요. Unity팀에 문의가 필요한 경우 여기에서 문의하실 수 있습니다.

Unity Square 로그인
Unity MWU Korea Awards 2021 TOP 36 투표와 관련하여, 본인의 개인정보를 유니티테크놀로지스코리아 유한회사(이하 ‘회사‘)에서 수집 및 이용하는 것에 대해 동의합니다.

- 단, 관계법령의 규정에 의하여 보전할 필요가 있는 경우, 일정 기간 동안 개인정보를 보관할 수 있습니다. 그 밖의 사항은 회사의 개인정보취급방침을 준수합니다.
- 개인정보 수집/이용에 동의하지 않을 수 있으나, 미동의시 이벤트에 참여가 불가능합니다.
개인정보 수집 항목 이름, 휴대폰번호, 이메일
수집 목적 어뷰징 등을 통한 부정 투표 방지 및 이벤트 당첨, 경품 발송
보유기간 투표 종료 후 3개월 이내 파기
본 이벤트의 당첨자 추첨 및 배송, 응모 및 당첨자 경품 배송관련 상담 업무 등은 슈퍼와이 주식회사, 피엠지 아시아에 위탁됩니다.

- 개인정보 수집/이용에 동의하지 않을 수 있으나, 미동의시 이벤트에 참여가 불가능합니다.
위탁업체명 위탁업무
슈퍼와이 주식회사 TOP 36 투표 참여자 정보 처리 및 관리
피엠지 아시아 TOP 36 투표 참여자 문의/답변 대응 및 경품 발송
확인 발표자료 신청하기
닫기