CYAN4S
게시글 '2022 회고 (3/3): 게임인'의 헤더 이미지

2022 회고 (3/3): 게임인

2022년 하반기에 있었던 활동에 대해 다룬다. 경북 게임인 양성 프로그램, 버닝비버 비버잼 및 전시관 등의 게임 관련 활동, 그리고 그 동안 만든 게임의 향후 계획에 대해 설명한다.


대학 생활의 마지막인 4학년 2학기는 나에겐 굉장히 다채로운 시간이였다. 한 학기동안에만 참여한 게임 행사만 8개인, 그야말로 게임과 함께 보낸 학기였다.

게임과 함께 보낸 마지막 학기

Alt text

학교 수업에 불만이 커지게 된 나는, 더 이상 학교 수업에 미련을 가지지 않게 되었다. 그 대신에, 게임 관련 활동을 더 적극적으로 하기 시작했다. 게임 개발자를 지망하면서도, 그동안 살면서 게임 관련 행사에 참가해본 적이 없었기에, 이번 학기는 그 한을 한 번에 풀 수 있었던 시간이었다.

첫 AR

Alt text

때는 2022년 8월 29일, 4학년 2학기 수업 개강 3일 전이었다. 학교에서 ‘유니티를 활용한 증강현실(AR) 기반 게임 제작’ 특강을 진행한다는 소식을 듣자마자 바로 신청했다. 수업은 하루에 7-8시간 가량, 3일 동안 진행되었다.

오리엔테이션에서 밝히길, 이번 강연은 2022 경북 게임인 양성 프로그램의 일환이고, 이후에 추가로 게임 기획 특강과 게임 해커톤이 있다는 사실을 알게 되었다. 이 강연의 청강생들은 자동으로 해커톤에 참여할 자격을 얻게 된 것이며, 난 생애 처음으로 해커톤에 참여할 수 있다는 생각에 마음이 벌써 설렜다.

이후 본격적인 강연이 진행되었는데, 첫날은 다소 흐지부지 진행됐다. 처참한 교내 인터넷 속도로 인해 Unity 설치에 난항을 겪었으며, 강의 시간 7시간 중 4시간을 Unity 설치에만 쏟았다. 사실 나는 Unity가 설치된 내 노트북을 들고 오긴 했지만, 어차피 강연은 모두가 듣는 거라 모든 컴퓨터에서 Unity가 설치되길 기다렸다.

이후 인터넷이 끔직하게 느린 이유가 밝혀졌는데, 학교에서 게임 관련 사이트의 인터넷 속도를 제한해 둔 것이었다.(아니 Unity가 게임 관련 사이트이긴 한데…) 결국 학교 쪽에서 인터넷 속도 제한을 해제하여 문제가 해결되었다.

기나긴 설치 과정이 끝나고, 3일 동안의 본격적인 강의가 시작됐다. Unity 공식 패키지인 AR Foundation을 사용하는 법을 중심적으로 가르쳐주셨는데, 이 패키지 내에 각종 AR 기능을 통해 처음으로 AR 앱을 만들어 볼 수 있었다. 이 때 만들어 본 기능은,

Unity에서 이러한 AR 기능을 쉽게 사용할 수 있는 패키지를 만들었다는 점이 굉장히 감명 깊었다.

다만, 개발 환경이 크게 생산적이지는 않았다. 빌드 후에 휴대폰에 설치가 된 후에야 AR 기능을 테스트해볼 수 있었기에, 테스트를 위해 여러 번 빌드하는 과정이 번거롭게 느껴졌다. 물론 증분 빌드 기능 덕분에 빌드 시간이 오래 걸리진 않았지만. 지금 한번 알아보니, 지금은 XR Simulation이라는 기능이 생겨 개발 환경이 나아진 것 같다.

이외에도 Unity 엔진 자체의 유서 깊고 전통적인 버그도 개발이 지연되는 데에 한몫 했다.

Alt text

이렇게 배운 기능을 모두 넣어서, 다양한 기능이 있는 앱을 만들었다. 다만 얼굴 인식 기능은 앱 크래시 문제로 인해 빌드에서 제외하였다. 원인은 아직까지 모르겠다… 또한 자동차 배치 기능은 쓸모가 없어보여 이 기능도 제외했다.

이와는 별도로 시작 화면을 강렬하게 만들고 싶어서, 수많은 공이 떠다니는 공간을 만들었다. 이걸 본 강사님은 “이거 출시할거니?”라고 물어보셨다. 진짜로 출시해 보는 것도 나쁘지 않을지도…?

여담으로, 슈팅 게임에 문제가 좀 있는 상태인데, 버그로 인해 몬스터가 저 멀리 엉뚱한 위치에 스폰되고, 플레이어에게 다가오지 않는 버그가 있다. 임시방편으로, 몬스터를 항상 같은 높이에서 출현되도록 강제하여 문제를 해결하였다.

이 앱도 언젠간 다시 손 볼 것 같은데, 그 땐 상용 리소스가 아닌 내가 만든 리소스로 전면 교체해볼 예정.

대구콘텐츠페어

Alt text

9월 30일, 희망이음의 지원사업으로 2022 대구 콘텐츠 페어 및 채용 박람회에 가게 되었다. 행사 전날, 우연히 대학 동기를 만나 캠퍼스를 산책하며 내가 이 이야기를 꺼냈고, 동기 또한 박람회에 같이 가기로 했다.

