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

유니티 스퀘어

Indie Clinic
유니티 인디 클리닉을 통해
개발 과정에서의 어려운 점을 해결해보세요.
13차원 / 윤서호 님
2020.06.09



유니티 인디 클
리닉은? 

유니티 코리아는 누구나 개발할 수 있는 솔루션을 제공하고, 창의적인 제작자들로 더 나은 세상이 가능하다는 철학을 실현하기 위한 일환으로, 유니티 인디클리닉 프로그램을 운영합니다. '인디 클리닉'은 유니티 코리아 서울 오피스에서 진행되며, 콘텐츠 개발 과정에서 어려움을 겪는 인디 개발자 분들께 유니티 코리아 테크팀 담당자가 직접 기술적 어려움에 대한 명확한 해법을 전달해 드리고 있습니다.




1. 본인 소개와 프로젝트 소개 부탁드립니다.

게임 매거진 인벤의 윤서호 기자입니다. 1인 게임 개발자이기도 하죠(웃음). 옛날부터 게임은 제게 있어 떼려야 뗄 수 없는 존재였습니다. 입사 전에 게임 개발자 교육을 수강하기도 했고, 아주 오래 전부터 창작 경험이 있었거든요. 마침 회사에서 ‘게임 기자가 게임 만들기에 도전해보면 어떨까?’라는 기획 기사를 준비하고 있어서 1인 게임 개발에 도전하게 되었습니다.


인디클리닉을 받은 ‘제 13차원’은 2D 횡스크롤 플랫포머 게임입니다. 처음 게임 개발자 교육 과정을 수강했을 때, 제가 집필하던 소설을 기반으로 만들어보려고 했지만 제 실력으로는 제약이 많았습니다. 이번에는 그때와 같은 실패를 반복하지 않기 위해 작고 간단하게, 데모 정도로 만들고 있습니다.


그렇다고 해서 시중에 나와있는 교재나 서적에서 볼 수 있는 예제의 퀄리티는 아닙니다. 게임 개발 관련 책을 보신 분들이라면 아시겠지만, 서적에 나와있는 예제만으로는 부족하다는 걸 느낄 때가 많습니다. 서적에서 배울 수 있는 기본기는 재미있는 프로젝트와는 거리감이 느껴지는 경우가 많거든요. 저는 이번 프로젝트에서 제가 할 수 있는 기본기를 모두 동원해 일반적인 예제와 달리, 재미와 기본기 그리고 컨셉을 갖춘 또 다른 예제를 만들고자 했습니다.
 



2. 게임이 독특하다. 스토리라인과 게임 내 특징이 있다면?

스토리라인을 간략하게 말씀드리자면, 게임의 주인공은 평범한 여고생인 유채림이라는 캐릭터입니다. 어느 날 갑자기 유채림이 있던 학원가가 차원의 침식 현상에 휘말리게 됩니다. 그 침식 현상을 알아챈 도사 오중구, 그리고 같이 다니는 또 다른 능력자 성유미가 유채림을 구하죠. 차원 침식 때문에 건물이 붕괴하면서 채림은 유미와 헤어지게 되고, 유채림은 다시 그들과 만나려고 붕괴하는 지하도에서 벗어납니다. 그러는 와중에 공상어 같은 강력한 개체와 만나서 악전고투하기도 하고요. 


결국 오중구, 성유미가 올 때까지 버틴 채림은 그 둘과 함께 이 사태를 해결하고자 침식 현상의 진원지로 향한다는 게 이번 데모의 스토리라인입니다. 원래는 이 사태를 해결하는 것까지 만들어보려고 했는데, 가능할지 모르겠습니다.


특징이라고 한다면 게임을 플레이하면서 일정 시간마다 캐릭터의 HP가 감소됩니다. 설정상 차원이 침식되고 있는데, 캐릭터가 쓴 가면이 그 침식의 여파를 막아주고 있는 상황이죠. 그렇지만 그 가면이 침식을 영원히 막을 수는 없고, 캐릭터의 힘이 소진되면 사라진다는 설정입니다. 중간중간 도사 오중구가 마련해둔 피난처에서 체력을 회복할 수도 있지만, 그곳에만 머무를 수 없으니 적을 물리치는 것과 체력안배 모두 신경 써야 합니다. 그리고 유채림은 설정상 중력을 다루는 능력에 눈을 떴는데, 이를 반영해서 3단 점프나 적을 끌어당기는 중력탄 등 특수기도 구현해두었습니다


3. 인디클리닉, 어떻게 알게되셨는지?

아무래도 게임 기자이다보니 유니티 관련 소식은 이래저래 가장 먼저 전해 듣는 것 같습니다. 다만 본격적인 클리닉을 받을 정도로 빌드를 만든 건 정말 최근의 일이라서, 이제야 정식으로 클리닉을 받으러 찾아뵙게 된 것 같습니다. 


