금일(2일), 판교 경기창조경제 혁신센터에서 열린 IGC2015에서는 로그라이크 SF 게임 '스타신디'의 강연이 열렸습니다. 이번 강연은 '인디 개발에서 로그라이크 장점 가져오기'란 주제로 강연을 준비했는데요. 대학교 동아리에서부터 시작, 다양한 도전을 통해 완성된 '스타신디'.

평균나이 26.6세의 젊은 회사인 마스트게임즈의 김선호 기획자. 그의 입을 통해 '스타신디'를 개발하면서 느낀 로그라이크의 장점들을 가져오는 것에 대해 가감 없이 들어봤습니다.

▲ 마스트게임즈 김선호 기획자



"이번 강연을 통해 '스타신디'를 개발하면서 겪은 점들을 여러분들에게 소개할까 합니다. 특히, 인디 개발을 하면서 느낀 경험을 공유함으로써 이후 개발을 목표로 하는 분들에게 조금이나마 도움이 되길 바랍니다."

■ 저희는 다양한 경험을 주는 SF 게임을 만들고 싶었습니다.


저희는 다양한 경험을 주는 SF 게임을 만들고 싶었습니다. 평소에도 '홈월드', '엑스컴' 등의 다양한 게임을 직접 즐겼는데요. 이런 게임을 즐기던 경험이 게임을 만드는데 큰 모티브를 줬습니다. 특히 저희는 게임을 즐기면서 게임에 어떤 점이 저희를 몰입하게 하는지 고민했었는데요. 도전적인 난이도와 성취감, 정교한 플레이 등이 게임을 하면서 특히나 매력적인 부분이라고 생각했습니다.

여기서 저희는 저희가 몰입한 부분과 좋아했던 부분을 섞어서 두 개의 핵심 시스템을 만들었는데요. 동력을 관리하는 실시간 함대 전투와 동시 턴을 기반으로 하는 보병 전투 시스템이 그것입니다. 이 두 개의 시스템이 어우러지는 게임 월드를 만들고 싶었습니다.

SF를 하시는 분들은 우주에서 벌어지는 다양한 테마와 이벤트를 겪기를 기대하는데요. 저희 역시 이 점을 알고 있었기에 이 두 시스템을 구현하는데 개발 기간이 꽤 소모됐습니다.


하지만 실제 개발을 하면서 '우리 같은 작은 개발팀이 전부 만들 수 있을까?' 하는 의구심이 들었습니다. 전혀 다른 테마와 시스템을 갖고 있었기에 사용하는 리소스도 공용으로 쓰기가 힘들었고, 결과적으로는 두 개의 게임을 만드는 양이 됐습니다. 이런 부분은 그래픽 아티스트가 2명밖에 없었던 저희 입장에서는 큰 부담으로 다가왔습니다.


■ 항상 새롭게 느껴지는 게임 월드를 만들고 싶었습니다.


그러던 중 저희는 최근 몇 년간 유행하고 있던 로그라이크 장르에 주목했습니다. 로그라이크 장르는 몇 가지 중요한 특징을 갖고 있었는데요. 게임을 할 때마다 랜덤하게 재생산되는 게임 월드와 죽음에 대한 혹독한 패널티, 그리고 랜덤 아이템 등이 대표적입니다.

저희 역시 로그라이크 장르를 조사하면서 발견한 게 있는데, 그건 바로 이러한 로그라이크의 특징은 다양한 장르에 잘 어울렸다는 거였습니다. 그중에서도 저희가 주목한 로그라이크의 가장 큰 특징은 바로 랜덤 요소였습니다. 이 랜덤 요소는 게임을 플레이할 때마다 항상 새로움을 유저에게 주면서 실제보다 더욱 확장된 콘텐츠를 제공해 줄 수 있었습니다.




■ 로그라이크? 어떻게 하면 항상 다르게 보일까라는 고민에서 시작했습니다.

SF라고 하면 광활한 우주를 기대하기 마련이죠. 저희 역시 플레이어들이 그런 걸 겪었으면 하는 마음에 완전히 랜덤으로 생산되는 우주와 다양한 이벤트를 제공하고자 했습니다.


처음에는 비교적 단순하게 제작했는데요. 예를 들어 소행성 지대나 우주정거장, 전자기 지대를 지난다고 할 때 긍정적, 부정적 가치를 둬서 따로 구분했고 플랫폼에 부하가 없는 선에서 랜덤하게 이벤트를 제공했습니다. 결과적으로 저희가 원했던 다양한 사건을 겪을 수 있었고 긴장감과 기대감을 느낄 수 있는 게임 월드를 제공해 줄 수 있었는데 한가지 저희가 간과한 점이 있었습니다. 랜덤이라는 로그라이크의 특징을 맹신했던 거였습니다.


