0. 게임은 무엇일까?

숱한 연구 서적이 시중에 널려 있지만 보통 이런 주제를 갖고 쓰여진 책들은 대부분 어렵습니다. 알 수 없는 고난이도의 단어를 선택하는 게 일수고 그것을 해독하는 것만으로도 진을 빼게 만들죠. 잠이 오지 않는 밤, 얼른 잠들기 위해 선택하는 책들 중 하나라고나 할까요. 물론 세계에서 영향력 있는 인사들이 쓴 책이니 게임과 연관된 분야에서 일을 할 생각이라면 한번쯤 읽어봄직은 하겠습니다만, 굳이 그런 책들을 읽어야만 그에 대한 해답을 얻을 수 있는 건 아니거든요.

책을 펼쳐 두고 옆에는 전자사전을 채로 머리에 들어오지도 않는 책 끙끙 싸매고 앉아 있어봐야 나오는 결론은 하나입니다. '게임은 무엇일까?' 결국은 '즐길거리'라는 거죠. 한명이든 여러 명이든 게임이라는 것을 행함으로써 어떤 즐거움을 얻는 일종의 도구이자 수단이라는 이야기입니다. 이런 간단한 논리를 수백 장의 종이에 풀어 헤쳐 놓으니 읽는 사람도 대단하지만 쓰는 사람도 참 대단하죠?

사람들이 게임을 통해서 즐거움을 얻는 방법은 참 다양한 것 같습니다. 사실 개발자가 A라는 생각으로 게임을 만들었다 할지라도 게임을 즐기는 사람 입장에서는 B를 통해 즐거움을 얻을 수도 있고 C를 통해 얻을 수도 있거든요. 예를 들자면 호쾌한 액션을 통해 즐거움을 추구하는 사람도 있고 드라마틱한 스토리를 통해 즐거움을 얻는 사람도 있을 것이고요.

방법이야 어쨌든 귀결되는 결론은 딱 하나입니다. 어쨌든 '재미', '즐거움'이라는 거죠. 게임은 바로 그것입니다. 오로지 그것만을 위해 존재하는 것이에요. 그런데 일반 명사로써의 '게임'과 달리 이 글에서 다루고자 하는 것은 컴퓨터에서 실행되는 컴퓨터 게임에 대한 것입니다. 왜냐면 게임의 본질을 다룰 것이 아니라 게임 프로그래밍에 대해서 다룰 것이거든요.


1. 그렇다면 게임은 어떻게 만들어지는가?

많은 사람들에게 재미를 선사하기 위한 게임을 만들려고 지금 이 순간에도 세계의 수많은 게임 개발자들은 머리를 싸매고 있을 것입니다. 누군가 우연히 터트린 아이디어가 그 팀의 개발 소스로 채택되고 실제로 구현 과정을 거쳐 세상에 공개되겠죠. 그 과정에는 수십 명의 사람들이 펼쳐 낸 생각과 결과물이 있을 것이고 적게는 수억, 많게는 수백 억에 이르는 돈이 쓰일 것입니다.

게임에 대한 관심이 높아지면서 어떤 사람들이 모여 게임을 만드는지에 대해서도 꽤나 많이 알려졌습니다. 크게 나눠서 '게임 디자이너(Game Designer)', '게임 프로그래머(Game Programmer)', '게임 그래픽 디자이너(Game Graphic Designer)'가 있고 각각의 분류 안에서도 정확히 어떤 업무를 담당하느냐에 따라 세부적으로 나뉘어지죠.

사실 이름만 딱 들어도 각 분류에 해당하는 사람들이 어떤 일을 하는지는 명확합니다. '디자이너'는 흔히 '기획자'라고 불리우고 게임의 세부적인 데이터나 컨텐츠 구성을 담당하죠. '프로그래머'는 '기술자'로써 컴퓨터가 인식할 수 있는 언어를 통해 실제 구현하는 일을 담당합니다. '그래픽 디자이너'는 게임에서 쓰일 그래픽 리소스를 제작하는 일을 담당하고요. 간단하죠?

다른 분야는 그렇다 치고 제가 이야기 하고 싶은 것은 '게임 프로그래머' 입니다. 게임 프로그래밍을 공부하는 학생으로써 오늘 따라 이 직업에 대해 하고자 하는 말이 넘쳐 흘러서 말이죠. 기술적인 부분을 기대하셨다면 이제라도 접어 두시는 좋을 것 같고요. 저는 좀더 본질적인, 일반적인 이야기를 할 생각이랍니다.