게임 개발을 하며 직면했던 가장 큰 이슈는 씬 전환과 2D 라이트 기능을 적용하는 것이었습니다. 시중에 나와있는 횡스크롤 예제들을 보면, 정말 ‘기초적인’ 것만 가능한지라, 이를 응용해서 어찌어찌 만들어가는 건 성공했습니다. 그렇지만 완성하기에는 2% 부족했습니다. 개발을 속성으로 배워서 확실하지 않은 부분들이 있었는데 인디클리닉을 통해 그러한 부분들을 교정 받으면서 게임 개발 과정 그 자체에 대해 더 자세히 알게 되었습니다

 


<윤서호 님과 유니티코리아 에반젤리스트가 인디클리닉을 진행하고 있다>

4. 국비지원교육을 통해 유니티를 알게 되셨다고 들었습니다. 유니티 수업, 어떠셨나요?
게임 개발을 하기 전부터 개발자들이 많이 쓰는 엔진으로 유니티와 언리얼 엔진이 있다는 건 익히 들어 알고 있었습니다. 언젠가 제가 작가로 데뷔하면, 그 작품을 게임화해야겠다고 생각해왔거든요. 그래서 이것저것 알아보았었죠. 

유니티를 본격적으로 알게 된 건 국비지원교육을 받을 때였습니다. 한국 IT 전문학교에서 국비지원으로 게임 개발 과정을 수강하며 유니티를 처음 접했습니다. 이때 코딩도 처음 배웠습니다. 들었던 수업이 정말 기초적인 단계였는데도, 그것만으로도 무언가를 움직일 수 있고 게임의 근본적인 구조를 만들 수 있다는 것이 신기했습니다.

그전까지는 “내가 스토리와 설정을 기획하고 일러스트를 그리면 누군가 게임을 만들어주지 않을까?”라는 생각이 있었는데, 이 수업을 들으면서 프로그래머들과 기획자, 아티스트가 같은 프로젝트를 하며 왜 서로 의견이 갈리는지 알 것 같았죠. 그리고 게임을 만들기 위해서 무엇을 준비해야 할까, 라는 것이 대략적으로 보였고요. 이러한 기초적인 단계에서 시작해 기자가 된 뒤로도 취재를 다니고, 자료를 찾아보면서 유니티를 독학했습니다. 그걸 토대로 만들고 있는 게임이 제 프로젝트인 13차원인 셈이죠.

게임 만들기 수업을 들으면서 느꼈던 건, 다수의 게임 만들기 예제는 ‘재미있는 게임을 만들기 위한 기초’라기보다는 기능의 기초를 닦는 것에 치중하고 있습니다. 기본기를 익히는 것은 물론 중요하지만, 무언가 김이 빠지는 것도 사실이죠. 재미있는 게임을 만들어보려고 예제를 배우는데 왜 '재미있게 만들기 위한 플러스 알파'를 언급하지 않을까? 라는 생각도 들었고요. 그렇다고 해서 개발 고수의 눈으로 그걸 말하면, 초보자 혹은 중급자의 눈높이에서 보이는 것들을 맞추기 쉽지 않을 거고요. 제가 개발 고수가 아니기에 보이는 게 있다고 생각합니다. 이번 프로젝트 그리고 기획 기사에선 그걸 최대한 보여드리고 있는데, 게임 개발 지망생들에게 도움이 되었으면 합니다

5. 다양한 게임 엔진 중에서도 유니티를 사용하여 2D 게임을 만든 계기는 무엇이었나?
처음에 배웠던 것이 유니티이기도 하지만, 2019년 유나이트 코펜하겐 행사가 큰 영향을 미쳤습니다. 이전에 유니티 코리아 사옥 이전할 때 LWRP(Light Weight Render Pipeline. 현재는 URP(Universal Render Pipeline)로 변경되었다.)가 언급되면서 2D는 유니티가 답이라는 생각을 했는데, 유나이트 코펜하겐 때 더 공고해졌다고 할까요?

특히나 제 게임의 컨셉상, 전기가 끊겨 어두워진 필드를 표현하고 싶었는데, 기존의 2D에서는 그러한 디테일들을 일일이 그려야했습니다. 기초적인 명암표현에도 어려움을 겪고 있었는데 그러한 세밀한 표현이 가능할 리 없었습니다. 그 고민을 한 방에 해결해준 게 지난 2019년 유나이트 코펜하겐, 그리고 유니티 2019였습니다. 캐릭터는 만들어낼 수 있는데, 배경 구현에 어려움을 겪는 제게 URP와 2D 라이트 등은 제가 정말 필요로 하는 기술이었습니다.

키노트 정리 기사를 제가 작성했는데, 그 기능들을 예습한다는 생각으로 평소보다 더욱 공들여서 작업했던 기억이 납니다. 물론 그 뒤에도 여러 가지 해결해야 할 문제가 있긴 했는데, 제 가장 큰 고민 중 하나가 풀리고 나니까 그 다음은 꽤 시원시원하게 진도가 나갔습니다





