
게임 회사 프로그래머 채용에서는 코딩 테스트와 함께 직접 만든 프로젝트를 봅니다. 수업 중에 자료구조와 알고리즘 문제를 꾸준히 풀고, 동시에 캐릭터 조작, 물…
시험 수학과 게임 수학은 쓰는 방식이 다릅니다
학교 수학은 손으로 식을 풀어 답을 내는 연습입니다. 게임 수학은 이미 알려진 공식을 코드에 넣고, 화면에서 결과를 확인하는 일에 가깝습니다. 복잡한 증명을 할 일은 거의 없습니다. 대신 이 공식이 왜 이런 움직임을 만드는지 그림으로 이해하는 힘이 필요합니다.
예를 들어 적이 플레이어를 향해 다가오게 하려면 두 위치의 차이를 구하고, 길이를 1로 맞춘 뒤 속도를 곱합니다. 이것이 벡터의 뺄셈과 정규화입니다. 수학 시험에서 낮은 점수를 받았던 사람도 이렇게 화면 속 움직임과 연결하면 훨씬 쉽게 받아들이는 경우가 많습니다.
콘텐츠 개발자라면 이 네 가지가 기본입니다
캐릭터 조작, 전투, UI, 퀘스트처럼 게임 내용을 만드는 콘텐츠 개발에서 자주 쓰는 수학은 범위가 정해져 있습니다. 아래 네 가지를 코드로 다룰 수 있으면 실무 대부분을 따라갈 수 있습니다.
- 벡터: 위치, 방향, 속도를 표현하고 더하고 빼는 법
- 내적과 외적: 적이 내 앞에 있는지, 왼쪽인지 오른쪽인지 판별
- 삼각함수: 각도로 회전하고 원을 그리며 움직이게 하기
- 보간: 두 값 사이를 부드럽게 이어 카메라나 UI를 자연스럽게 움직이기
여기에 확률과 간단한 통계 감각이 더해지면 좋습니다. 아이템 드롭, 치명타 확률, 무작위 맵 생성처럼 난수를 다루는 일이 생각보다 많기 때문입니다.
그래픽스·물리·엔진 직무는 요구 수준이 다릅니다
셰이더(화면의 색과 빛을 계산하는 작은 프로그램)를 짜는 그래픽스 프로그래머는 행렬 변환과 좌표계를 깊이 이해해야 합니다. 모델이 화면에 그려지기까지 여러 번의 좌표 변환이 일어나는데, 이 흐름을 모르면 버그의 원인을 찾기 어렵습니다.
물리나 엔진 프로그래머는 여기에 미적분 개념, 수치 계산의 오차, 충돌 판정 알고리즘까지 다룹니다. 이 분야를 목표로 한다면 선형대수 교재를 따로 공부하는 편이 좋습니다. 반대로 서버 프로그래머는 기하 수학보다 자료구조, 네트워크, 동시성 처리 쪽 지식이 훨씬 중요합니다.
수학이 약한 사람이 흔히 막히는 지점
가장 흔한 벽은 좌표계입니다. 엔진마다 위쪽 축이 다르고, 로컬 좌표와 월드 좌표가 섞이면서 캐릭터가 엉뚱한 방향으로 회전합니다. 이럴 때는 공식을 외우기보다 디버그 선을 그려 방향을 눈으로 확인하는 습관이 도움이 됩니다.
두 번째는 각도와 회전입니다. 도와 라디안 단위를 헷갈리거나, 회전을 여러 번 겹치면서 생기는 문제를 만납니다. 처음부터 원리를 완벽히 알 필요는 없고, 엔진이 제공하는 회전 함수를 쓰면서 문제가 생길 때 개념을 찾아보는 방식으로도 충분히 성장할 수 있습니다. 같은 실수를 두세 번 겪고 나면 개념이 자연스럽게 손에 붙습니다.
수학 공부는 게임을 만들면서 함께 하세요
수학 교재를 처음부터 끝까지 다시 푸는 방식은 시간이 오래 걸리고 지치기 쉽습니다. 작은 기능을 만들며 필요한 개념을 그때그때 채우는 방식이 훨씬 오래 갑니다.
- 마우스 방향으로 총알 쏘기를 만들며 벡터 뺄셈과 정규화 익히기
- 시야각 안에 들어온 적만 감지하는 기능으로 내적 이해하기
- 행성 주위를 도는 위성으로 삼각함수와 회전 연습하기
- 카메라가 캐릭터를 부드럽게 따라가게 하며 보간 다루기
- 익숙해지면 행렬과 좌표 변환을 정리한 자료로 개념 묶어 보기
이 순서로 하면 수학이 시험 과목이 아니라 기능을 만드는 도구로 느껴집니다. 면접에서도 공식을 외운 사람보다 내 프로젝트에서 내적을 이렇게 썼다고 설명하는 사람이 더 좋은 인상을 남깁니다.
공부 시간은 하루에 길게 잡기보다 짧게 자주 잡는 편이 낫습니다. 기능 하나를 만들고, 쓰인 수학 개념을 노트에 두세 줄로 정리해 두면 나중에 포트폴리오 설명 자료로도 그대로 쓸 수 있습니다. 막히는 개념은 그림을 그려 보거나 숫자를 직접 넣어 계산해 보면 훨씬 빨리 풀립니다.
실무에서 만나는 수학은 손맛을 만드는 도구입니다
액션 게임에서 칼을 휘둘렀을 때 앞쪽 부채꼴 범위의 적만 맞게 하려면 거리와 각도를 함께 계산합니다. 슈팅 게임에서 움직이는 목표를 미리 조준하는 기능은 속도와 시간을 곱해 미래 위치를 예측하는 계산입니다. 둘 다 고등학교 수준의 개념이지만, 코드로 옮기는 연습을 해 본 사람과 아닌 사람의 차이는 큽니다.
카메라 흔들림, 점프 곡선, 체력 바가 줄어드는 속도처럼 손맛을 좌우하는 부분에도 수학이 숨어 있습니다. 기획자가 조금 더 묵직하게 해 달라고 요청하면, 프로그래머는 곡선의 모양이나 보간 속도를 바꿔 그 느낌을 만듭니다. 이때 수식을 숫자로만 보지 않고 그래프로 떠올릴 수 있으면 조정이 훨씬 빨라집니다.
반대로 신입에게 복잡한 수식을 처음부터 기대하는 경우는 드뭅니다. 엔진이 제공하는 수학 함수를 정확히 골라 쓰고, 결과가 이상할 때 원인을 추적할 수 있는지를 더 중요하게 봅니다.
수학에 자신이 없다는 이유로 프로그래밍 진로를 접는 경우가 있는데, 대부분은 필요 이상으로 겁을 먹은 경우입니다. 실제로 더 중요한 것은 문제를 작게 쪼개고, 결과를 확인하며 고쳐 나가는 끈기입니다. 수학은 그 과정에서 필요한 만큼 따라옵니다.
내가 어느 직무에 맞고 수학을 어디까지 준비해야 할지 감이 오지 않는다면, SBS아카데미게임학원 게임프로그래밍 과정 상담에서 현재 수준과 목표 직무를 기준으로 공부 범위를 함께 정해 드립니다.
자주 묻는 질문
문과 출신도 게임 프로그래머가 될 수 있나요?
될 수 있습니다. 콘텐츠 개발에 필요한 수학은 범위가 좁아서, 코딩 기초와 함께 필요한 개념을 차근차근 채우면 충분히 따라갈 수 있습니다.
게임 회사 코딩 테스트에도 수학 문제가 나오나요?
기하 공식보다는 알고리즘 문제가 중심입니다. 다만 좌표, 거리 계산, 경우의 수처럼 기본 수학 감각이 필요한 문제는 종종 나옵니다.
선형대수를 대학 수준으로 따로 공부해야 하나요?
그래픽스나 엔진 직무를 노린다면 공부해 두는 편이 좋습니다. 콘텐츠 개발이 목표라면 벡터와 행렬의 기본 개념을 코드로 쓸 수 있는 정도로 시작해도 괜찮습니다.
가까운 캠퍼스에서 게임프로그래밍 알아보기
사는 곳과 가까운 캠퍼스를 고르면 수업 내용, 오시는 길, 상담 신청을 한 번에 볼 수 있습니다.