Dunk Dunk 개발팀이 취미 프로젝트였던 게임을 퍼블리시하기까지의 7년

이 외부 기고문에서는 BadgerHammer의 닉 그립턴과 닉 홀더가 취미 개발자들이 열심히 작업한 게임 프로젝트를 퍼블리시하는 방법에 대한 팁, 이야기, 조언을 전합니다.
여러분은 모두 인디 게임에 대해 이런 종류의 댓글이나 리뷰를 보신 적이 있으실 겁니다… “이런 잡동사니를 만드는 데 7년이나 걸렸다고?!”라는 식의 악성 댓글 말이죠.
그런 악성 댓글에 신경 쓰지 마세요. 게임을 만드는 데는 긴 시간이 걸리며, 취미 프로젝트에 그만한 시간을 투입하기도 때로는 어렵습니다. 왜 여가 시간에 게임을 개발하고 있는지 본인조차 의아해할 수도 있죠. 게임 개발은 취미가 아니죠. 게임 개발은 일입니다!
Dunk Dunk는 프로토타입에서 최종 릴리스를 개발하기까지 7년이라는 시간이 걸렸습니다. 그렇게 오랜 시간이 걸린 데는 몇 가지 이유가 있습니다.
#1 - 삶은 시간을 잡아먹는다
저희는 여가 시간을 이용해 취미 스튜디오를 운영합니다. 그리고 ‘취미’라는 표현을 사용하는 것이 자랑스러워요.
BadgerHammer에는 한 명의 개발자와 한 명의 아티스트, 단 두 사람뿐입니다. 예산은 말 그대로 0원이죠. 저희는 서로 다른 도시에 거주하고, 이 게임을 개발하는 동안 대부분 서로 다른 시간대를 살았습니다.

가장 먼저 해야 할 일은 이 취미에 실제로 투입할 수 있는 시간이 얼마나 되는지 확인하는 것입니다.
일주일은 총 168시간입니다. 정말 많은 시간이죠.
- 직장에서 일하는 시간: 주당 40시간
- 집안일, 아이들 통학시키기, 설거지, 정리정돈 등: 25시간
- 가족 및 친구와 함께 보내는 시간: 25시간
- 휴식 또는 가능한 경우 운동하기: 14시간
이 시점에서 이미 좀 우울해집니다. 사랑하는 사람들과 함께하는 시간보다 ‘일하는’ 시간에 약 세 배의 시간을 보낸다니 말입니다. 게임 개발을 좋아해서 다행입니다. 그렇죠? 취미에 투입할 시간은 주당 약 64시간뿐입니다. 아, 할 일이 또 있네요.
- 먹고 잠자기: 60시간
기본적으로 게임 개발이라는 취미에 주당 4시간을 쓸 수 있습니다.

좋군요. 이제 쓸 수 있는 시간이 얼마나 적은지 알게 되었습니다. 게다가 여기에는 출산이나 가족 이동과 같은 인생의 전환기가 반영된 것도 아니죠.
#2 - 취미 개발자를 앞질러 발전하는 기술
Dunk Dunk를 만들기 위해 Unity를 사용했고, 캐릭터 애니메이션에 Esoteric Spine을 사용했습니다. 두 가지 툴은 Dunk Dunk를 개발하는 7년 동안 큰 변화를 겪었습니다. 대부분 긍정적인 변화였습니다. 하지만 오래된 기능이나 구현을 대체하여 게임을 재미있게 만드는 일 외에 추가 작업을 해야 하는 경우도 많았죠. 하나를 업그레이드했는데 다른 패키지까지 업그레이드해야 하는 경우도 많았습니다. 저희는 될 수 있는 대로 안정성을 택했습니다.
Unity의 버전 간 업그레이드는 시간이 걸릴 수 있습니다. 개선이 이루어지면 구식 코드가 남기 마련이고, 그러한 코드는 교체해야 합니다. 항상 LTS(장기 지원) 버전을 사용했기 때문에 고통스러운 전환 과정을 줄일 수 있었습니다. 커다란 이점이 있거나 최소 플랫폼 사양을 충족해야 하는 경우가 아니라면요. Dunk Dunk는 출시 시점에 2021 LTS를 사용하고 있었습니다.
베타 때부터 사용해 온 Spine은 많이 개선되었지만, 일부 라이브러리를 업그레이드하는 데는 시간이 걸릴 수 있고, 문제가 발생할 수 있습니다. 저희는 대체로 업그레이드에 소극적이었습니다.

