플레이어가 버튼을 누르면 캐릭터가 움직이고, 스킬이 나가고, 화면에 피해 숫자가 뜹니다. 이렇게 플레이어 기기에서 실행되는 게임 프로그램을 만드는 사람이 클라이언트 프로그래머입니다. 게임 클라이언트 프로그래머가 하는 일과 하루 일과를 정리했습니다.
클라이언트와 서버의 차이
온라인 게임은 크게 두 부분으로 나뉩니다. 플레이어의 PC나 휴대폰에서 돌아가는 프로그램이 클라이언트이고, 회사의 컴퓨터에서 여러 플레이어의 정보를 관리하는 프로그램이 서버입니다. 클라이언트 프로그래머는 화면에 보이고, 손으로 조작하고, 귀로 듣는 모든 것을 책임집니다.
혼자 하는 오프라인 게임이라면 사실상 게임 프로그램 전체가 클라이언트에 해당합니다. 그래서 게임 프로그래머 채용에서 가장 많은 비중을 차지하는 것도 클라이언트 직군인 경우가 많습니다.
주요 업무
- 게임플레이 구현: 캐릭터 이동, 점프, 공격, 스킬, 적 AI 같은 게임 규칙을 코드로 만듭니다.
- UI 구현: 메뉴, 인벤토리, 상점, 퀘스트 창 등 화면 요소의 동작을 만듭니다.
- 그래픽·연출 연동: 애니메이션, 이펙트, 사운드가 정확한 순간에 재생되도록 연결합니다.
- 데이터 연동: 기획자가 만든 표 데이터(능력치, 아이템 정보)를 게임이 읽을 수 있게 처리합니다.
- 서버 통신: 서버와 데이터를 주고받아 다른 플레이어의 움직임이나 보상 정보를 화면에 반영합니다.
- 최적화와 버그 수정: 프레임 저하, 메모리 부족, 충돌 오류를 찾아 고칩니다.
대부분의 회사는 Unity(C#)나 Unreal Engine(C++, 블루프린트) 같은 상용 엔진을 쓰고, 일부 회사는 자체 엔진을 씁니다. 엔진을 쓰더라도 게임마다 필요한 기능은 직접 설계하고 구현해야 합니다.
하루 일과 예시
| 시간대 | 하는 일 |
|---|---|
| 오전 | 전날 빌드의 버그 보고 확인, 오늘 처리할 작업 정리 |
| 오전 회의 | 기획자와 신규 기능 명세 확인, 아트·서버 담당과 일정 공유 |
| 오후 | 기능 구현, 동작 테스트 |
| 오후 후반 | 코드 리뷰(동료가 서로의 코드를 검토하는 과정) 주고받기 |
| 퇴근 전 | 작업 내용을 버전 관리 시스템에 반영, 다음 빌드 준비 |
하루 중 상당 시간은 코드를 새로 쓰는 것보다 기존 코드를 읽고, 문제를 재현하고, 원인을 찾는 데 쓰입니다. 특히 출시 이후 라이브 서비스 중인 게임에서는 업데이트 일정에 맞춘 기능 추가와 긴급 수정이 반복됩니다.
함께 일하는 사람들
클라이언트 프로그래머는 거의 모든 직군과 맞닿아 있습니다. 기획자의 설계를 코드로 옮기고, 아티스트가 만든 그래픽 리소스를 게임에 넣고, 서버 프로그래머와 통신 규칙을 맞추며, QA에게서 버그 보고를 받습니다.
그래서 기획서를 읽고 애매한 부분을 질문하는 능력, 구현이 어려운 요구에 대안을 제시하는 능력이 중요합니다. '안 됩니다'보다 '이렇게 하면 비슷한 효과를 낼 수 있습니다'라고 말할 수 있는 프로그래머가 팀에서 신뢰를 얻습니다.
세부 분야로 나뉘기도 합니다
규모가 큰 프로젝트에서는 클라이언트 프로그래머도 맡는 영역에 따라 나뉩니다. 전투와 캐릭터 조작을 맡는 게임플레이 프로그래머, 메뉴와 화면 요소를 맡는 UI 프로그래머, 그래픽 표현과 렌더링 성능을 다루는 그래픽스 프로그래머, 애니메이션 시스템을 다루는 프로그래머 등이 있습니다.
신입 때는 여러 영역을 두루 경험하다가 점차 자신에게 맞는 분야로 깊이를 더해 가는 경우가 많습니다. 처음부터 한 분야를 정하기보다 다양한 기능을 구현해 보며 흥미를 느끼는 쪽을 찾는 것도 좋은 방법입니다.
어떤 사람에게 맞을까
- 게임을 할 때 '이건 어떻게 만들었을까' 궁금해지는 사람
- 눈에 보이는 결과물을 빠르게 확인하는 데서 재미를 느끼는 사람
- 기획, 아트 등 다른 직군과 대화하며 만드는 것을 즐기는 사람
- 조작감과 반응 속도 같은 세부 체감에 예민한 사람
클라이언트 프로그래밍의 기초를 체계적으로 쌓고 싶다면 SBS아카데미게임학원 게임프로그래밍 과정에서 C, C++ 기초와 WinAPI부터 Unity, Unreal Engine 기반 게임 제작까지 단계적으로 다룹니다.
자주 묻는 질문
Unity와 Unreal 중 무엇을 쓰는 회사가 많나요?
모바일 게임 쪽은 Unity, 고사양 PC·콘솔 게임 쪽은 Unreal Engine을 쓰는 경우가 많다고 알려져 있습니다. 지원할 회사의 채용 공고에서 사용 엔진을 확인하는 것이 가장 정확합니다.
클라이언트 프로그래머도 수학이 필요한가요?
캐릭터 이동, 카메라, 충돌 처리에 벡터와 기본적인 삼각함수가 자주 쓰입니다. 고급 수학보다는 이 개념들을 게임 안에서 활용하는 연습이 중요합니다.
