게임 개발에서의 수학 활용 사례
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가 임시로 대신 조종
- 패킷 손실 시 마지막 정보를 바탕으로 추측