오랜 시간 프로젝트를 작업하다 보면 Unity를 경험해 온 역사를 나무의 나이테처럼 볼 수 있습니다. Dunk Dunk는 저희의 첫 번째 Unity 게임이었고, 이전에는 Haxe/OpenFL/Flash를 사용했습니다. 개발 나무에서 가장 뚜렷하게 보이는 나이테는 시간이 지남에 따라 게임에서 메시징에 접근한 방식입니다. 예를 들어 한 곳에서는 게임플레이의 메시징 이벤트에 델리게이트를 사용하고, 다른 곳에서는 인스턴스에서 함수를 호출하고, 또 다른 곳에서는 공유 게임 데이터 변수를 폴링했습니다. 모든 것이 하나의 방식으로 구조화되지 않았습니다. 프로젝트를 계속 진행하기 위해, 제대로 작동하지만 단지 완벽하지 않다는 이유로 재설계하는 일이 없도록 노력했습니다.

개발 중에 이루어진 또 다른 변화는 다른 프리팹 안에 프리팹을 중첩할 수 있는 기능을 사용할 수 있게 된 것이었습니다. 커다란 장점이었고 매우 긍정적인 업그레이드였지만, 일부 UI의 경우 적용하기에 조금 늦은 상황이었고, 해당 업데이트 이전에 추가된 UI 요소를 현지화하는 데 걸림돌이 되기도 했습니다.
#3 – 기능은 늘 골칫거리
저희 두 사람이 커리어 초반에 얻은 교훈이 있습니다. “프로젝트의 90%를 완료하는 데 10%의 시간이 걸린다.” 거의 모든 상황에서 이 교훈은 진리입니다.
Dunk Dunk는 세 번의 전면적인 아트 개편을 겪었습니다. 첫 번째 이유는 사용성이었습니다. 원래는 캐릭터의 키가 컸으나, 이들에게서 공이 어디로 연결될지를 플레이어가 구분하기 쉽지 않았기 때문에 캐릭터를 작고 통통하게 만들었습니다. 이내 캐릭터는 제대로 플레이되었지만, 사람들은 자신이 어느 팀에 속해 있는지, 심지어 자신이 어떤 플레이어인지 이해하는 데 어려움을 겪었습니다. 닉 그립턴은 뮤직비디오에 사용할 일러스트를 몇 장 그린 적이 있는데, 해당 뮤직비디오의 제작이 취소되자 게임에 자신이 그린 일러스트를 사용할 수 있는지 알고 싶었습니다. 사용할 수는 있었지만 모든 것을 다시 작업해야 했죠.

컨트롤도 재구성했습니다. Dunk Dunk에 대한 기존 콘셉트에서는 트윈 스틱 시스템을 사용했습니다. xBox의 Fight Night, Skate와 같은 게임의 몰입감을 좋아했기 때문이죠. 하지만 Rezzed에서 세로형 슬라이스를 시연했을 때, 대부분의 사람은 이를 이해하지 못했습니다. 닉 홀더는 행사 첫날 저녁에 주문한 피자가 도착하기까지 걸린 시간(3시간, 농담 아님)을 이용해 시스템을 간단한 플랫포머 스타일의 컨트롤로 재작성했습니다. 다음 날, 이 스타일은 즉시 인기를 얻었죠. 레거시 컨트롤 시스템은 여전히 남아 있습니다(이를 Pro Controls라고 부름).
시연은 정말 좋아하는 일 중 하나입니다. 자신이 만든 작품을 즐기는 사람들에게서 나오는 에너지를 느낄 수 있죠. 지역 인디 모임이 아니라면 시연은 시간과 비용이 드는 행사입니다. 예산이 없다고 말씀드렸었죠? 사실은 적자였습니다. 시연은 항상 피드백을 동반하며, 이러한 피드백을 처리하고 선별하여 가능한 조치를 취해야 합니다. 여러분이 만족시킬 수 있는 대상의 수는 한정되어 있으며, 그중 한 명은 바로 세상에서 가장 까다로운 고객인 여러분 자신이어야 하죠.