박람회는 크게 두 곳으로 나눠져 있었는데, 그 곳에서 처음으로 게임 회사 면접을 보았다. 사실 본격적인 면접 자리가 있을 줄은 모르고 간 것이라, 면접에 대한 아무런 준비가 되진 않았다. 면접 부스에 있는 건 의미가 없긴 했지만, 게임 관련 인물과 대화하는 기회는 흔치 않다고 생각해 몇 기업에 방문하여 여러 이야기를 했다.

Alt text

체험 부스에는 게임에만 국한된 것이 아닌 컨텐츠 전반에 대한 부스들이 있었다. 여러 부스들을 돌아다니며 게임을 해보았고, 스탬프를 모았다. 참고로 스탬프를 다 모아 받은 것은 간식 꾸러미였다.

그동안 수도권에 있는 게임 회사들에만 관심이 있었지만, 경상도권에서도 많은 게임 회사가 있다는 것을 알게 되었다. 다만 내가 대경권에 집이 있는 것도 아니고, 거주할 명분도 없어서 큰 의미가 없지만 말이다.

그리고 VR

다음으로 10월 6일, VR 메타버스 기초 교육에 참여했다. 2박 3일동안 경주에 있는 교원드림센터에서 안동대학교 학생들과 같이 이루어졌다.

그곳에서 처음으로 Meta Oculus Quest 2를 사용해볼 수 있었고, 이후 Unity 수업이 진행되었다. 첫 날에 만든 것은 360도 비디오 뷰어였다. 인터넷에서 적당한 360도 비디오 파일을 찾아 다운로드를 받은 뒤, VR 환경에서 이를 볼 수 있게 구성하였다.

Unity를 익숙하게 다루는 내 모습을 조교분들이 나를 애워 싸면서 신기하게 바라보았는데, 뭔가 애니에 나오는 클리셰가 이루어지는 것 같았다. 막상 실제로 이 상황을 겪고보니 매우 쑥쓰러웠다.

첫 날은 가볍게 넘어가고 다음 날부터 진행될 본격적인 수업을 기대하고 있었는데, 문제가 생겼다. 첫날 밤에 야식으로 나눠준 햄버거를 먹고, 밤에 심하게 체를 하게되어 몸 상태가 급격히 안 좋아졌다.

다음 날에 의지를 불태워 오전 수업을 들으려고 했지만, 몸이 허락해 주지 않았다. 결국 오후에는 수업을 듣지 못하였고 객실 침대에 누워만 있었다. VR 앱을 만들 수 있는 좋은 기회를 놓쳐서 아쉬웠다. 또한 나를 계속 걱정해준 스태프 분들과, 팀원분들에게 감사하고 죄송한 마음이다…

그래도 마지막 날에 Microsoft HoloLens를 체험해 볼 수 있었다. 이번 강연을 통해, 건강 관리를 더 잘해야겠다는 깨달음을 얻었다.(…)

Alt text

그래도, 경치 하나는 끝내주었다.

처음 해보는 게임 기획

해커톤 참여 예정자들을 대상으로, 게임 기획 강연 수업이 진행되었다. 수업은 비대면 화상회의를 통해 이루어졌고, 저녁 시간대에 하루 2-3시간씩 3일동안 진행되었다.

이때 난생 처음으로 게임을 기획하였다. 그동안은 기존에 존재하는 게임을 그대로 따라 만들기만 했고, 내가 직접 게임을 기획해보는 것은 이번이 처음이었다.

일단 주제를 잡아서 게임 기획서 초안을 작성해야 하는데, 어떤 게임을 개발할지 금방 감이 오지 않았다. 생각하면 할수록 계속 광허한 공간 속을 방황하는 기분이 들었다. 주제를 몇 개 잡아서 확장시켜나가는 방법을 사용했다.

이후, 브레인스토밍을 거쳐 공을 던져서 상대 팀을 맞추는 게임을 고안했다. 전방위로 공이 튀어오는 것이 보일 수 있게 3인칭 뷰를 채용했으며, 공 크기를 조절하는 기능을 고안해냈다.

다음으로 이 게임이 다른 게임과 차별화될 수 있는 요소를 고민했다. 일단 나는 게임이 최대한 직관적이고 간단하면서도, 전략을 다양화할 수 있는 ‘Easy to learn, Hard to master’ 성격의 게임을 지향하였다. 플레이어가 공의 크기, 공을 던지는 세기 및 방향, 공이 물체에 부딪치면 반사되어 튕기는 특성 등, 여러 요소를 고려하여 플레이 전략을 다향화할 수 있도록 게임 시스템을 구성하였다.

이 때 Bouncy Rumble이라는 이름을 가제로 붙여주었고, 이는 그대로 확정이 되었다.

이러한 내용을 바탕으로 간단한 게임 기획서를 만들게 되고, 교수님의 조언을 얻어 이 게임만의 강점을 설득력있게 어필이 될 수 있는 기획서 작성법을 습득할 수 있었다. 이 때 작성한 게임 기획서는 이 곳에서 볼 수 있다.

게임 해커톤

2022 경북 게임인 해커톤 스케치 영상

앞서 기획한 게임인 ‘Bouncy Rumble’을 11월 4일 - 5일, 총 이틀 간 진행되는 2022 경북 게임인 해커톤 현장에서 제작하기로 마음을 먹었다.

