게임 개발에서의 수학 활용 사례

1. 물리 시뮬레이션과 미적분

기본 운동과 중력

개념: 물체의 위치 변화율이 속도, 속도 변화율이 가속도 공식: 속도 = 거리변화/시간, 가속도 = 속도변화/시간 게임 예시:

  • 마리오가 점프할 때 포물선을 그리며 떨어지는 것
  • 앵그리버드에서 새가 날아가는 궤적
  • 자동차 게임에서 브레이크를 밟았을 때 점진적으로 멈추는 것

유체 역학

개념: 액체나 기체의 흐름을 계산 게임 예시:

  • 바람의 나라에서 바람이 캐릭터 머리카락과 옷을 흔드는 효과
  • 워크래프트의 물결이 해안가에 부딪히는 시뮬레이션
  • 젤다에서 강물이 흘러가는 방향과 속도

충격량과 운동량

개념: 충돌 시 힘이 얼마나 오래 작용했는지 계산 게임 예시:

  • 당구 게임에서 공이 부딪힐 때 어떤 방향으로 튕겨나갈지
  • 복싱 게임에서 펀치의 강도에 따른 넉백 거리
  • 로켓리그에서 공과 차가 충돌할 때의 반응

2. 삼각함수의 다양한 활용

회전과 방향

개념: 원 위의 점의 좌표를 각도로 표현 공식: x = cos(각도), y = sin(각도) 게임 예시:

  • FPS에서 마우스 움직임에 따라 시점이 회전하는 것
  • 탑뷰 게임에서 캐릭터가 이동 방향을 바라보는 것
  • 시계 게임에서 시침과 분침이 돌아가는 것

주기적 움직임

개념: 같은 패턴이 일정 시간마다 반복되는 움직임 게임 예시:

  • 슈퍼마리오의 하늘에 떠 있는 플랫폼이 위아래로 움직이는 것
  • RPG에서 NPC의 호흡에 따라 가슴이 오르내리는 애니메이션
  • 바다의 파도가 주기적으로 밀려오고 나가는 것
  • 심장박동 효과나 맥박 표현

진동과 흔들림

게임 예시:

  • 폭발 시 화면이 흔들리는 스크린 셰이크
  • 지진이나 거대 몬스터 등장 시 땅이 흔들리는 효과
  • 무기 반동으로 조준점이 흔들리는 것
  • 캐릭터가 춥거나 무서울 때 떠는 애니메이션

3. 벡터와 내적/외적

거리와 방향 계산

개념: 두 점 사이의 직선거리와 방향 게임 예시:

  • RPG에서 마법 스킬의 사정거리 내에 적이 있는지 판단
  • 레이더나 미니맵에서 적까지의 거리와 방향 표시
  • 타워 디펜스에서 타워가 가장 가까운 적을 공격하는 것

내적 - 각도와 투영

개념: 두 벡터가 얼마나 같은 방향인지 측정 게임 예시:

  • 스텔스 게임에서 적의 시야각 내에 플레이어가 있는지 판단
  • 격투게임에서 등 뒤에서 공격했을 때 백어택 판정
  • 라이트 계산에서 표면이 광원을 얼마나 직접적으로 받는지
  • 자동차 게임에서 헤드라이트가 비추는 영역

외적 - 수직과 회전 방향

개념: 두 벡터에 수직인 새로운 벡터 생성 게임 예시:

  • 3D 모델링에서 면의 앞뒤를 구분하는 법선 벡터 계산
  • 캐릭터가 벽에 붙어 걸을 때 벽면에 수직으로 서는 것
  • 시계방향/반시계방향 회전 판단 (2D 게임에서 캐릭터 회전)

4. 애니메이션과 보간

베지어 곡선

개념: 여러 점을 이용해 부드러운 곡선을 만드는 방법 게임 예시:

  • 캐릭터가 점프할 때 포물선이 아닌 자연스러운 호를 그리는 움직임
  • 카메라가 한 지점에서 다른 지점으로 부드럽게 이동하는 컷신
  • UI 애니메이션에서 버튼이 나타날 때 탄력적으로 튀어나오는 효과

스플라인 곡선

개념: 여러 점들을 매끄럽게 연결한 곡선 게임 예시:

  • 레이싱 게임의 트랙 설계 (커브가 자연스럽게 연결)
  • RPG에서 NPC가 정해진 경로를 따라 순찰하는 것
  • 롤러코스터 시뮬레이션의 레일 모양

이징 함수

개념: 애니메이션의 시작과 끝을 자연스럽게 만드는 함수 게임 예시:

  • 메뉴가 나타날 때 처음엔 빠르게, 끝에서는 천천히 등장
  • 캐릭터가 달리기 시작할 때 점진적으로 가속하는 것
  • RPG에서 레벨업 시 경험치 바가 채워지는 애니메이션

선형 보간 (Lerp)

