게임 개발을 시작하면 처음에는 캐릭터 이동, 점프, 충돌 처리처럼 눈에 보이는 기능부터 만들게 됩니다. 그런데 어느 순간부터 코드만으로 설명하기 어려운 문제가 생깁니다. 오브젝트가 어느 방향을 바라봐야 하는지, 카메라가 어떤 좌표계를 기준으로 움직이는지, 3D 공간의 위치를 화면에 어떻게 투영하는지 같은 문제입니다.

이때 필요한 게임 수학은 시험 문제를 빠르게 푸는 능력과는 조금 다릅니다. 게임 안의 위치, 방향, 회전, 거리, 변환을 코드로 다루기 위한 도구에 가깝습니다.

게임 수학이 막히는 이유

많은 입문자는 벡터, 행렬, 선형대수학이라는 단어를 보는 순간 부담을 느낍니다. 개념 자체가 어려워서라기보다, 대부분의 설명이 이미 수학적 배경을 알고 있다는 전제로 시작하기 때문입니다.

예를 들어 벡터를 단순히 숫자 묶음으로만 외우면 게임에서 어떻게 쓰이는지 잘 보이지 않습니다. 하지만 벡터를 위치와 방향의 차이로 이해하면 캐릭터 이동, 시야 판정, 발사체 방향, 카메라 추적 같은 기능과 바로 연결됩니다.

벡터는 위치와 방향을 다루는 기본 언어

게임 월드에서 캐릭터의 위치는 좌표로 표현됩니다. 두 위치의 차이를 구하면 방향과 거리를 알 수 있고, 이 차이가 벡터입니다.

게임 수학은 왜 벡터와 행렬에서 막힐까?

벡터 덧셈은 현재 위치에서 어느 방향으로 얼마나 이동할지를 표현합니다. 벡터 뺄셈은 두 오브젝트 사이의 관계를 계산할 때 자주 사용됩니다. 스칼라배는 속도나 힘의 크기를 조절할 때 자연스럽게 등장합니다.

내적은 두 방향이 얼마나 비슷한지 판단할 때 유용합니다. 적이 플레이어를 바라보고 있는지, 특정 시야각 안에 대상이 들어왔는지 확인할 때 활용할 수 있습니다. 외적은 3D 공간에서 회전 방향이나 법선 벡터를 다룰 때 중요한 역할을 합니다.

행렬은 공간을 바꾸는 도구

행렬은 처음 보면 숫자가 많은 표처럼 보이지만, 게임 개발에서는 좌표를 변환하는 도구로 이해하는 편이 좋습니다. 오브젝트를 이동하고, 회전하고, 크기를 바꾸는 과정은 행렬로 표현할 수 있습니다.

특히 3D 게임에서는 여러 좌표 공간을 오가게 됩니다. 모델 자체의 좌표, 월드 좌표, 카메라 기준 좌표, 화면 좌표가 서로 다르기 때문입니다. 이 변환 과정을 이해하면 렌더링 파이프라인이나 카메라 계산을 훨씬 덜 막연하게 볼 수 있습니다.

처음 공부할 때의 순서

게임 수학을 처음 공부한다면 공식부터 외우기보다 실제 문제와 연결해서 익히는 편이 좋습니다. 먼저 데카르트 좌표계를 이해하고, 위치와 방향을 벡터로 구분합니다. 그다음 벡터의 기본 연산, 내적과 외적, 좌표 공간, 행렬과 선형변환 순서로 넘어가면 흐름이 자연스럽습니다.

중요한 것은 한 번에 많은 개념을 끝내려 하지 않는 태도입니다. 게임 수학은 개념을 많이 아는 것보다 작은 문제에 반복해서 적용해보는 과정에서 익숙해집니다. 캐릭터가 목표 지점을 향해 이동하는 코드, 카메라가 대상을 따라가는 코드, 물체가 특정 방향을 바라보는 코드처럼 작은 예제로 확인하는 것이 좋습니다.

게임 개발 입문자에게 필요한 관점

수학을 잘해야 게임을 만들 수 있다는 말은 부담스럽게 들릴 수 있습니다. 더 정확히는 게임을 만들면서 필요한 수학을 하나씩 이해하면 됩니다. 처음부터 선형대수학 전체를 완벽히 알아야 하는 것은 아닙니다.

다만 벡터와 행렬은 게임 개발에서 반복해서 등장합니다. 이동, 회전, 충돌, 카메라, 투영, 그래픽스 기초를 제대로 이해하고 싶다면 이 두 개념은 시간을 들여 익혀둘 가치가 있습니다.

게임 수학은 추상적인 공식 모음이 아니라 화면 속 움직임을 설명하는 언어입니다. 좌표, 벡터, 행렬을 게임 상황과 연결해 이해하면 코드가 왜 그렇게 작성되는지 조금씩 보이기 시작합니다.


더 깊게 배우고 싶다면

이 글에서 다룬 벡터, 행렬, 좌표 공간을 게임 개발 흐름 안에서 차근차근 익히고 싶다면 아래 강의도 함께 참고해볼 만합니다.

게임 개발을 위한 수학 (PART 1) – 인프런 강의

이 링크를 통해 수강하면 작성자가 소정의 수수료를 받을 수 있습니다.