해커톤 이전에 프로젝트에 사용할 여러 에셋을 탐색해보는 준비를 하였다. 프로젝트에 사용할 3인칭 조작 에셋의 소스 코드를 분석하여, 추가로 구현할 게임 로직과 방해가 될 수 있는 부분을 탐색하였다. 다행히 요소들이 컴포넌트별로 잘 분리가 되어 있어서, 기능 확장에 방해가 될 요소는 없었다.

또한 개인적인 욕심으로, 내가 디자인한 오너캐를 넣어보고 싶었다. (타이틀 이미지의 캐릭터가 바로 이것) VRoid Studio를 사용해 나름대로 VRM 캐릭터를 디자인하고, UniVRM을 통해 Unity 내로 불러왔다. 이후 TPS 에셋에 있던 로봇 캐릭터의 Humanoid 파트를 교체하여, 손쉽게 캐릭터를 변경했다.

Alt text

그리고 행사 당일, 행사장에서 Bouncy Rumble을 본격적으로 구현하기 시작했다.

기초적인 조작은 어렵지 않게 구현했다. 일반적인 3인칭 시점 조작 및 기본 행동(걷기, 뛰기, 점프하기)은 이미 사용 중인 에셋에 구현이 되어있고, 공을 부풀리고 던지는 기능도 구현에 애를 먹지는 않았다.

공을 부풀리고 던지는 기능을 의도한 방식으로 정확히 구현하기 위해, 기초적인 대수학 지식을 활용하였다. 다행히 Unity 내에서 3차원 벡터 연산을 구현한 함수들을 다양하게 제공하여 대수학 연산을 코드에 직접 구현할 필요는 없었다.

다음은 멀티플레이어 기능 구현이었는데, 이 부분이 큰 장벽이었다. 사실 Unity 자체 멀티플레이어 네트워킹 솔루션인 Netcode For GameObjects를 배워서 게임에 적용시키겠다는 포부를 세웠다. 그래서 해커톤 이전에 벼락치기로 멀티플레이어 기능을 공부했다. 하지만 구현에 참조할 만한 자료가 많지 않고, 네트워크는 내 주력 분야가 아니기에, 기본적인 세팅에서도 애를 먹었다. 지금 생각하면 멀티플레이어 시스템을 전혀 모르는 상태에서, 벼락치기로 며칠 공부한 것으로 해결될 문제가 아니었다.

이렇게 목표를 무리하게 잡은 이유는, 이번 해커톤이 나 자신에 대한 도전이라 생각했기 때문이다. 목표 기간을 약간 타이트하게 잡으면, 단시간에 많은 것을 집중적으로 학습할 수 있다. 이 방식이, 내가 할 수 있는 분야의 영역을 확장할 수 있는 유용한 방법이다. 다만, 이번 경우는 실패로 보는게 맞다.

멀티플레이어 기능에 전전긍긍하던 사이, 같은 참여자로부터 피드백을 받아 싱글 플레이만 구현하는 것으로 선회하게 되었다. 따라서 원래 계획했던 멀티플레이어 게임의 튜토리얼과 같은 게임을 만들게 되었다.

튜토리얼이기에, 플레이어에게 기초적인 조작을 알려주고, 공을 부풀려 던지는 조작이 게임에 어떤 방법으로 운영될 수 있는지 알아가게 하는 것을 주요 포인트로 삼았다. 또한 플레이어에게 전략을 직접 설명하는 것이 아닌, 플레이어가 자연스럽게 전략을 파악하게 할 수 있는 레벨 디자인을 지향하였다. 이는 게임계의 전설이라 할 수 있는 게임 ‘하프라이프’에서 느낄 수 있는 특유의 레벨 디자인을 좋아했기에, 플레이어가 전략을 최대한 자연스럽게 이해하기를 원했다.

Alt text

문제는 내가 맵 디자인을 해본 적이 없다는 것이다. 나름대로 Unity 내 ProBuilder를 통해 맵을 디자인해보려 노력했지만, 결과물은 뭔가 어설프고 하나같이 마음에 안 들었다. 결국 TPS 에셋에 같이 있던 예시 맵을 이리저리 손 보는 것으로 때웠다. 전체적으로 맵을 유리벽을 이용해 여러 구역으로 나눴다. 또한 미션을 해결하면 유리문이 열리게 하여, 플레이어가 탐색할 수 있는 공간이 점차 확장되는 방식을 사용했다. 급조한 것 치고는 그나마 괜찮게 뽑혔다.

맵을 디자인하면서 플레이어가 게임에 쉬우면서 빠르게 익숙해지도록 간단한 미션 4개를 구상하였다. 미션의 내용과, 플레이어가 미션을 통해 얻었으면 하는 내용은 다음과 같다.

  1. 깃발에 다가가기
    • 기초적인 캐릭터 조작 연습
  2. 마네킹 2개 파괴
    • 공을 부풀리고, 던지는 행동 연습
  3. 맵 내 모든 마네킹 파괴
    • 맵 내를 탐색하면서, 마네킹을 파괴하는 연습
    • 다양한 방법으로 마네킹을 파괴하면서, 전략의 다양화를 체감하게 함
  4. 골대에 공 넣기
    • 공의 크기 및 던지는 세기에 대한 공의 궤적을 파악하는 연습

해커톤의 마지막은 기획 발표를 위한 PPT 제작이 기다리고 있었다. 예전부터 깔끔하고 미니멀한 PPT를 지향하고 있었기에, PPT에 글은 간단히만 넣고, 다이어그램과 그림을 적극적으로 사용하는 방식으로 제작하였다.

Alt text