자, 그럼 얼추 프로그래머가 하는 일에 대해서는 감을 잡으셨을테니 본격적으로 게임 프로그래머에 대해서 이야기 해 볼까요? 아직 감을 못 잡았다고요? 그래도 그냥 넘어가세요. 어차피 기술적인 부분에 대해서는 모기 발가락에 낀 때 만큼도 이야기 하지 않을테니까요.


2. 게임 프로그래머는 팀에서 무엇을 하는가?

위에서도 짤막하게 이야기 했지만 게임 프로그래머는 '그들만의 언어'라고 해도 과언이 아닐 복잡하고 짜증나는 언어로 컴퓨터와 대화해 가면서 컴퓨터 위에 그들이 구상한 게임을 구현해 내는 역할을 합니다.

일반적으로 게임 실행 아이콘을 눌러서 서버에 접속해서 아이디와 패스워드를 입력하고 캐릭터를 선택한 후 월드에 등장하는, 그런 모든 과정들을 그냥 생각처럼 구현해 내는 것이 아니라 컴퓨터가 인식할 수 있는 언어로 타이핑 해서 얻어내는 것이죠.

만일 프로그래머가 사용하는 프로그래밍 언어에 대해 조금도 모르는 사람이 그들의 작업 내용을 본다면 전혀 이해하지 못할 수준이라고나 할까요. 뭐, 그렇다고 게임 프로그래머가 되고자 하는 분들이 지레 겁 먹을 필요는 없습니다. '0101'로 이루어진 기계어 수준에서 한참이나 급이 높은 언어를 사용하니까요. 그렇다 하더라도 일반인들은 이해할 수 없겠죠?

어찌됐든. 그럼 프로그래머는 기획자가 낸 아이디어와 데이터를 토대로 열심히 구현하고 그래픽 디자이너가 준 그래픽 리소스들을 실제로 구동시켜 보는 것만 하면 되는 것일까요? 네, 그것만 하면 됩니다. 그것만 하면 충분히 월급 받고 회사에서 떵떵 거리며 살 수 있어요. 프로그래머는 나름 '귀하신 몸'이고 또 그러한 프라이드로 사는 직업이기 때문에 이 일을 완벽하게만 해 낸다면 충분하죠.

문제는 게임 프로그래머의 본질적인 것에 달려 있습니다. 한마디로 저것만 해서는 게임 프로그래머의 본질에 다가섰다고 말할 수 없다는 것입니다. 돈 벌어 먹고는 산다면서요? 네, 먹고 살 수는 있습니다. 다만 자신이 빨리 질릴 뿐입니다. 재미를 빨리 잃을 것이고 일을 하면서도 '내가 왜 이걸 하고 있나' 하는 자괴감에 빠져들 것입니다.

그럼 게임 프로그래머의 본질은 무엇일까요? 그것은 바로 그냥 '프로그래머'가 아니라 앞에 붙는 수식어인 '게임'에 숨겨져 있습니다. 사실 저렇게 구현해 내는 것은 굳이 '게임 프로그래머'가 아니라 일반 '프로그래머'라고 해도 해당 분야에 대해서 조금만 연구하면 해 낼 수 있는 일입니다. 굳이 앞에 '게임'이라는 말을 붙이지 않아도 그 역할에 대해서는 의미가 명확해진다는 이야기죠. 그렇다면 왜 굳이 '게임'이라는 말을 붙여 가면서 괜히 단어의 길이만 늘릴까요. 그것은 게임 프로그래머의 본질이 그냥 프로그래머와는 다르기 때문입니다.

글의 시작에서 우리는 게임이 무엇인지에 대해 이야기 했습니다. 게임은 즐길거리라고 했죠. 과정이 어쨌든 무엇을 보여주든 어쨌든 재미를 추구하는 것이 게임이라고 했습니다. 그렇다면 게임 프로그래머는 무엇일까요? 본질은 무엇일까요? 의미가 잡힙니다. 네, 바로 그것입니다. 아마 다들 예상하셨을 거에요.

