크레이지 아케이드, 리그 오브 레전드, 배틀그라운드. 모두 우리가 어릴 때 혹은 지금까지 즐겨 했던 게임이다. 혹시 이 게임 속 캐릭터 동작은 어떻게 구현되는지, 실제 플레이가 어떤 과정으로 작동되는지 호기심을 가져본 적이 있는가? 지난 7일, 이러한 궁금증을 해결할 수 있는 자리가 마련됐다. 소프트웨어 개발연구원 주최의 <게임 프로그래머 시작하기!> 강연에 ‘크레이지 아케이드’를 개발했던 넥슨코리아 유창곤 연구원이 강연자로 나선 것이다. 주제가 게임 프로그래밍이었던 만큼 노트북에 코딩 프로그램을 켜놓고 강연을 듣는 학생들이 많았다.
 
유창곤 연구원은 게임을 만든다는 것이 어떤 의미인가로 운을 뗐다. 유저가 게임에 만족할 때 프로그래머는 성취감을 느낀다. 또는 자신의 아이디어를 적용한 게임이 출시될 때 자아를 실현할 수 있다. 그는 이러한 의미의 중요성을 강조하기 위해 게임 회사에서 근무했던 경험을 이야기하기 시작했다. 그는 “개발자의 아이디어가 무시되고 회사 측의 생각대로 프로그래밍해야 할 때가 힘들다”라고 전했다. 프로그래머의 아이디어가 실현되지 못하는 사례는 또 있었다. △기획자 △아티스트 △개발자 간의 의사소통에 문제가 발생하는 것이다. 그는 자동차 레이싱 게임을 예로 들어 이를 설명했다. 기획자가 아티스트에게 파란색 스포츠카를 만들어달라고 부탁하면 아티스트가 이를 제작해 프로그래머에게 넘긴다. 그런데 후에 기획자가 확인해보니 자신이 원하던 색과 모형이 나오지 않는 경우가 있다. 이때는 기획 단계부터 다시 수정해야 해 이미 프로그래밍을 마친 개발자는 허탈하다는 감정을 느낄 수밖에 없다. 이러한 어려운 상황에 부딪힐 때 앞서 말한 게임을 만드는 의미가 이를 극복할 수 있는 원동력이 된다고 설명했다.
 
곧이어 2D 격투기 게임을 예시로 프로그래밍 과정에 대한 설명이 시작됐다. 격투기 게임 설계는 크게 4가지 과정으로 나눌 수 있다. 먼저 ‘키보드 입력값 처리’ 과정이다. 키보드를 통해 입력한 대로 캐릭터가 동작하도록 애니메이션을 설정하고 그 동작이 플레이에 적용되도록 하는 과정이다. 다음으로 ‘캐릭터 충돌 처리’ 과정이 뒤따른다. 캐릭터의 충돌 영역과 공격받은 캐릭터의 영역이 겹칠 때 ‘데미지 처리’를 통해 HP가 줄어들게 해야 한다. 충돌 영역이 겹치는 정도에 따라 데미지량을 다르게 설정하는 디테일이 필요하다고 했다. 마지막으로 ‘승패 처리’ 과정은 플레이하는 동안 축적된 데미지량을 바탕으로 판정을 내리는 작업이다.
 
강연이 후반부에 접어들자 그는 현재 게임산업의 트렌드에 대해 안타까움을 표했다. 유창곤 연구원은 “다양한 제작 툴이 등장하면서 개발에 대한 접근성이 높아진 것은 좋은 현상이나 제작에 대한 근본적 이해가 부족한 경우가 많다.”고 전했다. 제작 과정을 모두 배우고 각 과정이 실제 플레이에서 수행하는 역할을 파악하는 것이 게임 프로그래밍에 대한 근본적 이해라고 당부했다.
 
강연에 참여한 학생들은 대부분 게임개발자를 지망하는 학생들이었다. 임우영(전기컴퓨터공학 18) 씨는 “게임 프로그래머 지망생이라 게임 프로그래밍 학원에 다니고 있는데 유사한 내용이 많았다”라며 “강연자분이 말해주신 구체적 예시들이 후에 포트폴리오를 준비할 때 도움이 될 것 같다”라고 말했다. 게임 개발에 대한 구조를 알아간 것이 좋았다는 의견도 있었다. 박정호(전자공학 12) 씨는 “프로그래밍의 전체적 구조를 알기 쉽게 설명해줘서 좋았다”라는 말을 전했다.
저작권자 © 채널PNU 무단전재 및 재배포 금지