이틀동안 자지도 않으면서 컴퓨터 앞에만 매달려, 막판에는 완전히 넋을 놓은 채로 작업했다. 같은 참여자들에게 괜찮냐는 질문을 굉장히 많이 받았다…

모든 작업이 끝나고, 발표 시간이 되었다. 다른 참여자들의 작품과 발표를 들으면서, 여러 영감과 아이디어를 받아갈 수 있었다. 그와 동시에, 발표 순서가 다가오자 심장이 굉장히 빠르게 뛰기 시작했다. “원래부터 발표를 잘 못함 + 엄청 졸림”의 시너지는 굉장했으며, 정신은 몽롱한데 심장은 엄청 세게 뛰는 다신 겪고 싶지 않은 상태였다.

그래서… 발표의 절반은 그냥 절었다. 팀당 5분을 주는 발표에 7분 이상 끌었고, 발표의 핵심인 다양화된 전략 파트는 제대로 말하지도 못했으며, 시연 영상도 중요 부분만 짧게 보여주고 끝냈다.

그리고 남은 참여자들의 발표를 듣다가, 어느 순간 잠이 들었다. 밤을 새서 매우 졸린 상태여서 그런지, 언제 잠이 들었는지도 모르겠다.

그러던 도중, 갑자기 대회의 진행자님이 나를 불렀다. 나는 잠에 덜 깬채로 왜 불려가는지도 모른채, 옆에 있던 참가자의 부축을 받아 무대 앞으로 이동했다. 그리고 그 때 내가 받은 것은…

Alt text

최우수상이었다.

평가 비중에 창의성의 비중이 높았고, 내 작품은 다른 참가자들의 작품에 비해 창의성이 떨어진다고 생각을 했다. 무엇보다도 발표를 망쳐서 큰 기대를 하지는 않았다.(사실 작은 상은 은근히 기대는 하고 있었지만;;) 아직도 이렇게 큰 상을 받을 줄은 상상도 못했다.

참고로 수상 이후에도 곧바로 잠에 든 바람에, 정작 대상을 받은 작품이 무엇이었는지 아직까지도 모른다…

어쨌든 집에 PS5가 생겼다. 아이러니한 점은, PS5를 본가로 보내서 집에 올 때까지 사진으로 밖에 구경을 하지 못했으며, 집에 와서도 개인작 준비 때문에 얼마 플레이해보지도 못했다…

이후에, 캐릭터 옷 깨짐 현상을 수정하여 GitHub에 게임을 배포했다. 이후 이 게임의 계획은 후술한다.

후일담으로, 이 해커톤은 넥슨이 만든 게임 개발 플랫폼인 메이플스토리 월드의 홍보의 목적도 있다. 또한, 해커톤 참여자들은 메이플스토리 월드를 사용하면 가산점을 받는다.

다만 참가자들의 증언에 의하면 에디터에 버그가 좀 있는데다, 무엇보다도 신생 에디터다보니 참고할 수 있는 리소스가 별로 없다는 치명적인 단점이 있다고 한다. 하지만 메이플스토리와 관련된 방대한 양의 에셋을 손쉽게 활용할 수 있다는 점은, 게임 개발에 있어 엄청난 메리트임은 확실하다. 메이플스토리를 해본 적은 없지만, 한번 쯤은 다뤄보고 싶은 도구이다.

G-STAR

Alt text

이후, 해커톤 참여자들을 대상으로 G-STAR를 보내주었다. 생애 처음으로 가는 G-STAR라 매우 설레었다. COVID-19 이후의 첫 오프라인 행사라 그런지, 기업들이 칼을 갈고 준비한 티가 났다.

많고 많은 부스 중에서도 BIC 인디게임 전시관이 가장 인상 깊었다. 각양각색의 게임을 체험해볼 수 있었으며, 나도 언젠간 제대로 된 게임을 만들어서 이런 행사에서 부스를 운영해보고 싶다는 소원이 생겼다.

규모있는 기업의 부스는 대기줄이 엄청나게 길었다. 네오위즈에서 만드는 P의 거짓을 해보고 싶었지만, 줄이 심각하게 길었던 관계로 포기했다. 사람이 엄청나게 많아 괴로웠는데, 심지어 이게 금요일에 간거라 사람이 적은 편이었다. 실제로 이후에 주말 풍경 사진을 봤는데, 주말에 갔더라면 진짜 큰일 날 뻔했다.

Alt text

이것저것 많이도 얻어왔다.

버닝비버 게임잼, 비버잼

오프라인 게임잼 ‘비버잼’ 스케치 영상

버닝비버는 스마일게이트에서 주관하는 인디게임 페스티벌로, 비버잼은 버닝비버의 프로그램 중 하나인 3일 동안 진행되는 게임 잼이다.

버닝비버의 존재는 소셜 미디어에서 알게 된 지인(나에겐 은인)을 통해 알게 되었고, 비버잼 참여를 권유받아 그대로 참여하게 되었다. 비버잼 이전에 지인과 간단히 화상 회의를 하였고, 이 때 타이쿤 게임을 제작하기로 방향성을 결정했다.

그리고 행사 당일인 11월 25일, “졸업 전 마지막 여행 삼아 다녀오자!” 라는 마인드로 서울 행 티켓을 끊었다. 기차에서 시간이 남았기에, 기획 때 필요하다 판단된 기능을 실제로 구현할 수 있을 지 조사하였다. 구현하고자 하는 기능은 맵 내의 여러 캐릭터들이 서로 겹치지 않고 목적지까지 이동하는 것이었고, 이는 Unity의 Navigation 시스템을 활용해 쉽게 구현할 수 있었다. 이를 이용해, 달리는 기차 내에서 간단한 샘플 프로젝트를 만들었다.