단순히 로컬 멀티플레이어 경험을 만드는 것만으로는 충분하지 않다고 판단하고, 풍부한 싱글 플레이어 콘텐츠를 만들기로 결정했습니다. 그 부수적인 결과로, CPU 플레이어와 모디파이어(또는 ‘뮤테이터’)와 같은 정말 멋진 요소가 나왔습니다.
개발 단계에서 처한 상황을 고려하면 비록 흥미롭기는 해도 현실적이지 못한 여러 막다른 길을 탐색했습니다. 온라인 멀티플레이어 기능이 있으면 분명히 좋았을 것입니다. 하지만 애초에 고려한 요소가 아니었기 때문에 9개월의 고생 끝에도 결국 구현하지 못했습니다. 멀티플레이어 개발을 두 번 시도했는데, 한 번은 직접 진행했고(멀리 떨어진 한 명은 끔찍한 인터넷 문제를 겪어야 했음), 한 번은 퍼블리셔가 온라인 멀티플레이어가 있는 Dunk Dunk에만 관심이 있었을 때였습니다. 결국 구현은 했으나, 저희가 사용하던 방식은 레이턴시 수준이 별로 좋지 않았습니다.

또 다른 문제는 뒤늦은 변경이 기하급수적인 연쇄 효과를 가져온다는 점입니다. 작은 수정이 많은 시스템에 영향을 미치고, 새로운 버그를 만들거나 업데이트를 요구하게 될 수 있습니다. 더 이상 작다고 부를 수 없는 수정이 되는 것이죠.
#4 – 취미가 ‘진지한 비즈니스’로
이제 비즈니스에 두뇌를 써야 할 시간입니다(BadgerHammer에서는 ‘BidNiz’라고 함).

Dunk Dunk가 거의 완료된 이후, 퍼블리셔를 구하는 데 약 1년, 그 후에 출시하는 데 또 1년이 걸렸습니다.
취미로 게임 개발을 하던 저희가 그 해에는 소셜 미디어 게시물, 발표 자료 작성, 양식 기재에 시간을 보내야 했고, 마치 그러한 활동이 일처럼 느껴지기도 했습니다.
여러 퍼블리셔와의 다양한 실사를 거쳤으나, 결국 포기하고 직접 출시할 준비를 했습니다. 우연의 일치가 겹치며 모든 문제가 마침내 해결되었고, 순식간에 퍼블리싱 계약도 진행하게 되었습니다. 힘든 과정이었지만 그 속에서 많은 교훈을 얻었고, 취미에서 무엇을 원하는지에 대해서도 많은 것을 배웠습니다.
제공된 발표 자료 템플릿을 자유롭게 사용하세요. 심혈을 기울여 만들었습니다.
퍼블리셔는 에셋, 콘텐츠, 더 많은 싱글 플레이어 콘텐츠 및 추가 모드에 대한 자체적인 요구 사항을 가지고 있습니다. 저희는 ‘완성된’ 게임을 1년 더 개발하는 데 동의했습니다. 기하급수적인 연쇄 효과에 대해 말씀드렸는데, 이 시점에서 그 연쇄 효과를 절실하게 느꼈습니다.
하나 더 말씀드리고 싶은 것은 회의에 드는 시간이 정말 많을 수 있다는 사실입니다. 배정된 게임 개발 취미 시간의 4분의 1을 회의가 차지하기도 했습니다.
회계사가 등장하고 회사가 설립됩니다. 변호사가 검토, 협상, 서명해야 할 계약서를 몇 장 가지고 옵니다.
변호사와 회계사가 필요하다면 이제 취미가 아닐지도 모릅니다.
포기는 금물!
흥미로운 사실은, 7년 동안 일주일에 4시간을 게임 개발에 할애한다면, 풀타임 게임 개발로는 사실 1년이 채 안 된다는 것입니다. 잠깐만요, 이런 ‘잡동사니’를 만드는 데 1년이 채 안 걸렸다고요?! 나쁘지 않네요!
따라서, 게임을 만드는 데 7년이 걸려도 괜찮습니다. 이 점을 당부하고 싶습니다. 원하는 만큼 시간을 들이세요. 그렇게 오랜 시간이 걸려도 되는 정당한 이유는 얼마든지 있습니다. 그저 경험을 즐기고, 그로부터 교훈을 얻고, 자부심을 느낄 만한 게임을 제작해 보세요. 가끔은 취미가 아닌 것 같은 생각이 들겠지만, 게임 개발은 취미로 삼아도 괜찮습니다.
Dunk Dunk는 현재 Steam과 Nintendo Switch™에 출시되어 있습니다. 지금 다운로드하고 취미 개발자들을 응원해 보세요. Steam 큐레이터 페이지에서 더 많은 Unity로 제작된 게임을 더 많이 살펴보고 Unity의 리소스 페이지에서 개발자들이 제공하는 더 많은 인사이트를 확인하세요.
Nintendo Switch™는 Nintendo의 등록상표입니다.
