
나의 첫 번째 프로젝트 이전에 내가 어떻게 개발을 시작하게 되었는지 이야기 해보고자 한다.
중학생 시절에 프로그래밍을 처음으로 접한건 마인크래프트 서버 플러그인을 만들기 위한 Java였다. 이전에는 마인크래프트의 도시맵이나 탈출맵을 만들면서 무엇인가를 만들고 싶은 마음을 채웠다면, 이제는 친구들과 함께 놀면서 즐길 새로운 콘텐츠를 만들고 싶었던 것으로 기억한다. 당연히 프로그래밍의 기본 문법도 모르고 그냥 블로그에서 쓰라는 대로만 따라서 쓰고 거기서 조금씩 바꿔가면서 원하는 플러그인을 만들어 가려고 했다. 하지만, 기본적인 지식이 없는 상태에서 올바른 코드를 작성하여 하나의 플러그인을 만들기는 역부족이었다. 그래서 제대로 프로그래밍을 배우려고 "난 정말 JAVA를 공부한 적이 없다구요"라는 책을 읽으면서 공부를 시작했다.
그리고 조건문, 반복문 같은 기본적인 문법이 할 만 해지자, 이왕 프로그래밍 공부할거, 베이스로 많이 배우는 C언어부터 해보자고 마음 먹고, C언어 공부도 시작했다. 당연히 Hello World부터 출력하기 시작했고, C언어도 조건문, 반복문, 배열까지 공부했고, 포인터도 봤지만 당시에는 이걸 왜 이렇게 어렵게 써야되나 싶기도 했다. 그리고 프로그래밍을 어느정도 할만 하다고 생각한 나머지, 내가 생각만 했던 게임을 직접 만들어보면 어떨까 싶어서 게임 개발에 대해 알아보던 중, 유니티 엔진이라는 것을 보게되었다. 검색을 해보니 기본적인 것을 알려주는 튜토리얼이 많았고, 따라서 해보니 생각보다 할만하다고 생각하게 되었다. 그리고 C언어랑 C#이랑 뭐 크게 다르겠냐는 생각으로 게임 개발을 시작했다.
어렸을 때 부터 나는 기차를 좋아했다. 철도 위를 달릴 때 들리는 덜컹 덜컹 소리에 매력을 느꼈었다. 그래서 프로그래밍을 배우기 전에 철도 회사를 운영하는 게임을 만들면 어떨까 싶었다. 당연히 게임을 만들어 본 적이 없었기에 초반에 기획할 때는 지하철은 운행하면서 돈을 벌고, 그 돈을 모아서 회사를 인수하고, 그 이후로 노선을 자신이 원하는 역을 세우고 노선들을 연결해가며 확장해나가는 게임을 꿈 꾸었다. 하지만, 그 첫 번째 단계인 지하철 운행이라는 가장 큰 벽이 내 앞을 막았다. 이제 막 처음으로 뭔가를 만드려는 상황에 혼자서 3D의 기차와 맵을 모델링하여 구성할 능력이 있을리 만무하다. 그래서 처음으로 내가 원하는 그대로 만들 수 없다는 현실에 좌절감을 느끼고, 주변을 돌아보았다.
맨 처음으로는 한국전쟁 2030이라는 게임을 보면서 버튼을 간단하게 클릭해가며 성장하는 게임을 보면서 구역별로 터치를 해가며 수익을 거두고 회사를 운영하는 게임을 구상하게 되었다. 하지만 그 이후로 어떻게 나아갈지 그림이 그려지지 않았다. 그 게임을 구상하던 당시에는 친구들 사이에서 거지키우기가 유행하고 있었고, 나도 그 게임을 즐기고 있었다. 단순하게 정해진 화면 영역을 터치하고 아래에 있는 버튼들을 클릭해가며 아이템을 구매하고 성장하는 방식을 보면서 이런 시스템은 내가 만들만 하겠다 싶었다.
그래서 당장 유니티로 프로젝트를 만들고, "유니티 버튼" 이런 식으로 검색해가며, UGUI를 활용하여 UI를 구성해 갔다. 그런데 세로 화면으로 만들자니, 너무 메뉴들을 담기가 좁게 느껴졌고, 터치를 하며 수익을 거둘 영역이 좁다고 느꼈다. 그래서 화면을 가로로 눕히면서 다음과 같은 디자인이 나왔다.