기차가 목적지인 영등포역에 도달하자, 서둘러 기차에서 내려 행사 장소인 올댓마인드로 향했다. 행사장에 도착하자, 스태프 분들이 환하게 반겨주셨고, 뒤이어 프론트에서 이름표를 받고 내 직책을 확인했다. 이 게임잼은 참가자 별로 직책이 정해져 있으며, 각각 프로그래밍, 기획, 그리고 아트이다. 나는 이 중에서 프로그래머 직책을 받았다.

행사 시작 시간이 되었고, 환영식으로 먼저 자기소개 시간을 가졌다. 여러 테이블을 오가며 여러 사람들을 알게 되고, 뜨거운 분위기 속에 나도 살짝 정신을 놓고 텐션 높게 행동한 것 같았다.

뒤이어, 게임 잼의 주제가 공개되었다. 이번 게임 잼의 주제는 “버닝비버”였고(특별한 주제를 생각하고 있었던 참가자들의 탄식은 덤), 팀원 소집을 위해 따로 마련된 대형 칠판과 스케치북을 통해 홍보를 해야 했다.

팀 구성을 위한 홍보 시간이 다가왔다. 이 때 처음으로 지인을 실물로 뵙게 되었는데, 그 분 또한 프로그래머 역할을 받으셨다. 간단한 인사 이후, 둘이서 이리저리 돌아다니며 홍보를 진행했다. 다만 아무리 홍보를 해도 다들 이미 팀에 합류하신건지, 들어오려는 사람은 없었다. 그래서 홍보하는 사람들만 있고, 들어오려는 사람은 없는 모양새였다.

Alt text

참고로, 열정적인 홍보에 감명을 받으신건지 모습이 찍혔다.

결국 2명으로 가야하나라고 생각하던 그 때, 막판에 극적으로 한 분이 합류하셨다. 문제는 그 분도 프로그래머. 이렇게 프로그래머만 3명인 팀이 완성되었다. 기획으로 사실상 방향이 잡힌 지인분이 기획을, 막 합류하신 분이 프로그래밍을, 그리고 그래픽 도구를 다룰 줄 아는 내가 자연스럽게 아트를 맡게 되었다.

그리고, 본격적으로 게임 개발이 시작됐다.

주최 측에서 개발에 사용할 수 있는 버닝비버 관련 그래픽 에셋이 주어져 이를 게임 내에 적극적으로 활용하기로 했고, 실제로 전체적인 디자인 컨셉이 이 에셋으로 정해졌다. 또한, 기차 안에서 만든 프로젝트를 기반으로 게임을 개발하기 시작하였다.

개발이 순조롭게 진행되는 가운데, 컨텐츠 부족을 우려해 리듬게임을 넣어서 타이쿤 요소에 반영하자는 의견이 나왔다.(지인이 내가 리듬게임을 개발한다는 사실을 알고 계셨다.) 일단 어느 정도 작동이 되는 RHYACTION LIVE의 소스 코드를 들고와 약간의 경량화 작업을 수행한 뒤, 리듬게임 파트를 성공적으로 넣을 수 있었다. 그런데 이로 인해 타이쿤과 리듬게임이 혼합된, 혼종의 게임이 탄생하게 되었다.

Alt text

어쨌든 리듬게임이 들어갔으니, 이를 기념하기 위해 버닝비버 스킨을 만들었다. 디자인 가이드라인 또한 통일시킨, 말그대로 버닝비버만을 위한 스킨이였다. 제공받은 버닝비버 그래픽 리소스는 퀄리티가 상당히 높아, 대충 조합해도 그럴싸한 요소가 나왔다.

어느 정도 개발이 진행이 되었고, 게임 내 비버 캐릭터가 움직일 때 애니메이션이 있었으면 좋겠다는 의견이 나왔다. 그래서 캐릭터 리깅을 처음으로 도전해봤다. 팀원 분들은 무리를 하지 않아도 된다고 하셨지만, 나는 어떻게 해서든 이 비버에게 생명을 주고 싶었다.(그새 캐릭터에게 정들었다.)

이 때 Unity에서 처음으로 2D Animation 패키지의 Character Rigging 기능을 사용해보았다. 리깅 툴을 이리 저리 만져서 처음엔 생각처럼 잘 되지 않았는데, 옆에 계셨던 합류한 팀원분의 조언과 유튜브 튜토리얼을 통해 기능을 배웠다.

Alt text

이를 통해, 비버 캐릭터에게 간단한 모션을 넣어주었다. 서있을 때, 그리고 걸어다닐 때, 두 애니메이션을 넣에 게임 내에서 활용할 수 있게 에셋을 만들었다. 리깅은 고사하고 캐릭터가 걷는 모션을 처음 애니메이팅해본 것이라 뭔가 굉장히 어색하지만, 급하게 만든 것 치고는 잘 작동해 나름 만족했다.

Alt text

참고로 리징 작업 화면이 인상 깊었는지, 뒤에서 계속 찍으셨다.

Unity로 협업하는 건 이번이 처음이라 익숙하지 않았고, Git은 아무리 오래 다루어도 어려운 것 같다. 개발 중 특히 힘든 일이 있었는데, 프로젝트를 Git을 통해 공유할 때 일부 데이터가 종종 사라지는 현상이 있었다. 특히 Inspector 내에서 설정한 값은 높은 확률로 없어져서, 값을 하드 코딩하는 것으로 해결한 적도 있다. 추측컨데, 작업 시간 중 4분의 1은 없어진 데이터 복구에 사용했을 것이다.

