[게임만들기] 결국 직접 1인 개발한 게임, 어땠나요?

기획기사 | 윤서호 기자 | 댓글: 11개 |


▲ 게임 파일 및 애셋은 itch.io에서 다운로드 가능합니다

처음은 거창하지만 끝은 결국 비루한 걸 보고 용두사미라고 하죠. 이미 이 기획을 시작할 때부터 어느 정도 예견된 일이었습니다만, 이 프로젝트에 한해서 말하자면 저것도 틀린 말이라고 하겠습니다. 뱀의 머리에 지렁이 꼬리가 맞다고 말이죠.

원래대로라면 처음 기획했던 것의 3분의 1밖에 채우지 못했고, 시간도 너무도 오래 걸리긴 했습니다만 최소한의 구색까지는 어찌저찌 갖춰나간 단계까지는 왔습니다. 인디 게임쇼 출전 신청이라는 터무니 없이 높은 목표까지 달아가면서 막판 채찍질까지 했지만, 결국 목표했던 것은 거진 이루지 못하고 끝내게 된 셈이 되었죠.

그런데도 아직도 번듯한 게임을 만들어보겠다는 터무니 없는 꿈은 가시질 않다보니, 그냥 실패한 시도로 남겨두면 안 되겠다는 생각이 들었습니다. 그래서 마지막은 왜 2년이라는 터무니 없는 긴 시간을 들이면서 이 정도밖에 못 했는지, 또 어떤 점 때문에 이렇게 오락가락했는지를 말하면서 끝마치고자 합니다.

게임만들기 기사 모아보기
[게임만들기 ①] 1인 게임 개발에 한 번 도전해보았습니다 - 예고 및 기획 단계편
[게임만들기 ②] 1인 게임 개발에 한 번 도전해보았습니다 - 캐릭터 디자인편
[게임만들기 ③] 1인 게임 개발에 한 번 도전해보았습니다 - 중간 점검 및 기획 수정편
[게임만들기 ④] 1인 게임 개발에 한 번 도전해보았습니다 - 배경 및 스테이지 설계편
[게임만들기 ⑤] 1인 게임 개발에 한 번 도전해보았습니다 - 적 캐릭터 제작편
[게임만들기 ⑥] 1인 게임 개발에 한 번 도전해보았습니다 - 적 만들기 심화편
[게임만들기] 1인 게임 개발 도전, 지금도 하고 있나요?
[게임만들기] 1인 게임 개발의 또다른 난관, 엔진 업데이트에 대처하는 자세
[게임만들기] 1인 게임 개발 중간 점검, 데모 빌드 만들었습니다
[게임만들기] 플랫포머의 꽃, 대망의 보스 만들기



■ 처음부터 기획을 잘못하면 이렇게 됩니다

▲ 일정 관리 및 사운드 기획/대책 없이 들어간 결과.avi

일반화하기는 좀 섣부르긴 하지만, 게임 개발 수업에 처음에 들어가면 다수가 지망하는 직군이 기획입니다. 지망하는 이유는 제각각이겠습니다만, 그 중 하나가 "가장 쉬워보이고, 친숙해서"일 겁니다. 프로그래머야 두 말할 것도 없고, 사운드나 아트 역시도 어느 정도 수준의 기초 역량이 아니고서야 하기 어렵게 느껴지죠.

그러다보니 처음부터 진득하게 게임 개발자가 되기 위해 차곡차곡 계단을 밟고 준비해온 분이 아니라면, 아마도 기획이라는 직군이 가장 먼저 눈에 띌 겁니다. 기획도 파고들면 여러 분야가 있긴 합니다만, 어쨌든 업무를 총체적으로 이야기하자면 게임의 전반적인 내용을 말 그대로 기획하는 것입니다. 보통 1인 개발을 제외하면 각 분야마다 팀이 나뉘어진 만큼, 그 내용을 서류 및 다양한 포맷으로 정리하면서 다른 팀원에게 전달하는 게 주요 업무가 되겠죠.

게임 개발자가 되겠다고 뛰어든 사람이면 누구나 한 번쯤은 "이런 게임을 만들어보고 싶다"라는 비전이 있을 겁니다. 그리고 그걸 처음 떠올릴 때 사람마다 다르겠습니다만, 처음부터 세세한 것까지 빼곡히 그려나가기보다는 주인공이나 주변 인물, 세계관에 대한 파편화된 정보를 바탕으로 해서 전체적인 윤곽을 떠올리게 됩니다. 그 전체적인 관점에서 바라보는 직군이 기획이다보니 아무래도 좀 더 익숙하고, 조금만 배우면 금방 할 수 있을 것 같다는 생각이 들 수도 있죠.