6. 2D 관련 기능 외에 유니티의 어떤 기능이 이 프로젝트를 진행하는 데 도움이 되셨는지?
코드 커버리지가 큰 도움이 되었습니다. 보통 디버깅할 때 디버그나 브레이크, 캐치문을 사용해야 하는데, 저는 캐치문 사용이 능숙치 않습니다. 프로그래밍을 배울 때 저는 예제를 습득하며 이해하기에도 바빴습니다. 이 상황에서 코드의 상태나 호출 빈도를 직관적으로 볼 수 있는 코드 커버리지가 코드 공부에 도움이 되었습니다. 그전에는 호출이 안 되고 있겠다고 단순히 짐작하고 있던 걸 이제는 직접 확인할 수 있고, 주변 함수의 호출 횟수 등을 비교하며 심층적인 분석이 가능해졌으니까요. 심지어 최적화도 쉬워졌습니다. 코드 커버리지로 체크하면서 사용하지 않는 변수도 더욱 잘 보이게 되었기 때문이죠

7. 향후 계획이 어떻게 되시나요?
당면 과제는 해당 프로젝트를 데모 스테이지까지 무사히 만들고, 빌드를 추출한 뒤에 그 빌드로 인디크래프트와 방구석 인디 게임쇼, BIC 등에 출전 신청하는 것이 목표입니다. 그 다음 단계라면, 횡스크롤 플랫포머 게임 예제의 응용 단계를 소개하는 무언가를 진행해보고 싶습니다.

게임 개발 교육 과정의 기본기를 끝마친 뒤, 무언가 만들어보고자 했던 사람들이 하게 될 고민들이 이 프로젝트 개발 단계에 담겨있지 않나 싶습니다. 게임에서 사용되는 다단 점프나 차징 기술, 무적기, 아이템 드랍 등 제가 생각했을 때 일반 플랫포머 예제들은 이 가운데 무언가 하나씩은 빠져있으니까요. 게다가 씬을 몇 개나 할당하는 예제는 많지 않습니다. 횡스크롤 플랫포머 게임 예제가 1단계였다면, 제가 진행하고자 하는 예제가 2단계로 넘어가는 좋은 샘플이 되지 않을까요?

다음 작품은 수집형 로그라이크 RPG를 제작해보고 싶습니다. 개인적으로 정말 좋아하는 장르이기도 하고, 예전부터 기획했던 작품이 로그라이크 RPG 포맷에 어울릴 것 같다고 생각해왔거든요. 다음 작품에는 이번에 사용하지 못했던 유니티의 다양한 기능들을 적용해볼까 합니다. 그게 언제가 될지는 모르겠지만요.

8. 게임 개발 지망생에게 하고픈 말이 있다면?


‘일단 도전하라’고 말하고 싶습니다. 이 말에 ‘이상과 현실은 다르다, 게임을 좋아하는 것과 게임을 만드는 건 다르다’는 반응이 예상되긴 하지만, 반대로 ‘말로만 해서는 못 알아듣는다. 해 봐야 안다’ 라는 말도 있습니다. 엔진 라이선스비가 들었더라면 비용 때문에라도 게임 개발이 망설여졌을지도 모릅니다. 그러나 지금은 쉽게 엔진을 구할 수 있고, 참고할 수 있는 자료를 찾는 것도 쉬워졌으니, 게임 개발이 본인에게 잘 맞는지, 혹은 본인이 생각했던 것과 일치하는지는 개발을 시도해보고 결정해도 되는 문제라고 생각합니다.

시작하게 되면 아마 게임이 '기계와의 소통'이라는 걸 알게 될 거에요. 기계 앞에선 부정확하고 모호한 표현은 통용되지 않습니다. ‘게임 개발자가 되고 싶을지도...’라는 생각을 가지고 있다면 ‘Null Reference’를 띄울지도 모르죠. 직접 부딪히다 보면 게임 개발에 대한 생각이 자연스레 정리될 거라고 생각합니다. 

계속 시도하다보면 무언가 필요하다는 생각이 문득 들게 될 겁니다. 그런데 필요라는 동기는 생각보다 강력합니다. 옛날에 그렇게 싫어하던 삼각함수나, 함수의 개념을 다시금 공부하게 만들거든요. 그리고 어찌저찌 조합하고 응용해서 무언가를 만들어가게 하고요. 개발자로서 꿈이 조금이라도 있다면, 일단 한 번 예제라도 만들어보기를 권합니다. 처음엔 낯설지 몰라도, 한 발 한 발 딛으면서 점점 생각도 정리가 되고, 그러면서 점차 완성되는 자신만의 세계를 보면서 즐거움을 느끼시게 될 겁니
다. 


유니티 인디클리닉은 Unity로 콘텐츠 제작을 하시는 소규모 제작사나, 1인 개발자, 학생 분들의 프로젝트를 유니티 코리아 테크팀의 Field Engineer들이 함께 리뷰하고 해결책을 찾을 수 있도록 도움을 드리는 프로그램입니다. 인디 클리닉 대상으로 선정되시면, 유니티 서울 오피스에 방문하셔서 3~4시간 가량 프로젝트에 대한 리뷰를 받으시고, 개발 과정에서의 어려운 점에 대한 질의 응답, 컨설팅 등을 받으실 수 있습니다. 

아래 신청하기 링크를 통해 인디 클리닉에 참여해보세요!
인디 클리닉 신청하기

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

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

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