한번은 위에서 언급한 비버 애니메이션이 통째로 사라지는 바람에, 처음부터 다시 애니메이팅해야 하는 순간이 왔다. 이 때는… 화가 났다. 정말 화가 났다. 이를 반면교사로 삼아, 애니메이팅을 거친 캐릭터를 따로 패키지화하여 별도의 폴더에 저장을 했다.

3일동안 씻지도 못하고, 잠도 많이 못 자고, 작업 막판에는 아예 저세상 정신으로 작업했다. 다른 팀원분들은 3일 내내 잠을 거의 안 자고 작업한 반면, 나는 추정 상 총 7시간 가량 잔 것 같다. 두 분 모두 IT 계열에 종사하시는 분이셨고, 크런치가 익숙하신 건지 밤을 새우는 것에 익숙해 있었지만, 잠에 약해서 대학 과제도 밤새서 안하는 나에겐 고역이었다.

Alt text

‘버닝비버 페스티벌’ 게임 플레이 영상

2박 3일간의 여정의 끝으로 게임 개발이 마무리되었다. 빌드된 파일과 관련 홍보 이미지를 만들어 급하게 업로드한 뒤, 팀원분들과 완성을 자축했다.

이후, 컴퓨터들을 일렬로 배치해, 서로 각자의 작품을 플레이하는 시간을 가졌다. 모두 열정과 정성이 느껴지는 작품들이었다.

Alt text

그 후 단체 기념사진을 찍으며 행사는 끝이 났고, 일부 참가자와 함께 카페에서 마지막 시간을 보냈다.

…그리고 돌아오는 기차에서 잤다. 그것도 바닥에서 대자로 뻗어서 잤다.

나에게 비버잼은, 게임 개발에 진심인 사람들과 한 공간에서 자신들의 실력을 뽐내면서, 서로간의 친목을 다질 수 있었던 귀중하고 행복한 시간이었다. 물론 엄청 피곤한 것만 빼면…

버닝비버 전시관

버닝비버 2022 오프라인 페스티벌 현장 스케치 영상

비버잼이 끝나고, 한동안 극심한 무기력감에 짓눌려 살았다. 모든 것이 손에 안 잡히고, 학교 수업은 빼먹기 일수였다. 기숙사 침대에 누워만 있는 나날들이 늘어났고, 불안과 우울이 늘어만 갔다.

Alt text

이대로 누워만 있을 수는 없다는 생각이 들었다. 그 때, 비버잼이 끝난 뒤 나눠준 티켓이 생각이 났는데, 바로 버닝비버 전시관 초대권이였다. 버닝비버 전시관은 가로수길 내 행사장에서 열리는, 여러 인디게임을 체험해볼 수 있는 행사다.

12월 17일, “이번엔 진짜 여행이다…” 라는 마인드로 또 다시 서울 행 티켓을 끊었다. 이번에도 버닝비버를 알려준 지인분과 같이 있을 수 있었다.

대구콘텐츠페어와 비슷하지만, 인디게임이 주를 이루다보니 작품들이 더욱 개성적이고 특색있는 느낌이 강했다. 게다가 특이한 건물 구조와 배치 덕분인지, 전체적인 분위기 자체가 상당히 도전적이고 실험적인 느낌이었다. 부스 중에는 G-STAR BIC에서 봤던 부스들도 몇몇 있었다.

Alt text

여기서도 이것저것 얻어왔다.

./2023

이제 2023년을 맞이했으니, 그 동안의 성과를 좀 정리해보려고 한다.

RHYACTION LIVE

RHYACTION LIVE v0.1 Release Trailer

2022년 9월부터 본격적으로 개발되기 시작한(실제 시작은 1월이나, 큰 의미는 없다) 노트 낙하형 리듬게임 RHYACTION LIVE의 v0.1을 출시하였다.

트윗 공약으로 부랴부랴 프리뷰를 공개했고, 이후 FMOD 적용을 비롯한 여러 퀄리티 업그레이드를 수행한 v0.1을 2월에 공개했다. 아직까지 추가해야 할 기능이 산더미 같지만, 지속적인 개발을 통해 최종적으로 상용 수준의 리듬게임을 만드는 것이 목표이다.

이번 프로젝트에서 처음으로 본격적으로 이슈 트래커를 사용한다. v0.1 출시를 위해 시험적으로 사용하였고, 생산성을 증진시킬 수 있겠다는 판단하에 본격적으로 사용을 시작했다. 이슈 트래커는 GitHub Issues/Projects를 사용한다.

GitHub Projects에서 게임에 필요한 버그 픽스와 기능들을 목록화하였고, 항목을 이슈로 변환하여 내용을 구체화한다. 이후, 구체화한 내용을 게임에 구현하여 이슈를 해결한다.

이 과정에서 감명을 받은 구간이 있었다. 커밋 메시지에 Resolve #[이슈 번호]로 설정하면, GitHub에서 자동을 해당 이슈를 닫고, Status 레이블을 Done을 바꿔준다. 여기에서 자동화의 간편함을 느꼈다.

한창 머리 속이 어지러워 개발에 난향을 겪고 있었는데, 이슈 트래커를 사용함으로서 목표를 뚜렷히 정할 수 있었다.