지금 보면 그렇게 썩 좋은 배색과 디자인이 아니다. 하지만, 디자인에 대해 감각이 전혀 없던 그 당시에는 최선이었던 것 같다. 아트 리소스 자체도 내가 직접 그릴 능력도 없었고, 도구도 없었기 때문에 아는 친구에게 수익의 일부를 제공하겠다는 이야기를 하며 그림을 부탁했다. 고맙게도 필요하다고 얘기한 아트 리소스를 모두 그려주어, 개발 시작한지 약 100일이 지난 후에 출시를 할 수 있었다.
하지만 출시를 하고 난 뒤에 업데이트도 하면서 주변 사람들에게 홍보하고, 여러가지 홍보 채널에 나의 게임을 소개했지만, 그렇다할 다운로드수, 유의미한 수익을 볼 수 없었다. 무엇이 문제일까 고민을 하며 플레이스토어 게임 목록을 내려다보며 어떤게 사람들의 다운로드를 유도하는 데에 가장 주요한 역할을 할까 고민을 했는데, 역시 가장 먼저 보이는건 게임의 아이콘이었다. 일단 지하철이라는 소재는, 사람들에게 매우 익숙한 소재이기 때문에 아이콘만 잘 고쳐보면 되겠다 싶어서, 그림을 그려주는 친구에게 내가 원하는 느낌을 묘사했고, 그 친구가 찰떡 같이 그려주었다.

보다 깔끔해지고, 매력적인 아이콘 덕분에 하루에 50을 넘지 않던 다운로드 수가 수 백건 이상의 다운로드로 올라가며, 하루 최대 1900건까지도 올라가며 행복하게 작업을 이어가던 기억이 있다.
그 후로 반년이 지난 뒤에, 역시 그 당시에도 그 디자인은 마음에 들지 않았던 것 같다. 화면 배치가 비효율적이고 아름답지 못하다고 생각한 것 같다. 그래서 왼쪽 위, 아래에 있는 메뉴들을 좌우로 배치하며, 사용하지 않을 때는 접어둘 수 있도록 UI 디자인을 한 번 크게 개편했다.


화면을 터치할 수 있는 영역을 크게 늘리고, 좌우에 필요할 떄만 메뉴를 열고 닫을 수 있도록 설계하며, 우측 상단은 베너광고를 위한 자리로 자리잡았다. 이 작업을 한 뒤에 효과가 어땠는지 기억이 없는 것을 보면, 성과가 크지는 않았을 것으로 짐작된다.
다시 출시 초반으로 돌아와서, 모든 노선을 한번에 담아서 출시하는 것은 불가능하다는 것을 알고 있었기 때문에, 수도권의 1~4호선을 먼저 게임에 탑재하여 출시를 하고, 그 이후로 천천히 업데이트를 해가면서 노선을 추가해갔다. 그런데 역시 프로그래밍이 익숙한 상태가 아니었기 때문에 재사용 가능한 코드, 확장성이 있는 코드, 효율적인 코드, 함수/변수나 클래스에 대한 명명 규칙 같은 것들을 고려하지 못하고 그저 구현해 내기 바빴다. 이 코드들은 전역 이후에 게임을 고치고자 소스 코드를 다시 볼 때 나에게 자괴감을 선물했다. 이미 서비스 중인 게임이기 때문에 모든 코드를 다 갈아 엎을 순 없었지만, 너무 확장성과 재사용 가능성이 낮은 부분들, 최적화에 문제가 되는 코드들을 하나 둘 씩 갈아엎고, UI도 아이콘 등 아트 리소스를 포함하여 전부 갈아 엎기로 결정하였다..