이번에 <U Day Seoul>이라는 유니티 세미나를 다녀왔습니다.
이 행사는 Unity Engine의 최신 기술을 소개하고 개발 팁을 공유하는 등 게임 크리에이터를 위한 교류의 장이었는데요, Unity를 이용해서 게임을 개발하고 있는 저에게는 너무 흥미로운 주제의 세션들이 기다리고 있었습니다.
위 그림에서 볼 수 있듯이 Unity 6 이후의 로드맵, Unity AI Sentis, Apple Vision Pro를 이용한 공간 앱 제작, 아티스트를 위한 셰이더 그래프, 다양한 플랫폼에서의 고화질 그래픽 등 이렇게나 많은 세션이 준비되어 있었어요.
저는 이 중에서 특히 기대되었던 게 '데이브 더 다이브'와 '산나비'의 포스트 모템 세션이었습니다.
Unity 기술 세미나에 왜 인디 게임 회고 같은 게 껴있지? 하고 궁금해하시는 분들도 있을 텐데, '데이브 더 다이브'와 '산나비'는 Unity Engine으로 제작된 게임이기 때문입니다.
두 게임 모두 최근에 출시되어 세계적인 인기를 끌고 있으며, Unity를 이용해 제작한 게임 중 성공한 대표적인 게임으로서 프로젝트에 대한 사후 피드백 분석에서 배울 점이 많다고 생각해 U Day Seoul에 초청받을 수 있었다고 생각합니다.
그럼 이제 세션 별로 감상평을 해보겠습니다 :)
세션 1: Unity 6, 그 이후: Unity 엔진 및 서비스 로드맵
첫 번째 세션이 시작하고 강연장에 들어가니 책상에 통역기(?) 같은 게 놓여 있었습니다.
처음에는 세션이 종료된 후, 질문할 수 있는 마이크(?) 같은 건 줄 알았는데, 다른 분들을 보니 귀에 착용을 하시고 있더라고요. 그래서 저도 착용하려고 해 봤는데 어떻게 착용하는 지를 몰라서 안 그래도 어려운 내용을 영어로 30분 정도 들었던 것 같습니다..ㅎㅎ
세션의 주제가 Unity 6 그 이후의 로드맵을 다루는 내용이다 보니까, 다양한 주제들을 빠르게 짚고 넘어갔어요. Unity 6에서 이런 기술이 이렇게 바뀌었고, 이런 기능이 새롭게 추가되었고 등과 같이 빠른 템포로 이후의 세션에서 자세하게 다루는 주제에 대해서도 간단하게 짚고 넘어가며, Unity의 오버뷰를 설명하는 느낌이었습니다.
세션 2: Unity 6과 함께 모바일, VR, PC, 콘솔에서 고화질 그래픽 구현
이 세션은 아티스트를 위한 세션이었으며, 아래의 3가지 주제에 대해서 설명했습니다.
1. Material Shader Graph
2. Visual Effect with VFX Graph
3. Bringing it all together with Lighting
1번 주제인 Shader Graph는 제가 최근에 공부한 기능이라 그런지, 이전과 비교하여 무엇이 바뀌었는지 체감할 수 있었습니다. 그중에 가장 유용하다고 생각하는 신기능은 Heatmap Color라는 기능입니다. Shader Graph의 노드의 색상이 그 노드가 성능을 잡아먹는 가중치에 따라 바뀌는 기능인데, 이는 비효율적인 셰이더 연산을 시각적으로 확인하고 수정할 수 있는 아티스트 친화적인 기능이었습니다.
2번 주제인 VFX Graph는 아직 사용해보지 않은 기능이지만, 이번 세션을 통해서 하루빨리 배워보고 싶다는 생각을 가지게 되었습니다. Shader Graph와 비슷하게 VFX 이펙트를 제작하는 데 사용하지만, 좀 더 시각적 연출에 특화된 기능이었습니다. 이번에 Unity 6로 들어오면서 튜토리얼도 많이 생겨나고 자체적으로도 최적화가 많이 이루어져서 실제 프로젝트에서도 적용하면 좋을 것 같다는 생각이 들었습니다.
3번 주제는 사실적이고 아름다운 환경을 만들기 위해서 필수적인 요소들에 대한 설명이었습니다. 대기 산란, 오존 산란, 볼륨메트릭 포그 등 빛의 다양한 속성들을 제어하며 얼마나 사실적인 묘사가 가능한지 알 수 있었고, 특히 HDRP Water 기능은 너무 사실적이고 놀라운 기능이라 입을 벌리며 봤습니다. Unity Engine에서도 이 정도 그래픽이 구현 가능하구나 ~ 했던 주제였던 것 같습니다. (Unity야 힘내줘..! Unreal한테 지면 안돼..ㅜ)
세션 3: Dave, a 2D-Diver in a 3D-Land - 데이브 더 다이버 포스트모템
이 세션은 제가 클라이언트 프로그래머 지망생이라는 점에서 가장 유용한 세션이었습니다.
왜냐하면 강연자분이 '데이브 더 다이버'의 바닷속 콘텐츠를 제작하시는 클라이언트 개발자 분이었고, 그 과정에서 겪었던 문제들과 해결과정에 대한 내용을 강연해 주셨기 때문입니다.
'데이브 더 다이버'에서 겪었던 문제들은 다음과 같습니다.
1. 3D 모델에 딱 맞는 2D 콜라이더 입히기
2. 2D 콜라이더의 회전
3. 카메라의 2D와 3D 넘나들기
개발 과정에서 겪은 문제들에 대한 해결 과정을 들으면서 평소에 내가 게임을 만들며 고민했던 부분들도 있었고, 문제 해결 방식에 대한 발상도 엿볼 수 있어서 아주 흥미로웠습니다. 마음 같아선 지금 이 글에 그 내용을 정리하고 싶지만, 그렇게 된다면 글이 너무 길어지기 때문에 세션에서 소개한 자세한 내용은 이후에 따로 포스팅하도록 하고 이번에는 감상평 정도만 남기도록 하겠습니다 ;)
기본적으로 '데이브 더 다이버'는 2D 게임입니다. 하지만 일반적인 2D 게임이 아니죠. 이 게임이 좋은 평가를 받을 수 있었던 가장 큰 이유 중 하나는 어디서도 보지 못한 2D와 3D의 융합이라고 생각합니다.
단순히 시각적으로만 2D와 3D가 융합하는 것이 아니라, 2D 모델과 3D 모델이 콜라이더를 이용해 물리적으로 상호작용 할 수 있다는 부분이 신선하게 다가오는 것 같습니다.
2D와 3D 콜라이더는 함께 사용될 수 없기에, 기본적으로 2D 게임인 '데이브 더 다이버'는 2D 콜라이더를 사용했고 3D 모델에도 2D 콜라이더를 부착해 충돌 처리가 정상적으로 동작하도록 만들어야 했습니다.
그리고 그 과정에서는 3D 모델에 딱 맞는 콜라이더를 생성하기 위해 셰이더를 건드린다거나, 2D 콜라이더를 3D 모델에 입히기 위해 절단면에 콜라이더 만들기, 카메라의 프러스텀 모양을 고려한 콜라이더의 위치 변환 등 다양한 기술적 도전들이 이루어졌습니다.
그렇게 개발팀이 이용한 수학적 지식, 창의적 발상 등의 모습에서, 문제를 맞닥뜨렸을 때 어떤 방식으로 헤쳐나가야 하는지에 대한 자세를 배웠습니다.
세션이 끝나고 많은 사람들이 '데이브 더 다이브'의 기술적 도전에 대한 질문을 하기 위해 Ask the Experts Zone에 줄을 섰습니다. 저는 근처에 서서 다른 분들의 질문과 개발자분의 답변을 모두 경청했는데요, 개인적으로 질문하고 싶은 것도 있지만, 다른 분들이 이야기하는 것도 궁금하고 '데이브 더 다이버' 개발과 관련된 이야기를 조금이라도 더 듣고 싶어서 다른 분들의 질문이 끝나는 것을 기다렸습니다.
그렇게 모두가 가고 마지막에 두 가지 질문을 했습니다.
1. '데이브 더 다이버' 개발에 2D 콜라이더가 아닌 3D 콜라이더를 사용하면 해결되지 않나요?
2. 개발하면서 외부 툴은 어떤 걸 사용했나요?
1번 질문에 개발자분은 동의하시며, 3D 콜라이더를 사용하면 오늘 세션에서 소개한 문제들은 거의 해결될 것이라고 하셨습니다. 그러면서 "3D 콜라이더를 안 쓰고 왜 2D 콜라이더를 썼지..? 이유가 있었던 것 같은데.."라며 당황해하셨습니다. 그 뒤로 하신 말씀이 지금 돌아가면 3D 콜라이더 사용할 거라고 하셨습니다. (...?)
2번 질문에는 Unity Asset Store에 있는 Odin Inspector를 팀원들이 찬양한다고 하셨습니다.
(왜냐하면 코드를 보지 않더라도 유니티의 인스펙터 창에서 시각적으로 프로퍼티를 수정할 수 있기 때문에..ㅎ)
이 에셋은 저도 최근에 구매한 에셋인데, 저도 다음 프로젝트 할 때 꼭 써봐야겠다고 생각했습니다. 이외에도 리소스 관련 에셋은 거의 사용하지 않았고, 대부분 에디터 관련 에셋을 사용했다고 하더라고요..ㅎㅎ
제가 제작하고 있는 'Ember Fall'이라는 게임은 '데이브 더 다이버'와 비슷하게 2D 게임이면서도 3D 카메라 (Perspective)를 사용합니다. 그 이유는 Parallax 배경을 사용하기 위함이에요. 하지만 3D 모델이 없기 때문에 2D 콜라이더를 사용하면서 문제가 발생한 적은 없는데요 ~라는 이런저런 이야기도 하고..
세션 4: Unity의 PolySpatial를 통한 Apple Vision Pro용 공간 앱 제작기 소개
이전 세션에서 질문 시간이 길어져, 이 세션은 참여하지 못했습니다..ㅜ
그런데 8개의 세션 중 가장 관심도가 낮은 세션이기도 했습니다. (저는 갤럭시 유저라..ㅎ)
세션 5: Unity Sentis 상세 기술 설명과 게임 콘텐츠 적용 튜토리얼
이 세션은 ONNX Format, Quantization, Encryption 등 모르는 단어들 천지였습니다. 제가 AI를 사용하는 것에 관심은 있지만, 아직 나만의 GPT 만들어서 사용하는 수준이라.. 직접 모델을 학습시키거나 학습된 모델을 임포트 해오는 과정, 그리고 딥러닝 모델의 추론환경 세팅 등 낯선 내용들이 나오니 어려운 세션이었던 것 같습니다.
Sentis를 이용하여 Unity 내로 AI 모델을 가져와 프로젝트에 적용하는 프로세스가 상당 부분 간소화된 것과, 학습된 모델을 가져와 프로젝트에 적용하면 엄청난 기술력을 요구하는 기능도 손쉽게 사용할 수 있다는 것을 알 수 있었는데요, 예를 들어, 방탈출 게임에서 사용자가 쓴 숫자를 인식하는 MNIST Model이라든지, 실시간 카메라 영상을 통해 물체의 Depth를 알려주는 MiDas Model 등 유용한 모델이 오픈소스로 이미 많이 존재하고 있었습니다.
저도 다음에 프로젝트에서 AI를 사용할 기회가 있다면, 공부해서 Sentis를 꼭 사용해 보고 싶습니다.
세션 6: 인디게임 산나비 포스트모템
산나비의 개발사 '원더 포션'의 대표님이 나오셔서 강연을 해주셨습니다.
(대표님이 엄청 젊었습니다. 거의 저보다 2~3살 많아 보이셨어요)
이 세션은 가장 공감이 가는 세션이었는데요, 이유는 산나비 프로젝트가 이렇게 성장하게 된 과정들을 얘기 들으면서, 제가 대학생 때부터 1년 넘게 개발하고 있는 게임 'Ember Fall' 프로젝트의 서사와 많이 비슷해 보였기 때문입니다.
게임에 대한 열정으로 뭉친 젊은 대학생들, 인디 게임에 대한 로망의 대가는 비싸다는 사실, 현실 감각과 경험의 부족 등 산나비의 개발 과정 중 인디 게임 개발의 노고를 알 수 있었고, "나도 지금 그 과정을 따라가고 있구나" 하고 깨닫게 되는 순간이었습니다.
1. 스토리
산나비는 '조선 사이버펑크'라는 독특한 세계관을 가진 게임입니다. 이 세계관에서 '만기 전역한 주인공'을 중심으로 스토리를 풀어내야 했는데, 여기서 '스토리텔링' 중 '텔링'의 중요성을 어필했습니다. "플레이어에게 감동 있는 스토리를 어떻게 전달할 것인가"가 가장 큰 고민이었고, 이를 위해 수십 번 각본을 갈아엎었다고 합니다.
그리고 "어떻게 좋은 스토리의 게임을 만들 수 있었나요?"라는 질문에는 "처음부터 완벽한 스토리는 없고 스토리의 큰 뼈대를 설정한 다음, 그 뼈대에 살을 붙여나가는 방식으로 서사를 만들어 나가야 한다"라고 말했습니다.
이에 저는 시나리오 기획, 창작의 고통을 느낄 수 있었고, 시나리오뿐만 아니라, 레벨 디자인, 아트 디자인, 버그 없는 플레이 환경 등 기획, 아트, 플밍 모두가 플레이어에게 '재미'와 '감동'을 주기 위해 많은 고심을 한다는 점에서, 게임 개발은 역시 하나의 예술 작품을 만드는 것이구나 다시 한번 느꼈습니다.
2. 조작감
산나비는 '로프 액션' 장르로 역동적인 액션이 매력인 게임입니다. 그렇기 위해 로프 액션의 조작감이 굉장히 중요했다고 하는데요, '조작감'은 개인차, 게임차, 등 수많은 요소가 복합적으로 영향을 미치며 모든 플레이어를 만족하기란 쉽지 않습니다. 산나비의 개발 과정에서도 유저들의 수많은 피드백을 반영해 보았지만, 모두를 충족시킬 수는 없었다고 합니다.
"유저들이 원하는 조작감이란 뭘까?"라는 고민을 하며 내린 결론은 "모두에게 좋은 조작감이란 없지만, 상상하는 대로 움직이고, 때리고 싶은 대상이 잘 맞고, 내가 키를 누르면 피드백이 오고, 약간의 오차를 봐주는 등 적당히 자연스러운"이라는 결론을 내렸습니다. 이를 실현하기 위해 끊임없이 테스트와 수정의 과정을 반복했다고 합니다.
이 이야기를 듣고도 많은 공감이 되었습니다. 저는 'Ember Fall' 게임 개발 과정에서 '플레이어의 이동 및 조작 시스템'을 맡아 개발하고 있는데, 시장에 나와있는 다른 2D 플랫포머 장르의 게임처럼 자연스러운 움직임을 만들기도 어려웠고, 팀 내에서 조차 이 조작감이 낫다, 저게 낫다, 점프는 Space가 좋다 Alt가 좋다 등 조작감에 대한 갑론을박은 아직까지도 이어지고 있습니다.
이외에도 "인디게임 개발은 수평적이라는 특성 때문에 어느 정도의 철인 정치가 필요하고, 집단을 이룬 이상, 판단과 결정을 내리는 리더는 필요하다", "힘든 부분을 구체적으로 이해하고 받아들이고, 현실주의와 낭만주의가 양립하며, 고달픈 인디 게임 개발에서 살아남을 수 있었다", "나와 같은 곳을 바라볼 동료는 분명 어딘가 있다." 등 좋은 말씀을 해주셨습니다.
이렇듯 '산나비'의 개발 여정을 'Ember Fall'에 대입하며 이야기를 듣다 보니, 많은 공감이 되었던 세션이었습니다.
Ask the Experts Zone에서 이번에도 '데이브 더 다이버' 때와 같이, 모든 질문자의 질문과 그에 대한 답변을 경청하며 기다리다가 마지막이 되어서야 대표님과 개인적으로 이야기를 나눌 수 있었습니다.
Q1) 기획자 입장에서 프로그래머와 협업할 때 특별히 좋았던 점이 있었나요?
A1) "이건 못해요"라고 말하는 경우는 없었다.
A2) 엄청 많이 공부했다. (학구열이 높았다)
Q2) 팀원 관리와 원활한 협업을 위해 산나비 개발 당시에 어떤 노력을 기울였나요?
A1) 인디 게임 개발에서 가장 중요한 것은 '동기 부여'인데, 게임에 대한 열정만으로는 부족할 수 있으니 게임 개발 공모전, 전시 참가, 등 다양한 행사에 게임을 출품하는 것을 추천한다.
Q3) 게임 마케팅은 어떻게 하셨나요?
A1) 지금은 네오위즈가 퍼블리셔라서 알아서 다 해주고 있지만, 개발 초기부터 SNS 운영하면서 개발 과정을 공유하거나 텀블벅을 개발 중간부터 진행했는데 많은 도움이 되었으니 꼭 해보시길 바란다.
대표님이 제게 언젠간 판교에서 만나자고 하셨는데요, 형식적인 말일 수도 있겠지만 이 만남으로 인해 게임 개발에 대한 저의 열정을 다시 확인할 수 있었고, 동기부여가 되었습니다.
앞으로 파이팅입니다..!
세션 7: 모바일과 XR을 위한, URP 쉐이더 그래프 튜토리얼
확실히 이번에 Unity 6에 들어오면서 셰이더 그래프와 VFX 그래프의 편의성 기능과 튜토리얼이 많이 업데이트된 것 같다는 느낌을 받았는데요, 이 세션은 Unity 6에서 개선된 셰이더 그래프의 기능을 이용해 튜토리얼을 진행하는 방식으로 진행되었습니다.
제가 최근에 배우기 시작한 '셰이더 그래프'와 관련해서 오지현 님의 튜토리얼 강의를 종종 찾아봅니다.
실제로는 처음 뵙지만 내적으로는 친밀감이 꽤 있어서, 제가 보자마자 알아보고 사진을 요청드렸습니다..ㅎㅎ
세션 8: (Unity Cloud와 함께) 만들고 관리하고 빌드하라
Unity Cloud와 Unity Version Control에 대한 소개를 해주신 세션이었습니다.
이제 Git과 같은 외부 VCS를 사용하지 않더라도 프로젝트를 공유하고 관리할 수 있도록 유니티 자체에서 제공하는 서비스인 것 같습니다. 이번에 갑자기 생겨난 기능은 아니지만 Unity 6에 들어오면서 본격적으로 장려하는 서비스가 된 것 같습니다.
추가로 이러한 서비스는 유니티 자체에서 제공하는 서비스이다 보니 유니티 프로젝트 관리에 대한 최적화도 함께 제공된다는 것인데요, 앞으로 이 서비스가 점점 더 발전하면 굳이 외부 VCS 툴을 사용하지 않아도 Unity 하나로 게임의 제작, 관리, 공유, 배포 모든 것이 가능해지는 시대가 오지 않을까 합니다.
Unity나 Unreal 모두 게임 엔진으로 시작했지만, 이제는 게임 엔진뿐만 아니라 영화, 교육, 등 다양한 영역에서 폭넓게 사용되고 있는 것을 보니, 엔진의 파워가 점점 더 커져가고 있다는 것이 체감됩니다.
이렇게 유니티의 행사 <U Day Seoul>에 다녀온 후기를 남겨보았는데요, 제가 이런 세미나에 참석해 보는 것은 처음이지만 업계의 동향 파악이나 개발자로서의 인사이트를 많이 얻어가는 것 같아서, 앞으로도 꾸준히 관심을 가지고 참여해야겠다는 생각이 들었습니다.
그리고 다음에 이런 세미나에 참석하게 된다면, 좀 더 아는 게 많은 상태에서 참석하고 싶다는 생각이 듦과 동시에, 개인이 아닌 회사의 한 일원으로서 참석해 보고 싶다는 생각이 듭니다 :)