현재는 채보 파일이 더 필요할 것 같다는 판단에, 채보 에디터를 중심으로 개발하고 있다. 갑자기 에디터를 만드는 이유는 기능 추가 및 테스트를 위해 테스트용 채보 파일이 있어야 하는데, 지금 채보가 거의 없는 상황이라 게임 개발 진행이 안 되고 있어서이다. 또 에디터가 있으면 컨텐츠도 미리 많이 만들 수 있고, 결정적으로 유저들 또한 채보를 만들 수 있어야 하기 때문이다.

Bouncy Rumble

해커톤을 위해 급조된 작품이지만, 내가 실제로 기획한 게임을 만들어 본 첫 게임이라 애정이 깊다. 이 작품 또한 이대로 끝내지 않고 계속 발전시킬 계획이다. 비록 RHYACTION LIVE로 인해 개발 우선 순위가 밀렸지만, RHYACTION LIVE가 어느 정도 완성 궤도에 올랐을 때 둘을 번갈아가며 개발할 계획이다.

또한, 언젠가 추가될 Bouncy Rumble의 온라인 기능을 위해 Netcode for GameObject를 배울 예정이다.

또 하나의 계획, Project Hope

예전부터 머릿 속에 아이디어만 있는 상태인 1인 3D TPS 게임이 있다. 이것도 공과 관련된 게임이며, 플레이어가 맵을 돌아다니기만 하는 게임이지만, 조작 메커니즘에 차별점을 두었다.

위의 두 프로젝트가 아직 개발 중에 있으므로, 아직 아이디어 상태에만 머물러 있다. 실제 개발로 이어질지는 아직은 미지수.

나의 오너캐, 시안

Alt text

2018년 8월부터 지금까지 이어진 나를 상징하는 오너 캐릭터, ‘시안’이다.

초창기부터 지금까지 여러 디자인 요소를 수정해오면서 퀄리티를 높이고 캐릭터성을 구체화하였다. 이로 인해 캐릭터가 거의 완성형에 가까워졌기에, 올해 들어서 큰 변경사항은 없다. 하지만 디테일을 조금 손보았다. 다소 날카롭게 느껴질 수 있는 눈매를 수정하고, 머리카락을 좀 더 길게 바꾸었다. 공의 경우, 공의 입체감을 더욱 살리는 방향으로 리디자인하였다.

또한, 캐릭터의 컨셉을 정리하여 Behance에 공개하였다. Behance에서 오너캐라는 표현을 쓰기엔 뭐해서, 페르소나 캐릭터로 대체했다. 이 과정에서 캐릭터, 나아가 나의 서브 슬로건 2개가 정해졌다. (참고로 메인 슬로건은 “For us”이다.)

이 캐릭터를 SVGator를 통해 애니메이션화하였다. SVG의 장점을 그대로 이어받아, 아무리 확대해도 깨지지 않는 무한대의 화질이 가능한 벡터 에니매이션인 것이 특징이다.

시연 웹사이트도 갈아엎었다. 여러 종류의 옵션을 사용자가 직접 선택할 수 있게 하고 싶었는데, 이를 바닐라 JS로만 작업하기엔 부담이 너무 컸다. 이러한 이유로, 새로운 시연 사이트에는 SolidJS를 사용하였다. SolidJS의 가볍고 정확히 동작하는 특징으로 인해, 기능을 부담스럽지 않게 구현할 수 있었다.

Alt text

이를 트위터에 공유한 후, SVGator 측에서 연락이 왔다. 작업물이 마음에 들어, 이를 공유하고 싶다는 내용이었다. 나는 기쁜 마음에 이를 수락하였고, 이후 SVGator의 트위터인스타그램에 공유가 되었다.

졸업, 그리고 취업 준비

Alt text

2023년 2월 17일, 4년간 다니던 금오공과대학교를 졸업했다.

이제 학교와는 이별이라니 아쉽다. 누구는 해방감을 느꼈지만, 나에겐 정이 든 곳이기에 더욱 아쉬움이 느껴졌다.

이제 백수라는 생각이 머릿 속에 떠나지 않아, 밤새 이력서와 포트폴리오를 정리했다. 이력서에는 게임, 그리고 웹 프로젝트로 채워졌다. 웹과 게임 사이, 방황하던 나의 모습이 그대로 담겨있는 듯 하다.

웹에 입문한 계기는 ‘기분전환도 할 겸 내 홈페이지를 만들어보자!’ 라는 로망을 실현하기 위함이었지만, 웹 시장이 급격히 커지고 동기들이 웹 쪽으로 진로 방향을 틀었을 때, 나 또한 웹 개발에만 몰두하였다.

하지만 내가 진정 하고 싶은 것은 게임 쪽이며, 이로 인해 4학년 2학기는 게임 개발에만 투자했다. 진작에 게임 쪽을 집중적으로 파지 않았다는 점은 아쉽다고 생각한다. 하지만 이렇게 폭이 넓게 가는 것도 나쁘지만은 않은 것 같다. 게임 쪽이 잘 안된다면 웹 개발자로 전향할 수도 있고.

지금도 웹 시장은 꾸준히 보고 있다. 이러나 저러나 웹 시장은 매우 크고, 사람이 인터넷을 가장 쉽게 접근할 수 있는 도구가 바로 웹이기도 하니까.

My New Gear.