▲ 지금 생각해보니 무슨 소리를 썼나 이불킥각이...

그렇지만 현실은 언제나 냉혹한 법입니다. 특히나 기계를 상대로 하면, 정말 무정하다는 게 무엇인지 확실하게 깨닫게 되죠. 사소한 것 하나하나까지 직접 지시하지 않으면 아무 것도 안 하거든요. 결론부터 말하면 게임할 때는 당연하게 느껴졌던 것도 개발자들이 어떤 식으로든 하나하나 구현해낸 것입니다. 그걸 어떻게든 만들어내는 게 프로그래머, 사운드, 아트팀의 업무라면 그 방향을 정해주고, 어울리게 조율하는 건 기획자의 몫이죠.

다른 사람들과 같이 개발을 한다면 각 부분은 서로 협의하고 협조하면서 다듬어나갈 수 있을 겁니다. 그렇지만 혼자 만든다고 하면 이 부분은 온전히 자신의 몫이 됩니다. 어떤 사운드, 어떤 아트가 자신이 만든 게임에 어울릴 것이며 그걸 어떻게 구할 건지, 어느 파트에 넣을 건지 등등 세세한 것까지 다 신경을 써야 하죠.



▲ 재료를 구하기 쉬워졌다지만, 맞는 걸 찾아서 온전히 넣는 건 자신의 몫입니다

요즘엔 사방에 널린 것이 에셋이니 그걸 쓰면 되지 않을까 싶을 겁니다. 실제로 게임 개발 과정을 단순하게 생각하면 어려울 게 없죠. 정말 단순하게 과정을 설명하자면 게임 엔진에 그래픽 에셋과 사운드 에셋을 다운받아서 넣은 뒤에 소스 코드를 몇 개 첨부하고, 빌드 오류를 체크해서 조금씩 다듬어가는 식이니까요. 그렇지만 그냥 움직이는 걸 보고 만족하는 정도에서 그치지 않고, 한 단계 나아가는 건 생각보다 힘든 일이었습니다.

어쨌거나 컨셉을 잡았으니 컨셉에 맞는 재료들을 준비해야 하죠. 이 단계에서 아트는 준비했지만, 사운드는 거의 생각을 안 한 것이 패착이었습니다. 기사를 쓸 때마다 "사소한 디테일도 자신이 만들어야 한다"라고 했는데, 다른 건 어느 정도 생각했으면서도 사운드는 결국 "그때 가서 필요한 거 구하자"라고 넘어가버렸죠.

사실 이와 비슷한 일은 사운드에만 벌어졌던 건 아닙니다. 배경도 마찬가지였죠. 캐릭터는 그릴 수 있지만 배경은 못 그리다보니 애셋을 구해야 하는데, 그냥 막연히 '도시풍 배경', '학원가', '2D'라는 키워드만 생각해둔 터라 컨셉에 맞는 애셋을 구하거나 타협하기도 어려웠죠. 저 키워드에서 무엇이 가장 중요한가, 만약에 마음에 드는 애셋이 없다면 그 다음엔 어떻게 해야 할까하는 대략적인 플랜조차 세워두질 않았거든요.



▲ 그나마도 2D 라이트 기능이 새로 추가되서 문제가 어느 정도 해결된 거지 그렇지 않았다면...

하다가 보면 계획과는 달라지는 경우가 왕왕 있으니 너무 세세한 것까지 다 계획하기는 어렵긴 합니다. 돌발 변수까지 예상하기는 어려우니까요. 그렇다고 하더라도 어느 한 쪽에만 편중되게 방향을 잡은 것은 뼈아픈 실책이었습니다. 하다못해 샘플 레퍼런스라도 생각을 해두던가, 어떤 방향의 사운드를 필요로 하는지 좀 더 생각하고 기록해둔 상태였다면 그나마 쉬웠을 겁니다. 그렇지만 그조차도 없이 백지 상태에서 작업했으니, 사운드를 구한다는 게 쉽지 않았습니다.

