초등학생 때 만든 게임들을 리마스터해 보았다
초등학생 때 필자는 친구와 함께 GameMaker™ 8.0을 이용해 허접한 자작 게임을 만들곤 하였다. 개발 관련 지식은 당연히 전무했지만, 블록코딩 위주로 이루어진 툴이었기에 입문용으로는 제격이었다. 그렇게 서로 자신이 만든 게임을 공유하며 놀려고 초딩들의 컴퓨터 도전기라는 카페를 만들었다. 한때 회원수 600명을 웃돌 정도로 성장했지만, 우리가 중학생이 된 이후로는 점차 관리가 소홀해졌다. (이름값 하는 카페…?)
아무튼 당시에는 정말로 순수한 흥미와 열정으로 개발을 하곤 하였다. 그 무렵부터 ‘프로그래머’가 되겠다는 필자의 꿈이 태동했다고 생각한다. 당시에는 전혀 몰랐지만, 그 시절의 컴퓨터공학과는 비인기학과였고 개발자는 기피 직업 중 하나였다고 한다. 그로부터 불과 몇 년 사이에 세상은 변해 컴퓨터공학과의 입결은 하늘을 찌르고, 개발자는 유망 직종이 되었으며, 어디서든 쉽게 개발자 커뮤니티를 찾을 수 있게 되었다.
이런 이야기를 갑자기 왜 꺼내게 되었냐 하면, 얼마 전에 필자가 과거에 만들었던 자작 게임들 중 그나마 봐 줄 만한 것들을 추려서 필자의 GitHub에 업로드하면서 과거를 회상하게 되었기 때문이다. 당시에는 나름 괜찮게 만들었다고 생각한 게임이, 성장하고 나서 지금의 시점에서 다시 보니 모든 것이 허술하고 버그투성이였다. 그림판으로 끄적인 듯한 스프라이트며 의도한 대로 작동하지 않는 오브젝트며…. 그럼에도 어찌저찌 돌아가는 게임을 플레이하며 추억에 잠겨있던 중 문득 어떤 생각이 들었다.
지금의 나라면 이 게임들의 완성도를 더 높일 수 있지 않을까?
그렇게 무작정 미완성 게임이나 버그가 많은 게임들을 붙잡고 뜯어고쳐보기로 했다. 일명 ‘리마스터’. 리마스터라고는 해도 외견은 거의 그대로 유지시킨 채 버그를 잡고 부족해 보이는 점들을 보완하는 것뿐이다. 정신적으로 힘든 상황에서 점점 꺼져만 가는 개발에 대한 열정의 불씨…. 그렇지만 이대로 아무 것도 하지 않는 것보다는 비록 보잘것없더라도 뭐라도 할 수 있는 걸 해 보자는 생각에서였다.
「터치터치」 리마스터
첫 리마스터 작품으로 고른 것은 필자가 2011년 2월에 개발한 터치터치라는 게임이다. 마우스나 터치패드를 이용하여 커서를 움직여 랜덤하게 출몰하는 빨간 버튼을 재빨리 눌러 없애야 하는 게임이다.

