활용 사례: 데이브 더 다이버
소규모 팀으로 복합적인 2D/3D 멀티 장르 게임을 만들어 여러 플랫폼에서 성공을 거두려면 어떻게 해야 할까요? 데이브 더 다이버 팀은 유니버설 렌더 파이프라인, C# 잡 시스템, Cinemachine, Input System이 포함된 기술 스택을 활용하고 Integrated Success 팀의 도움을 받아 원활한 최적화를 통해 많은 이들의 사랑을 받는 매력적인 게임을 출시했습니다.
여러 플랫폼에서 시각적 요소의 복잡성 해결
PC, Mac, Nintendo Switch™
27명
대한민국
파트너를 찾아서
데이브 더 다이버에는 어드벤처, 롤플레잉, 타이쿤 게임 요소가 모두 통합되어 있습니다. 플레이어는 데이브라는 다이버를 조종하여 끝없는 바다를 탐험하고, 위협적인 생물을 피하며 물고기를 잡고, 다양한 퀘스트를 완료하고, 갓 잡아올려 신선한 재료로 초밥을 만들어 판매하기도 합니다.
소규모의 개발 팀은 여러 플랫폼에서 복합적인 멀티 장르 게임플레이 요소의 균형을 맞추기 위해 파트너가 필요할 것이라 생각했습니다.
황재호 디렉터는 “Unity의 기능 덕분에 게임플레이 자체를 개발하는 데 더 많은 자율성과 시간을 확보할 수 있었습니다. 뛰어난 멀티플랫폼 파트너로 잘 알려진 Unity의 명성을 믿기도 했죠”라고 밝혔습니다.
결과
- 전 세계에서 2백만 장 판매
- Steam 동시 플레이어 98,000명 돌파
- Steam에서 ‘압도적으로 긍정적’ 리뷰 56,000개 돌파
- Steam에서 전 세계 최고 판매 제품 2위 달성(2023년 6월 29일 기준)
Nintendo Switch는 Nintendo의 등록상표입니다.
여러 플랫폼에서 최적의 시각적 품질을 달성해야 한다는 주요 과제에 직면한 팀은 그래픽스 제작, 최적화, 확장에 URP(유니버설 렌더 파이프라인)를 사용했습니다. 우찬희 리드 게임 디자이너는 “URP 덕에 큰 도움을 얻었습니다. 플랫폼별 렌더 파이프라인 에셋을 설정하고 품질 설정 메뉴에서 선택만 하면 됐으니까요. 그래픽 기준을 꽤나 높게 잡아 뒀는데, 달성하는 데 문제가 없었습니다.”
또 다른 문제는 기능 및 게임플레이 아이디어를 초기에 빠르게 구현해야 한다는 것이었습니다. 게임 셰이더에 중요한 의견을 제공하는 아티스트에게는 아이디어를 빠르게 구현할 수 있는 방법이 필요했습니다. 팀에서는 지연을 방지하기 위해 노드 기반의 시각적 저작 툴 셰이더 그래프를 채택했습니다.
정기엽 아트 디렉터는 “아티스트처럼 프로그래머가 아닌 사람들이 셰이더 그래프를 사용할 수 있다는 건 상당한 장점이죠. 아티스트가 직접 입력하면 결과를 바로 확인할 수 있었습니다”라고 말합니다.
데이브 더 다이버는 2D 픽셀과 3D 아트를 조합해 독특한 매력을 자랑하는데, 우찬희 리드 게임 디자이너는 “2D의 아케이드 같은 액션과 3D의 공간감을 동시에 느낄 수 있다는 점이 매력적이었습니다”라고 합니다. 아이디어를 구현하면서 카메라 뷰와 인터랙션에 어려움을 겪었던 팀은 Cinemachine을 선택했습니다. Cinemachine은 코딩이 필요 없는 카메라용 툴 모음으로, 최적의 장면을 연출하는 데 도움이 되었습니다. Cinemachine을 통해 여러 카메라를 구성하여 필요한 배치와 설정을 미리 확인하고 조정할 수 있었습니다.
우찬희 디자이너는 “촬영장 같은 느낌이었습니다. Cinemachine을 사용해서 자연스러운 블렌딩, 카메라 흔들림, 타겟 포커스 옵션으로 동적인 콘텐츠를 쉽게 만들고 연출할 수 있었어요”라고 설명을 이었습니다.
시각적인 전략에서 가장 중요한 부분은 성능을 저해하지 않으면서 그래픽스를 최대한 사실적으로 구현하는 것이었습니다. 팀에서는 물고기가 떼를 지어 헤엄치는 동작을 만드는 데 어려움을 겪었고, 이를 해결하기 위해 C# 잡 시스템과 Butst Compiler를 활용했습니다.
서보성 리드 프로그래머는 “일반적으로 이처럼 물고기가 떼지어 다니는 동작을 구현하기 위해 각 벡터를 선형적으로 계산하면 CPU 점유율이 높아지게 됩니다. 하지만 C# 잡 시스템으로 코드를 작성하고 버스트 컴파일러로 컴파일과 최적화를 처리했더니 성능이 크게 향상되었어요”라고 전했습니다.
팀에서 어려움을 겪은 또 다른 부분은 충돌이었습니다. 데이브 더 다이버에서는 물고기들이 서로를 부드럽게 밀어 주며 2D와 3D에서 깊이감을 형성하는데, 팀은 이 효과를 구현하며 난항을 겪었습니다. 서보성 프로그래머는 “이러한 점을 해결하기 위해 C# 잡 시스템과 Unity Physics를 함께 사용했어요. 덕분에 동적이면서도 쉽게 변경할 수 있는 밀기 로직을 만들 수 있었습니다”라고 밝혔습니다.
데이브 더 다이버 팀은 여러 플랫폼에 게임을 배포하고 유지 관리하고자 했습니다. 소규모 팀이었던지라 이러한 출시 전략과 관련된 잠재적인 시간과 비용이 부담스럽게 느껴졌지만, Input System을 사용하여 프로세스를 쉽고 빠르게 진행할 수 있었습니다.
서보성 리드 프로그래머는 “게임을 다양한 플랫폼에 구현하는 비용은 최소화했습니다. 엔진을 마이그레이션하고 컨트롤을 Input System으로 바꾸었어요. 여러 플랫폼에서 각자 별도로 전환하는 과정 없이 동일한 코드와 에셋을 사용할 수 있어 정말 편리했습니다”라고 설명합니다.
팀은 똑같이 Input System을 사용하여 서로 다른 컨트롤러를 처리해야 하는 어려움도 극복했습니다. “Input System을 사용한 결과, UX를 통해 액션을 그룹화하고 각 액션의 주요 설정을 손쉽게 추가하고 수정할 수 있었습니다. 런타임에 코드를 추가하여 재설정할 수 있다는 점도 좋았죠. 정말 많은 시간을 단축했어요.”
게임에서 재미와 성능을 모두 갖춘 대어를 낚기 위한 시각적 효과를 극대화하려면 반복 작업, 테스트, 문제 해결 등 많은 노력과 도움이 필요합니다.
팀에서는 Unity 프로파일러의 타임라인 뷰를 사용하여 성능 병목 현상을 식별했으며, Integrated Success 팀의 도움을 받아 적절한 코드 및 디자인 솔루션을 통해 프로파일링 문제를 파악하고 해결할 수 있었습니다.
서보성 리드 프로그래머의 말에 따르면 “유니티의 엔지니어 분들께 정말 많은 도움을 받았습니다. 유니티 측에 프로파일링 데이터를 보내서 함께 문제를 해결하기도 하고, 유니티 팀에서 내부 엔진 코드를 확인하여 최적화 솔루션을 제안해 주기도 했죠”라고 합니다.
유니티 엔지니어들은 소스 코드의 특정 줄을 쉽고 간편하게 분석할 수 있는 방법도 제공했습니다. “비정상적인 이벤트 호출 스택이 발생했을 때 유니티 엔지니어 한 분이 엔진 코드를 함께 확인하여 문제를 해결해 주셨고, 문의할 때 확인할 소스 코드도 첨부해 주셨습니다. 더 자세한 정보를 이해하는 데 도움이 되었죠.”
팀에서는 처음부터 생생하고 재미있게 느껴지는 멀티 장르 게임플레이 요소와 스토리라인을 갖춘 독특한 2D/3D 시각적 경험을 만들고자 했습니다. 여러 플랫폼에서 이 모든 경험을 유기적으로 통합하는 작업은 복잡하기 때문에 시각적 품질, 효율성, 스토리라인을 더 쉽게 관리할 수 있는 기술 스택을 선택하는 것이 필수적이었습니다.
여기에 강력한 커뮤니티 피드백 루프와 철저한 내부 테스트를 거쳐, 데이브 더 다이버는 출시와 함께 커다란 성공을 거둘 수 있었습니다.
황재호 디렉터는 “커뮤니티의 사랑을 받을 수 있는 정교하고 재미있는 게임을 우리만의 방식으로 개발해 냈습니다. 기대치를 높게 설정했는데, 최종 결과물도 그만큼 만족스러웠어요”라고 밝혔습니다.
광범위한 고객을 확보하고, 업계의 발전 방향 또는 창작 분야에 관계없이 확실한 미래 경쟁력을 갖춘 게임을 확보하세요. 제작한 콘텐츠를 19개 이상의 플랫폼에 배포해 다양한 플레이어를 사로잡으세요.