MacBook Air M1을 구입했다. M2를 구입할까 싶었지만, 가격도 비싸고, 무엇보다 못생겼다. 첫 맥북이니만큼 저렴하게 가고 싶었고, 엄청 무거운 작업을 하지도 않을 것 같았고, 무엇보다도 Air 특유의 매끄럽고 깔끔한 디자인이 너무 탐났다.

Logitech Lift는 손목 통증이 계속 심해져서 생일 선물로 받았다. 현재 G304와 병행하며 사용 중이다.

2020년 회고록을 읽고

회고록을 작성하면서, 2021년에 작성한 2020년 회고록을 읽어보았다.

분명 2020년 회고록은 2020년 이전의 삶 전체를 포괄하는 글인데, 어째 2021년에서 2022년까지 총 2년의 기간만 다루는 이 글이 더 길어지는 이유는 뭘까. 그만큼 한게 많아서일까, 아님 그냥 잡설이 길어진 것 뿐일까…

리듬게임 프로젝트

2020년에 진행했던 리듬게임 microbeat는 폐기되었다.

프로젝트를 폐기해야겠다고 마음을 먹은 때는, 내가 Git을 다루다가 프로젝트 설정 파일 내용이 꼬이면서 프로젝트를 열 수 없어진게 된 것이 계기였다. 사실 이전 버전으로 복구하여 이어나가면 되지만, 소스 코드도 어지럽겠다해서 그냥 처음부터 다시 만들기로 했다. 지금 microbeat 소스 코드를 읽어보려고 해도, 도저히 읽을 수 없다…

지금 생각하면, microbeat의 실패는 방법론에 대한 맹신과 부적절한 사용이었다. 예를 들자면, 과거 회고록에 Game architecture with ScriptableObjects을 언급했는데, 지금 보면 이게 최악의 결정이였다. 스크립터블 오브젝트 사용으로 인해 프로젝트가 더 꼬이게 된 것이다. 이 방법론이 효율적으로 작동하는 경우는 따로 있는데, 내가 그 차이를 고려하지 못하고 무작정 맹신하여 사용한 것이 독이 되었다.

생각없이 도입한 것이여도 엄연히 방법론이기에 당장은 문제를 해결해 주긴 했지만, 이것이 장기적으로는 프로젝트를 유지보수하지 못하게 만들었다. 이 명언이 생각나는 단락이다.

망치를 들면, 모든 것이 못으로 보인다.

현재 개발 진행 중인 RHYACTION LIVE는 디자인 패턴을 도입하기 전, 최대한 생각을 해본다. 고심 끝에 지금까지 도입된 패턴은 다음과 같다.

전 회고록에서 나와 있듯이, RHYACTION LIVE라는 이름은 이전에 생각한 것을 그대로 활용했다. 아무래도 이 이름이 그냥 버려지기엔 아까워서였다. 지금 프로젝트 상태는 microbeat보단 유지보수가 훨씬 원활하지만, 아직 기능 면에서는 빈약하다. 하지만 GitHub 내 이슈 트래커를 통해 프로젝트 관리가 이루어져, 이전보단 수월하게 개발이 이루어지고 있다.

그래픽 디자인

이전부터 그래픽 디자인에도 흥미가 있었고, 그동안 디자인해왔던 아트웍을 Dribbble에 공개하였다.

방문해 본 사람들이라면 눈치 챘을 수 있을 텐데, 그냥 리듬게임 디자인으로 도배가 되어있다. 그만큼 내게 리듬게임은 좋아하는 게임, 그 이상의 의미를 갖는다. 프로그래밍도, 그래픽 디자인도, 심지어 취미인 EDM 프로듀싱과 디지털 드로잉까지 모두 리듬게임을 계기로 시작한 것이다.

끝으로…

연초에 일찌감치 작성을 마쳤어야 했을 회고록을, 미루고 미뤄서 5월이 되어서야 끝냈다. 특히 4월 한 달을 통째로 쉬느라 더욱 글을 마무리하는 것이 늦어졌다.

또한 2년만에 쓴 것을 감안하더라도 글이 너무 길어졌다. 사실 작년에도 회고록을 쓰려다가 미룬 것이 지금까지 오게 되었다. 이제는 어떤 이벤트가 있으면, 그 때마다 글을 쓰던지 해야겠다.

이제 한동안 취업 활동에 집중을 해야 할 때가 되었다. 앞으로 어떤 삶이 다가올지 막막하다…

감사 인사

저에게 잊지 못할 좋은 추억을 만들어주신 금오공과대학교, 경북글로벌게임센터, 경북테크노파크, 라이크 코퍼레이션, 스마일게이트 관계자 여러분, 그리고 버닝비버와 관련해서 계속 언급되는 지인분에게 진심으로 감사를 올립니다.

그리고 누구보다도 사랑하는 우리 가족, 친구 및 동기들, 그리고 여기까지 읽으신 여러분들에게 감사의 인사를 올립니다. 여러분 모두 행복하세요.

이전 게시글

2022 회고 (2/3): 컴퓨터공학과 학생의 졸업작품, Bookstamp
CYAN4S가 속한 팀 Chocolatte의 졸업작인 도서 커뮤니티 Bookstamp에 대한 이야기이다. Next.js, Firebase 기반의 웹앱과, TensorFlow 기반의 추천 AI를 개발하는 과정이 담겼다.

다음 게시글

비버잼 2023 참가 후기
2023년 8월에 개최된 비버잼에 참여한 후기이다. 팀 워라밸의 결성과, 게임 'Harmony Hood' 의 개발 과정을 비롯하여, 비버잼 동안 경험한 다양한 순간들을 담았다.