■ 저희는 로그라이크의 특성으로 게임 월드를 제작하기로 합니다.


랜덤한 건 좋았지만 저희가 그걸 통제할 수 없었습니다. 예를 들면 저희가 유저에게 이익을 주기 위해 만들었는데 먼 곳에 있어서 유저에게 이득을 줄 수 없거나 위협적인 걸 만들어도 마찬가지로 전혀 위협을 주지 못하거나 했습니다. 통제할 수 없는 레벨 디자인이 탄생한 거였죠.

통제하지 못하는 만큼, 콘텐츠를 관리할 수가 없던 거였습니다. 또한, 생성할 수 있는 콘텐츠의 양이 한정적인 만큼 중복되는 콘텐츠가 배치되거나 콘텐츠가 빠지거나 하는 허술한 게임 월드가 만들어졌습니다.

결과적으로 플레이어의 동선을 예측할 수 없고, 중간에 구멍이 나기도 하는 허술한 콘텐츠의 게임 월드가 만들어졌습니다. 심지어 시나리오로 몰입을 주고 싶었는데 플레이어의 동선을 예측할 수 없어서 장치를 만드는데도 애로사항이 많았습니다.

결국은 자유도가 높고 풍부한 게임 월드는, 많은 리소스를 제작해서 풍부한 게임 월드를 제작해야 했습니다. 결과적으로 리소스를 절약하기 위해서 로그라이크의 랜덤 생성을 가져왔지만 그걸 위해서 더 많은 리소스를 제작해야 했습니다.


다음으로 저희는 이벤트 구조에 대해 생각했습니다. 적은 콘텐츠를 확장되어 보이게 하려고 플레이어의 자유도를 제한하되, 위험한 상황과 그렇지 않은 상황을 선택하게 하고 싶었습니다. 오픈 월드에서는 플레이어가 위험을 회피할 수도 있습니다. 저희는 그 선택을 제한함으로써 좀 더 극적인 상황을 연출하고자 했습니다.

결과적으로 이벤트 구조의 게임 월드는 적은 리소스로 게임 월드를 확장할 수 있는 요소가 됐는데요. 랜덤하게 출연하는 이벤트와 완전한 죽음은 긴장감 있는 게임 월드를 만드는 데 도움이 됐습니다. 하지만 저희 역시 이 방법에 대해서 완벽한 성공을 하진 못했습니다.


■ 로그라이크의 한계에 부딪힙니다.


랜덤 요소라고 해도 준비된 재료들이 랜덤으로 조합되는 거였기에, 랜덤으로 생성될 재료들을 충분히 만들어야 했고, 이벤트 구조를 통해 게임 월드를 확장한다고 해도 테이블을 통해 데이터로 존재하는 하나의 리소스였습니다. 결국에는 아무리 랜덤으로 제작한다고 해도 게임을 만드는 데 필요한 최소한의 랜덤 재료에 대해서는 생각을 해야 했습니다.


■ 이런 랜덤 요소에 대해서 유저분들의 평가는 나뉘었습니다.

이러한 랜덤 요소에 대해서 긍정적이었던 부분은 로그라이크로 인해 게임 월드가 확장되는 것과 항상 새롭다는 걸 좋게 평가했고, 반복적이고 식상하다는 부분에 대해서는 부정적인 견해를 보여줬습니다.


특히 부정적인 부분은 레벨 디자인에서 구조가 변하지 않고 똑같은 리소스가 여러 번 등장하다 보니 이전과 비슷하게 생각했습니다. 결과적으로 게임을 새롭게 보이기 위해서 부정적인 부분을 줄여야 했는데요. 예외처리를 통해 같은 부분이 나오지 않게 하거나 랜덤 재료가 많아서 반복되는 것이 거의 없게 해서 해결했습니다.


■ 마무리

지금까지의 강연을 마무리하겠습니다. 로그라이크 장르는 굉장히 유연하게 다른 게임에도 적용할 수 있는데요. 랜덤 요소로 게임을 풍부하게 만들 수 있었습니다.

저희는 게임 월드를 제작하면서 랜덤 재료에 많이 고민했는데요. 결과적으로 이것 역시 리소스를 만드는 것이었기에 어떻게 제작할지 고려해야 했습니다. 결과적으로 랜덤 요소는 게임을 풍부하게 보이게 하지만 게임에 어울리는 랜덤 방식은 각기 다르므로 이에 대해 고민을 해야 했습니다.