게임 프로그래머는 그저 프로그래밍 언어를 타이핑 하는 직업이 아니라 '게임'을 구현하는 직업입니다. 그냥 프로그램 하나를 만드는 게 아니라 재미있는 프로그램을 만들어야 하는 직업이란 이야기 입니다. 일반 오피스 프로그램을 만드는 것처럼 편리하고 기능 좋은 목표를 넘어서서 '재미'라는 매우 감성적이고 추상적인 목표를 향해 달려야 하는 특이한 케이스의 프로그래머 입니다.

그럼 조금씩 혼란이 올지도 모릅니다. 게임의 컨텐츠를 제작하고 데이터를 만들어 내는 것은 프로그래머가 하는 일이 아니라 기획자가 하는 일이라고 분명히 밝혔으니까요. 즉, 재미라는 것이 프로그램 자체에서 나오는 게 아니라 컨텐츠로부터 나오는 것인데 그 영역에 프로그래머가 침범할 수 있는가에 대한 혼란이 옵니다.

그런데 우리가 여기서 주목해야 할 것은 '재미'라는 단어가 가지는 의미입니다. 앞서 이야기 했던 것처럼 '재미'라는 것은 백이면 백, 천이면 천 그 기준이 모두 다른 모호하고 추상적인 단어입니다. 비슷하지만 그 어떤 조그마한 차이 때문에 매우 재미있고 별로 재미없다는 평가로 확연히 갈릴 수 있는 게 '재미'라는 존재입니다. 즉, 기획자가 아무리 날고 기는 천재라고 할지라도 이 세상에 존재할 수 있는 수많은 재미 리소스를 창출해 낼 수는 없다는 것입니다.

게임은 재미가 가장 중요하지만, 게임을 만드는 입장에서는 상업성을 포기할 수가 없습니다. 어쨌든 그들도 먹고 살기 위해 노력하는 것이니까요. 돈을 벌기 위해서 취할 수 있는 방법은 많습니다. 교묘하게 어쩔 수 없이 돈을 쓰게끔 만들 수도 있고요. 하지만 역시 가장 정당하고 비난없이 돈을 벌 수 있는 것은 '엄청 재미있게 만들어서 많은 사람들이 할 수밖에 없도록 하는' 방법이겠지요. 이렇기 때문에 재미라는 건 게임을 하는 입장에서도 중요하지만 만드는 입장에서도 매우 중요한 존재입니다.

그럼 앞서 말한 두 가지 사항을 살짝 조합해 봅시다. 팀에서 많아 봐야 10명도 안될 기획자들이 세상에 존재하는 수많은 재미 리소스들을 창출해 수 없습니다. 그런데 상업성을 위해서라도, 또 게임을 즐기는 사람들의 만족도를 위해서라도 많은 재미를 줄 수 있게끔 게임을 만들어야 합니다. 결국 많은 사람들의 만족도를 위해서 많은 사람들이 재미 리소스를 가져 올 수 있다면 그것은 분명 만족스러운 결과를 만들어 낼 것이라는 결과에 도달하게 됩니다.

게임 프로그래머는 그저 타이핑만 하는 기술자가 아니라 재미를 위해 노력하는 엔터테이너가 되어야 한다는 이야기 입니다.


3. 그럼 다른 파트에 비해 많은 노력을 기울여야 하는가? 쓸데없이?

앞서 말한 이야기만 갖고는 제대로 설명이 되지 않는 것이 있습니다. 프로그래밍만 해도 돈을 잘 버는데 뭣하러 더 많은 시간을 할애해서 아이디어까지 뿜어내야 하는 것이냐 하는 문제입니다. 회사에서 게임을 많이 팔든 적게 팔든 어쨌든 자신에게 돌아오는 수익면에 있어서 큰 차이가 없다면 더 많은 노력을 기울일 필요가 없다는 문제제기를 수도 있거든요. 만일 수익이 더 커진다면 누가 시키지 않더라도 알아서 할텐데, 그렇지 못한 가난한 회사가 많은 환경을 생각해 봤을 때 모든 회사에 그런 제도를 기대할 수는 없으니까요.

그런데 솔직히 말해서 이런 마인드를 가진 게임 프로그래머가 있다면 그 사람은 하루 빨리 이 분야를 떠나는 게 좋을지도 모릅니다. 왜냐면 앞서 이야기 한 것은 수익면을 떠나서 게임 프로그래머로써 정의되는 의무와도 같은 이야기이니까요. 게임 프로그래머가 게임의 본질을 떠나서 그저 타이핑만 하는 꼭두각시 노릇을 하겠다면 앞에 '게임'이라는 말을 달고 있을 필요가 있을까요. 그냥 프로그래머 하시면 됩니다.