'대작병에 주의해라', '그냥 계획 없이 시작하면 언젠가 한 번 크게 데인다', 그간 취재해왔던 개발자 강연에서 매번 나오는 충고들입니다. 그 충고들을 단순히 취재하는 입장에서 들었을 때는 특별한 것도 없는 그저 그런 말이라고 생각했는데, 직접 겪으니 이 말에 담긴 무게감이 절실히 느껴지더군요. 그 키를 잡아가는 건 기획이었고, 이 작업은 단순히 펜대만 굴려서 보고서를 쓰거나 그럴듯한 문서를 작성하는 게 전부가 아니었습니다. 그게 이번 13차원의 실패에서 느낀, 정말 큰 교훈이었습니다.



▲ 똑바로 된 기획의 부재가 낳은 참사.jpg 플랫포머에서 신뢰의 도약투성이라니...



■ 게임 개발은 기계와의 대화고, 프로그램 언어는 그들과의 소통 수단이다




사실 프로그래머들에게 이 말을 하는 건 번데기 앞에서 주름 잡는 일이라 부끄럽기 그지 없습니다. 하지만 취지가 프로그래머뿐만 아니라 게임 개발에 흥미가 있는 모든 사람들을 대상으로 하는 것인 만큼, 이를 계속 짚고 넘어갈 수밖에 없었죠.

최근에는 게임 엔진에서 비주얼 스크립팅을 기본적으로 내재하다보니 프로그래밍 언어의 중요성이 줄어들긴 했고, 모든 직종이 프로그램 언어를 필요로 하는 게 아니긴 합니다. 혹은 간단한 교육용 프로젝트의 퀄리티도 이전에 비해서 상승한 편이라 참고해서 써도 괜찮은 결과물이 나오기도 하고요. 그러다보니 꼭 프로그래머급으로 공부하지 않아도, 게임이라는 결과물을 만들 수는 있긴 합니다.

이처럼 소규모 게임 개발에서 프로그램 언어의 비중을 줄일 수 있다고 하지만, 그 본질 자체는 바뀌지 않았습니다. 그 모든 정보를 입력 받아서 출력하는 주체는 기계고, 따라서 기계가 '알아듣게' 구성을 해야 한다는 점 말이죠. 그건 직접 코드를 짜거나, 비주얼 스크립팅을 이용하거나 관계 없이 적용되는 이야기입니다.



▲ 음 그런데 저는 이런 버그를 넣지 않았습니다 기계님...뭐가 잘못된 건가요ㅜ

그게 단순히 어떤 수치로 정확하게 표시하는 것뿐만 아니라, 세부 조건들을 세세하게 따지고 명확히 분류하는 것까지 내포하는 개념입니다. 예를 들자면 매뉴얼처럼 "이럴 땐 이렇게 해라"라고 명문화를 시켜두는 것이죠. 그런데 기계는 정말 써있는 것대로만 하고, 써있지 않으면 아예 인식을 안 한다는 걸 고려해야 합니다. 그리고 허무맹랑하게 써있어도 그게 문법에서 이상이 없다면 그대로 실행해서 크래시가 나버립니다.

전자의 문제는 1인 개발 중 기획자 입장에서 프로그래밍을 접했을 때 겪은 오류였고, 두 번째는 프로그래밍 초짜가 겪고는 한 이슈였습니다. 특히 보스인 공상어의 패턴을 랜덤과 조건식을 섞어서 구현했는데, 제가 생각한 논리 구조와 프로그램 언어로 구현하는 논리 구조가 다른 게 제일 큰 문제였죠. 몇 초에 한 번씩 랜덤 패턴을 바꾸고, 어떤 패턴에서는 특정 조건에 따라서만 그 패턴을 구현하라고 제 나름대로 로직을 짰습니다만, 결론은 간단합니다. "디테일한 거 하나라도 놓쳤다면 기계는 원하는대로 해주지 않는다", "뭔가 잘 아귀가 맞는다고 생각하지만 가끔씩 뭔가를 자꾸 놓친다", "그런데 버그는 있으면 짜증나고 없으면 나중에 큰일날까봐 불안하다."



▲ 뒤틀린어미 부와아아앜~아, 아니 제가 만들려던 건 이게 아닌데요...



▲ 어찌저찌 만들긴 했습니다