또한, 통제할 수 없는 랜덤은 플레이어의 경험을 방해하곤 했습니다. 특히 큰 단위의 반복은 부정적인 견해를 불러일으키곤 했습니다. 결과적으로 저희가 로그라이크 요소를 도입한 것은 결국 새로운 경험을 주기 위한 노력 중의 하나였습니다. 이러한 로그라이크 요소는 게임의 리소스를 절약하는 것이 아닌 랜덤 요소를 통해 게임 월드를 확장하는 요소가 돼야 했다고 생각했습니다.



강연 Q&A

=게임 기획자 지망생인데. 랜덤 함수를 쓰셨다고 했는데 어떤 랜덤 함수를 썼는지 궁금합니다.
저희가 사용한 랜덤 방식은 단순히 목록 중에서 하나를 추출하는 방식이었습니다. 별다른 알고리즘을 사용하진 않았고요. 이런 방식을 사용한 이유는 최대한 무작위로 한다고 해도 이를 통해 게임 월드가 풍부해질 거라고 기대했습니다.

또한, 랜덤을 많이 사용하다 보니까 테스트하는데 애로사항이 많았습니다. 이벤트를 테스트하는데, 이를 위한 준비 작업이 필요하기도 했습니다. 이는 랜덤 요소를 사용했기에 어쩔 수 없던 부분이었다고 생각하고요. 결국은 많은 테스트가 정답이라고 생각합니다.


=개발 기간이 길어지면 인디 개발을 하는 입장에서는 치명적일 수 있다고 여기는데 어떤가요?
개발 기간이 길어지면 개발자들 역시 지치고 감정적으로 피폐해지는 경우가 많이 생깁니다. 그렇기에 저희 역시 가장 효율적인 방법을 찾아야만 했습니다. 그 방법이 랜덤으로 게임을 좀 더 풍부하게 만드는 것일 수도 있는데, 이는 개발을 하는 팀마다 각기 찾아야 하는 숙제라고 생각합니다.


=인디 개발이라고 하셨는데, 팀원 간 문제가 생겼을 때 어떻게 조율했나요?
팀마다 다르겠지만, 저희의 경우는 불화가 생기면 그냥 그대로 진행했습니다. 그러다가도 야식을 먹고 풀리거나 했는데요. 저희는 아무래도 대학 동아리 때부터 함께했다 보니 자연스럽게 풀리거나 합니다. 이런 경우 먼저 손을 내밀면 진다고 느끼기 쉬운데요. 그래도 누군가는 이런 감정적 소모를 해야 하고, 이런 것이 바로 인디 개발에 필요한 인내력이라고 봅니다.


= 개발 막바지에 크라우드 펀딩을 했는데 도움이 됐던가요?
긍정적인 요소와 부정적인 요소 두 가지가 있습니다. 우선 긍정적으로는 펀딩을 통해 엔진 라이센스와 맥북을 산다든지 도움이 됐습니다.

부정적인 부분에 대해서는 저희가 스스로 역량을 높게 봐서 생긴 문제일 수도 있는데 펀딩 가격에 따른 보상을 개발하면서 개발 기간이 더 길어지는 단점이 있었습니다. 하지만 목표만 제대로 정한다면 분명 크라우드 펀딩은 효율적이라고 생각합니다.


= 랜덤 재료를 조합하면서 허점이 나타나기도 한다고 했는데 예시를 들어줄 수 있나요?
저희가 내부적으로 키메라 함선이라고 부르는 함선이 있는데요. 함선의 머리, 가슴, 꼬리를 구분하고 각기 하는 역할을 다르게 했습니다. 그리고 전투 시에 다른 조합으로 나오게 해서 유저들이 항상 다른 함선을 상대하는 경험을 하게 했습니다.

▲ 머리, 가슴, 꼬리로 다양한 조합이 가능한 키메라 함선


= 랜덤으로 조합된 적이 너무 강하게 조합될 경우도 있는데 이걸 어떻게 제어했나요?
랜덤으로 조합된다고 해도 최소, 최대폭이 있습니다. 이런 폭을 조절한다면 유저가 충분히 깰 수 있는 적들이 나오는 거죠. 이런 완급 조절이 가장 중요하다고 생각합니다.


= 인디 개발 팀에서 역할 배분이 다양한데, 비율과 인원수는 얼마가 적당하다고 여기나요?
전 혼자서도 가능하다고 봅니다. 우선 저희는 프로그래머 2명, 아트 2명, 기획 저 한 명이서 하는데, 인원 배분보다는 개인의 역량에 따라 다르다고 봅니다.


= 웹에 떠도는 APK 파일에 대해선 어떤 대응책을 생각하고 있나요?
주변에서 유출되는 사례를 많이 봤는데요. 내부에서는 뚫으려고 하면 결국은 막을 수 없다고 생각합니다. 그래도 최근에는 보안 관련 서비스도 많아진 만큼 이런 걸 이용하는 게 좋다고 봅니다. 최대한 잘 막아야죠.