두더지잡기 놀이에서 영감을 얻어 만들었던 이 게임은 낮은 그래픽 퀄리티는 둘째로 치더라도 당시의 미숙했던 구현 능력으로 인한 많은 버그를 안고 있었다. 빨간 버튼은 1.5초 안에 누르기만 하면 되는데, 간혹 1.5초가 지나지 않았는데도 게임 오버가 되기도 했다. 심지어는 실수로 지뢰 버튼을 눌렀을 때 100코인을 지불하지 못 하면 게임 오버가 되는데, 코인이 부족해도 그냥 게임이 진행되기도 했다. 이외에도 자잘한 버그들과 필요없는 기능들이 들어있었다.
우선 창 크기는 마우스나 터치패드로 버튼을 찾아 누르기 용이하도록 기존의 작은 창 크기를 유지하기로 했다. 다소 유치하고 초라해 보이는 스프라이트들 역시 나름 그 시절의 열정과 추억이 담겨있는 것들이기에 수정은 최소한으로 하고, 가능한 한 기존의 것을 그대로 유지하기로 했다. 대신 버그 수정이나 시스템의 체계화 등 게임의 기능적인 부분을 다듬는 데에 치중하기로 했다. 단순한 구조의 게임이었기에 3시간여 만에 완성할 수 있었다.
보다 자세한 내용은 필자의 GitHub에서 확인할 수 있다. 게임 개발 파일과 exe 파일도 다운로드 가능하다.
「클라우드 어드벤처」 리마스터
두 번째로 고른 것은 필자가 2011년 9월에 개발한 클라우드 어드벤처라는 게임이다. 맵 안에 있는 별을 모두 먹은 다음, 구름 블럭을 밟고 꼭대기로 올라가면 되는 게임이다.
이 게임 역시 너무나도 많은 버그를 가지고 있었지만…. 게임을 진행하는 것 자체에는 큰 문제가 없었다. 의도와는 다르게 작동하는 게임 속 구름 블록들, 그러나 그런 엉망진창인 블록들을 이용해서 게임을 클리어해내고 마는 플레이어. 이것이야말로 ‘버그가 아니라 기능입니다 :)’ 의 표본 아닐까?
그럼에도 필자는 본디 의도했던대로 게임이 진행되는 모습을 보고 싶었다. 그렇게 며칠 동안 조금씩 버그를 고쳐 나갔다. 그러면서 과거의 자신이 왜 이런 기초적인 문제들을 해결하지 못 했는지 의문이 들었다. 이에 대해 필자는 개발에 대해 문외한이었던 어린 시기에 블록코딩(게임메이커)으로 코딩에 입문했고, 그 이외의 다른 기초지식을 배우지 못 했기 때문이라고 생각했다. 기본적인 컴퓨터 언어의 문법과 실행 원리만 파악하고 있었어도 그런 식으로 코드를 짜지 않았을 터이다. 어찌 됐든, 지금은 그 때보다는 성장했으니 그걸로 된 것 아닐까.
보다 자세한 내용은 필자의 GitHub에서 확인할 수 있다. 게임 개발 파일과 exe 파일도 다운로드 가능하다.
개발 환경
필자는 기존에 개발했던 게임들을 앞으로도 몇 개 더 리마스터할 생각이다. 위의 게임들은 모두 GameMaker™ 8.0 (.gmk 확장자), 그러니까 구 버전 게임메이커로 개발한 것이다. 비록 지금은 해당 버전은 사후 지원이 끊긴 지 오래이지만, 리마스터링 또한 해당 툴로 진행하고 있다. YoYo Games는 2012년에 기존의 게임메이커를 리뉴얼한 GameMaker: Studio™ (.gmx 확장자)를 출시했고, 이어서 2017년에는 GameMaker™ Studio 2 (.yyp 확장자)를 출시했다.
각자 다른 확장자를 가지고 있기도 하고, 소스 파일 변환 과정을 거치지 않는 한 이들은 서로 호환되지 않는다. .gmk 파일을 .gmx 파일로, 혹은 .gmx 파일을 .yyp 파일로 변환하는 것은 비록 완벽하지는 않지만 공식 기능으로서 지원된다. 그러나 .gmk 파일을 .yyp 파일로 직접 변환하는 것은 불가능하다. 그럼 .gmk 파일을 .gmx 파일로 변환한 다음 그것을 다시 .yyp 파일로 변환하면 되는 것 아니냐고 생각할 수도 있지만, 두 번의 변환을 거친 파일의 품질을 보장할 수 없을 뿐더러, 10년도 더 전에 작성한 스파게티 코드로 점철된 소스 파일을 갈아엎어야 하는 것은 매한가지이다.
애초에 기존 작품들의 소스 파일이 GameMaker™ 8.0, 그러니까 구 버전 게임메이커에서 쓰여졌고, 필자에게도 아직은 구 버전이 더 익숙하기 때문에 리마스터 작업은 앞서 말했듯 구 버전 게임메이커로 진행하기로 했다.
앞으로의 계획
무릇 소프트웨어 엔지니어를 꿈꾸는 자는 끊임없이 도전하고 항상 새로운 것을 배워야 하기 마련이다. 그러나 필자는 그렇게 하지 못 하고 있다. 아니, 안 하고 있다. 어릴 적 만져본 게임메이커, 대학교 교양 강의 수준에 머물러 있는 C언어와 Python 지식, 반 년 정도 하다가 때려친 Android 앱 개발 정도가 지금의 필자가 가진 지식의 전부이다. 이래서야 앞으로 전공을 살려 일하는 건 무리다. 배우려는 의지가 없는 사람이 무슨 발전이 있겠는가.
다른 사람들이 매일 실력을 갈고 닦고 스펙을 쌓아가는 와중에, 필자는 또 엉뚱한 계획을 세운다. 바로 GameMaker™ Studio 2를 이용하여 Windows 환경과 macOS 환경에서 모두 구동되는 횡스크롤 RPG 게임을 개발하는 것이다. 연내에 베타 버전을 완성시키는 것이 목표이다. 사실 이것은 10여 년 전 중학생이었던 필자의 꿈이기도 했다. 마침 휴학도 했겠다 남아도는 것이 시간이니 지금이야말로 이 목표를 이루기에 적기가 아닐까. 아무리 지금의 ‘나’가 못났다 해도 10여 년 전의 ‘나’보다는 많이 성장했다고 생각한다. 글은 이 쯤에서 마무리. 조만간 새로운 포스팅에서 만납시다.
초등학생 때 만든 게임들을 리마스터해 보았다
https://blog.edward.moe/2022/09/19/gamemaker-works-remaster-1/