'프로그래머인데 왜 아이디어를 내야 하느냐'가 아니라 '나는 프로그래머이기 이전에 게임을 개발하는 사람이니까 어떻게 하면 재미있을 있을지 생각해 봐야지!'가 정상적인 마인드 입니다. 프로그래밍 언어로 구현하는 것은 기본이고 구현하는 과정에서 불현듯 떠오르는 아이디어를 젖히지 않고 팀원들과 공유하며 더 나은 재미를 위해 계속 노력하고, 단지 기획자의 영역이니 네가 알아서 해라는 식이 아니라 좀더 완성도 있고 고도의 재미를 추구할 수 있도록 게임의 아이디어를 내는 첫 단계부터 함께 하는 것이 훌륭한 게임 프로그래머라는 겁니다.


4. 마치며

어쩌면 주제넘은 참견일지도 모르겠습니다. 사람에 따라 자신이 선택한 직업을 바라보는 기준은 다를 수도 있으니까요. 저는 '게임 프로그래머'라는 직업에서 '게임'에 좀더 집중을 했다면 어떤 이는 '게임'보다는 기술적인 면을 더 추구할 수도 있을 것입니다. 그런 분이 이 글을 읽는다면 정말 기분 나쁜 잔소리로 느낄지도 모르겠습니다.

하지만 어떤 이유가 나온다 하더라도 '게임 프로그래머'는 어쩔 수 없이 '게임'을 만드는 사람입니다. 기술적인 면이 아무리 뛰어난다 한들 재미없는 게임은 사람들에게 외면받기 마련입니다. 게임이 많이 팔리든 적게 팔리든 그것은 회사의 사정이라는 냉혈한에겐 먹히지 않을 소리겠습니다만, 단적으로 말해서 자신이 만든 게임이 되면 좋지 못 돼서 좋을 건 하나도 없거든요.

저는 하루에도 수십 번씩 게임 웹진을 둘러보며 많은 게임 유저들의 의견을 접하고 새로운 소식을 입수하고 있습니다. 그리고 많은 분들께서 '한국산 게임은 재미없다'고 말할 때마다 참 가슴이 아픕니다. 개발자들의 노고를 잘 알기에 그러한 악평이 쏟아지면 마음이 미어집니다.

하지만 날이 갈수록 훌륭한 게임들은 더 많이 등장하고 있고 그러한 트렌드에 한국 게임 개발자들이 따라가고 있지 못한 것은 아닌가 하는 생각도 듭니다. 그래서 마냥 그들의 편을 들어줄 수가 없습니다. 게다가 또한 그러한 위치에 설 것이기 때문에 마냥 자기 보호만을 할 수는 없습니다. 어쩌면 이 글은 다른 누구보다도 제게 필요한 글이 아닐까 싶을 정도입니다.

현업에 계시는 분들이 재미있는 게임을 개발하기 위해 노력하는 만큼, 저 역시 재미있는 게임을 만들 수 있는 프로그래머가 되기 위해 노력을 기울일 것입니다. 그냥 프로그래밍 언어를 공부하는 직업이 아니라 그것을 이용해서 '재미'를 만드는 직업! 그러한 프라이드를 느낄 수 있도록 노력할 것입니다.

그러니 국내 IT 개발 환경이 너무 좋지 않다고 불평만 하지 말고 스스로도 재미있는 게임을 만들기 위해 노력했으면 좋겠습니다. 언젠가는 이러한 노고를 알아주리라 희망을 가지며 :)

덧. 하지만 국내 IT 개발 환경은 정말이지 너무 혹독한 것 같습니다. 위에서 등 쳐 먹지 말고 힘들게 일하는 우리 개발자 분들에게도 많이 베풀어 주세요 ㅜㅜ
profile image

정보를 인지할 수 있는 가장 짧은 시간은 126개/1초. 그러나 타인의 말을 이해하는 것은 초당 40개가 한계. 인생이 앞으로 50년 남았다면, 앞으로 생각할 수 있는 것들의 개수는 47304000000. 지금 이 순간도 시간은 흐른다.