Why Game Development — 게임을 좋아하던 사람이 만드는 사람이 되기까지
정영기 · C++ Game Client / Unreal Gameplay Programmer
게임을 좋아했던 마음을 직접 배우고 만드는 일로 옮겨온 기록입니다.
어릴 때는 게임을 그냥 재미있어서 했습니다. 클레이와 레고로 무언가를 만들고 그림을 그리는 일도 좋아했지만, 그 두 가지가 게임개발이라는 진로로 이어질 거라고는 생각하지 못했습니다. 지금은 제가 즐겼던 경험을 직접 만드는 쪽에서 일하고 싶어 C++ 게임 클라이언트와 Unreal Gameplay를 공부하고 있습니다.
게임 속 세계와 함께했던 시간이 오래 남았습니다
메이플스토리에서 들었던 리스항구와 엘리니아의 음악은 지금도 어린 시절을 떠올리게 합니다. 낮은 레벨의 전사로 호기심에 슬리피우드 던전 깊숙이 들어갔다가 쉽게 빠져나오지 못한 적도 있습니다. 지금도 함께 게임하던 친구들과 그 이야기를 꺼내면 웃습니다. 게임 속 세계를 돌아다니던 시간이 그만큼 오래 기억에 남았습니다.
군 복무 중에는 힘든 일과가 끝난 뒤 동기·후임·선임들과 브롤스타즈를 즐기곤 했습니다. 짧게 게임을 하며 함께 웃던 시간이 하루의 피로를 내려놓는 시간이었습니다. 당시에는 특별한 의미를 붙이지 않았습니다. 그냥 재미있어서 했습니다.
돌아보니 제가 좋아했던 건 새로운 세계를 탐험하는 즐거움과 사람들과 같은 순간을 나누는 경험이었습니다. 여기에 어릴 때부터 좋아하던 ‘직접 만드는 일’이 이어졌습니다. 저도 누군가에게 그런 시간을 남기는 게임을 만들어보고 싶었습니다.
좋아하는 마음을 실제 진로로 옮겼습니다
전역 후에는 컴퓨터공학과 편입도 고민했습니다. 하지만 교육비와 생활비를 직접 마련해야 했고, 우선 게임을 만들어볼 수 있는 길부터 찾아보기로 했습니다. 물류센터에서 일하며 교육비를 모으고 여러 교육과정의 커리큘럼과 수료생 포트폴리오를 비교했습니다. 직접 경험한 과정이 맞지 않으면 다른 선택지도 찾아봤습니다.
그렇게 쥬신게임아카데미에서 C++ 게임 클라이언트 개발을 배우기 시작했습니다. 수원에서 서울 가산디지털단지까지 통학하며 WinAPI, MFC, DirectX9, DirectX11 순서로 프로젝트를 진행했습니다. ‘게임개발자가 되고 싶다’는 말이 매일 코드를 읽고 무언가를 구현하는 일로 바뀐 시기였습니다.
학원에 다니던 때에는 주변에 있는 게임회사도 직접 찾아가 보고 싶었습니다. 그중 한 곳이 넷마블이었습니다. 건물 앞에서 사진을 남기며, 언젠가 저도 게임을 만드는 팀에서 맡은 일을 해낼 수 있도록 지금 배우는 것들을 제대로 쌓아가고 싶다고 생각했습니다. 제게는 게임회사를 멀리서 바라보기만 하던 시기를 지나, 실제로 취업을 준비하며 공부하던 날의 기록입니다.

쥬신게임아카데미에 다니던 시절, 인근 넷마블 건물 앞에서. C++ 게임 클라이언트를 배우며 취업을 준비하던 때의 기록.
프로젝트를 거치며 관심도 구체화됐습니다
처음 WinAPI로 게임을 만들 때는 코드 흐름을 읽는 것부터 어려웠습니다. 맵의 타일 좌표를 직접 바꾸며 배치하다가, 다음 MFC 팀 프로젝트에서 팀원이 만든 Map Tool을 사용하면서 개발 도구의 가치를 실감했습니다. 이 경험은 DirectX11에서 오브젝트를 편집하고 저장·불러오는 기능을 직접 만들어보는 관심으로 이어졌습니다.
DirectX11에서는 기존 학습용 Framework를 읽고 그 위에 필요한 Gameplay와 Tooling을 구현했습니다. 맵 전환 뒤 Player·Camera·Navigation 상태가 예상대로 복원되지 않았을 때도 마지막 화면의 증상보다 처음 상태가 어긋나는 곳을 찾아봤습니다. 기능을 화면에 보이게 만드는 것과, 그 기능이 왜 그렇게 동작하는지 이해하는 일은 다르다는 걸 배웠습니다.
이후 내일배움캠프 Unreal 과정은 집에서 온라인으로 수강하며 Unreal C++과 Gameplay Ability System을 공부했습니다. 그 시기에 언리얼엔진 페스티벌에도 참여했습니다. 현장에서 발표를 들으며, 제가 더 깊이 공부하고 싶은 분야가 플레이어의 조작과 전투를 이루는 시스템, 그리고 그 시스템들이 연결되는 방식이라는 점을 다시 생각했습니다.

언리얼엔진 페스티벌에 참여하던 날. DirectX를 거쳐 Unreal C++과 Gameplay를 공부하던 시기의 기록.
개인 프로젝트 RiteSeekers에서는 Lyra Starter Game의 기존 Gameplay 구조를 참고해 필요한 Combat 영역을 확장했습니다. 6인 팀 프로젝트 ImitationTrigger에서는 제가 구현한 C++ Camera Runtime을 팀의 시스템에 연결하고, 디버깅 도구와 개발 기준을 공유했습니다. 서로 다른 프로젝트였지만 기존 구조를 먼저 이해하고, 맡은 기능을 구현한 뒤 직접 확인한 범위까지 설명하려는 기준은 이어지고 있습니다. 자세한 구현과 검증 과정은 각 프로젝트 글에 따로 기록했습니다.
이제는 만드는 쪽에서 그 경험을 이어가고 싶습니다
제가 게임개발을 선택한 이유는 하나의 거창한 사건 때문이 아닙니다. 게임 속 세계를 돌아다니며 느꼈던 즐거움과 친구들, 군 동료들과 함께했던 시간, 무언가를 직접 만들고 싶었던 마음이 조금씩 이어졌습니다. 그 마음을 교육비 마련과 C++ 학습, 실제 프로젝트로 옮겨왔습니다.
이 블로그에도 결과 화면만 남기기보다 어떤 문제를 보고 무엇을 구현했는지, 어디까지 확인했는지를 기록하려고 합니다. 새로운 팀에 들어가더라도 기존 코드와 작업 기준을 먼저 이해하고, 맡은 기능을 확인하며 다른 사람이 이어서 작업할 수 있는 결과를 만들고 싶습니다.
어릴 때 제가 그랬던 것처럼 누군가가 게임의 세계에 몰입하고 함께한 시간을 오래 기억할 수 있도록, 그 경험을 뒷받침하는 C++ 게임 클라이언트와 Unreal Gameplay를 만드는 일을 계속하고 싶습니다.