그 근본 원인으로 돌아간다면, 역시나 기획 단계에서 패턴의 로직과 규칙을 어떻게 만들고 구현할지 생각을 제대로 안 했던 것 때문입니다. 만일 혼자가 아녔다면 중간중간에 체크하고 넘어갈 수가 있겠지만, 혼자 하면 이런 걸 처음부터 잘 짜두고 체크해두지 않는 한, 놓치기 십상이거든요. 그 스노우볼이 굴러서 지금까지 오게 된 거랄까요.



▲ 그냥 떠오른 걸 끄적인 뒤에 코드를 작성하는 것만으로는 부족하다는 걸 깨달았습니다



▲ 그래서 처음 기획했던 보스 패턴의 3분의 1밖에 못 구현했습니다. 그마저도 영...



■ 어찌저찌 절반은 끝난 '제 13차원', 아직 패치는 남았다

▲ 마무리 작업에 대략 이 영상의 3배 정도 분량이 소요됐습니다

초반에 생각했던 것과는 규모도 3분의 1로 축소됐고, 구현하고 싶었던 무브도 하나는 생략이 되어버렸습니다. 처음엔 모바일로 만드는 걸 생각했지만, 결국 PC로 만들었습니다. 과분하게도 유니티 인디클리닉 인터뷰까지 마쳤지만, 결과물은 어디에도 내놓기 부끄러울 정도입니다. 첫 습작을 마무리지었다는 정도로만 생각하기엔 뭔가 이렇게 저렇게 벌려놓은 게 많으니 이불킥각 세게 잡히고 지인들에게 흑역사로 아카이브 따일 일만 남았다 생각될 정도죠.

그렇지만 지렁이 꼬리로나마 남기지 않으면 여태까지 한 것이 아예 의미가 없어질 거라 생각한 터라, 어찌저찌 마무리하게 되었습니다. 아쉬움이 남지만, 아직 혼이 덜 났는지 게임 개발이 그렇게나 힘든 일이라는 걸 알면서도 다른 걸 만들고 싶다는 생각이 그 자리를 메우고 있는 중이죠.



▲ 이불킥각이 쎄합니다...전문은 유니티 스퀘어에서 확인 가능

마무리하면서 가장 아쉬운 것이라면, 점점 더 발전하고 있는 게임 엔진을 적극적으로 활용해나가는 모습을 잘 보여주지 못한 점이랄까요. 기자인 만큼 엔진 개발사를 제외한다면 엔진의 최신 기능 소식을 가장 빨리 듣는 입장인데, 이를 녹여낼 역량이 되지 않아서 개발자를 지망하시는 분들께 이를 적용하는 방법을 소개하지 못해 아쉬울 따름입니다. 개발자를 지망하는 사람에게 도움이 되었으면 했는데, 그게 잘 안 되는 것 같아 더욱 더 아쉬울 뿐이고요. 그나마도 무료로 소스 코드를 공개하긴 하지만, 제가 직접 작성하기보다는 다른 코드를 찾아서 이래저래 변조한 것이라 수정할 필요가 있다는 점 양해 부탁드립니다.



▲ 비주얼 스크립팅 등 여러 가지가 추가되고 있으니, 앞으로 게임 개발 입문은 어떻게 될까요?



▲ itch.io 업로드까지 마쳤지만 아직 과제는 남았습니다

다음엔 어떤 작품으로 찾아뵙게 될지 모르겠습니다. 폴가이즈, 어몽어스 등을 하면서 '게임의 본질'이라는 것에 대해서 다시금 생각하게 됐으니까요. 그것 외에 예전부터 또 쓰고 싶었던 소재들을 가끔가다가 끄적거리기도 하고, 프로그래밍을 공부하면서 틈틈이 패턴을 어떻게 구현해야 할지 예제를 적어보고 있는 중입니다. 다음에 만들게 될 게임이 무엇이 될지는 모르겠지만, 다음에는 좀 더 개발자를 지망하는 분들께 도움이 되는 내용으로 찾아뵙고자 합니다. 다만 빌드 단계에서 타이머가 안 나오는 치명적인 오류 등이 발견된 터라, 이를 해결하고 난 뒤의 이야기가 될 것 같습니다.



▲ 예제 만들 때 대략 이거 있었으면 좋겠다, 싶은 것은 일단 몇 개 넣어봤습니다



▲ 일단 현재 빌드 테스트에서 타이머가 안 나오는 버그가 발견되어 추후 패치 예정입니다

댓글

새로고침
새로고침

기사 목록

1 2 3 4 5