개념: 두 값 사이를 일정한 비율로 이동 게임 예시:

  • 캐릭터의 HP가 서서히 감소하는 애니메이션
  • 낮에서 밤으로 변할 때 하늘색이 점진적으로 변하는 것
  • 문이 열리고 닫힐 때 부드럽게 움직이는 것

5. AI와 게임플레이 로직

경로 찾기 (A* 알고리즘)

개념: 시작점에서 목표점까지 최단 경로 계산 공식: 총 비용 = 현재까지 비용 + 목표까지 예상 비용 게임 예시:

  • RTS에서 유닛이 장애물을 피해 목적지로 이동
  • RPG에서 NPC가 플레이어를 쫓아오는 것
  • 타워 디펜스에서 몬스터가 길을 따라 이동

조향 행동 (Steering Behaviors)

개념: 생물체가 자연스럽게 움직이는 방식을 모방 게임 예시:

  • 추적(Seek): 좀비가 플레이어를 향해 달려오는 것
  • 도망(Flee): 작은 물고기들이 상어를 피해 흩어지는 것
  • 도착(Arrive): 캐릭터가 목적지 근처에서 속도를 줄이며 정확히 멈추는 것
  • 무리 행동: 새 떼나 물고기 떼가 함께 움직이는 것

확률과 랜덤

게임 예시:

  • 크리티컬 확률: "20% 확률로 치명타가 발생합니다"
  • 아이템 드롭: "희귀 아이템이 1% 확률로 나옵니다"
  • 가위바위보 AI: 플레이어 패턴을 분석해서 대응
  • 주사위 굴리기: 보드게임이나 확률형 스킬

의사결정 트리

개념: 상황에 따라 다른 행동을 선택하는 구조 게임 예시:

  • "적이 가까우면 공격, 멀면 접근, HP가 낮으면 도망"
  • 격투게임 AI가 거리에 따라 다른 기술 사용
  • RTS에서 상황에 따른 전략 변경

6. 그래픽스와 시각 효과

조명 계산

개념: 빛이 물체 표면에 어떻게 반사되는지 계산 게임 예시:

  • 횃불 불빛이 던전 벽면을 비추는 것
  • 금속 갑옷의 반짝이는 하이라이트
  • 캐릭터가 그림자 속에 숨어있을 때 어두워지는 효과

프레넬 효과

개념: 바라보는 각도에 따라 반사 정도가 달라지는 현상 게임 예시:

  • 호수를 정면에서 보면 바닥이 보이지만 멀리서 보면 하늘이 반사
  • 유리창이나 자동차 유리의 반사 효과
  • 캐릭터 눈동자의 반사광

파티클 시스템

개념: 많은 작은 입자들로 자연 현상을 표현 게임 예시:

  • 모닥불의 불꽃과 연기
  • 눈이나 비가 내리는 날씨 효과
  • 폭발 시 튀어나오는 파편들
  • 마법 스킬의 반짝이는 효과

절차적 생성

개념: 수학 공식으로 자동으로 콘텐츠를 만들어내는 것 게임 예시:

  • 마인크래프트의 무한한 지형 생성
  • 노 맨즈 스카이의 행성과 생명체 생성
  • 로그라이크 게임의 랜덤 던전 생성
  • 텍스처의 노이즈 패턴 생성

7. 경제 시스템과 밸런싱

지수 함수와 로그 함수

게임 예시:

  • 레벨업 경험치: 레벨이 오를수록 필요 경험치 급격히 증가
  • 복리 이자: 방치형 게임의 수익이 시간에 따라 기하급수적 증가
  • 스킬 쿨다운 감소: 쿨다운 감소 옵션의 효율이 점점 떨어지는 것
  • 인플레이션 억제: 큰 수치를 압축해서 관리하기 쉽게 만들기

공급과 수요

개념: 많이 팔리면 가격 오르고, 많이 생산되면 가격 내려감 게임 예시:

  • MMO의 경매장에서 인기 아이템 가격 변동
  • 심시티에서 전력 공급이 부족하면 전기요금 상승
  • 문명 게임의 자원 거래 시스템

게임 밸런스

게임 예시:

  • 무기 밸런스: 공격력이 높으면 사정거리나 연사력을 낮춤
  • 캐릭터 밸런스: 체력이 높으면 이동속도를 낮춤
  • 리스크-리워드: 위험한 던전일수록 좋은 보상

8. 네트워킹과 동기화

지연 보상

개념: 네트워크 지연을 예측해서 자연스럽게 보이게 만들기 게임 예시:

  • 온라인 FPS에서 상대방이 끊어져도 잠시 직진하는 것
  • MMO에서 다른 플레이어 움직임이 부드럽게 보이는 것
  • 실시간 전략게임에서 명령 후 약간의 지연

보간과 예측

게임 예시:

  • 온라인 레이싱에서 다른 플레이어 차량의 부드러운 움직임
  • 네트워크 끊김 시 AI가 임시로 대신 조종
  • 패킷 손실 시 마지막 정보를 바탕으로 추측