2D 와 3D 게임 플랫폼의 이해 & 그래픽스 프로그래밍 기초 정리
게임을 만들 때 그래픽은 단순히 “예쁘게 보이게 하는 요소”가 아니다.
유저가 실제로 보게 되는 화면을 어떻게 구성하고, 어떤 방식으로 표현하며 , 어떤 자원과 계산을 통해 출력할지까지 포함하는 중요한 영역이다. 특히 2D와 3D는 화면을 구성하는 방식부터 사용하는 리소스 , 최적화 포인트 , 표현 기법까지 차이가 크다.
그래서 게임 기획자나 개발자를 준비한다면 그래픽이 어떤 구조로 동작하는지 기본 개념 정도는 이해해두는 것이 좋다.
이번 글에서는 2D와 3D 플랫폼의 차이와 함께 그래픽스 프로그래밍에서 자주 등장하는 핵심 개념들을 정리해보려고 한다.
랜더링 파이프라인
먼저 그래픽을 이해하려면 렌더링이라는 개념부터 알아둘 필요가 있다.
렌더링은 데이터를 기반으로 디스플레이 화면에 실제 보이는 결과를 그려내는 과정이다.
쉽게 말하면 게임 안에 존재하는 이미지나 3D 모델 데이터를 사람이 볼 수 있는 형태의 화면으로 바꾸는 일이다.
이때 렌더링 파이프라인은 3D 그래픽 리소스가 화면에 표시되기까지 거치는 전체 과정을 뜻한다.
모델 , 재질 , 조명 , 카메라 , 셰이더 같은 요소들이 함께 작동하면서 최종 화면이 만들어진다.
2D 세계의 이해
2D 에서 이미지란?
개발 관점에서 2D 이미지는 컴퓨터 그래픽 기반으로 표현된 그림이다.
게임에서는 캐릭터 , 배경 , 아이콘 , UI , 이펙트처럼 수많은 요소가 이미지 형태로 사용된다.
보통 이미지는 2의 거듭제곱 ( 2^n ) 크기로 저장하는 경우가 많다.
이 방식이 하드웨어 처리나 최적화 측면에서 유리하고 , 호환성도 좋은 편이기 때문이다.
2D 이미지 표현 방식은 크게 비트맵( Bitmap ) 과 벡터( Vector ) 로 나눌 수 있다.
ⓐ 비트맵 ( Bitmap )
비트맵은 픽셀 단위로 색상 정보를 저장해 이미지를 표현하는 방식이다.
픽셀은 Picture Element의 줄임말로 , 화면을 구성하는 가장 작은 색상 단위라고 보면 된다.
비트맵은 도트 그래픽처럼 2D 게임에서 자주 사용된다.
색상은 보통 RGB에 알파(투명도)를 더한 형태로 관리한다.
장점은 계산 부담이 비교적 적다는 점이다. 이미 픽셀 정보가 정해져 있기 때문에 하드웨어 연산이 덜 복잡하다.
반면 단점은 이미지를 확대하면 계단 현상 , 즉 앨리어싱이 생기기 쉽다는 점이다.
이를 완화하기 위해 중간 색을 섞어 윤곽을 부드럽게 보이게 하는 안티앨리어싱 기법을 사용하기도 한다.
ⓑ 벡터 ( Vector )
벡터 이미지는 좌표와 선 , 곡선을 수학적으로 계산해서 표현한다.
그래서 크기를 확대하거나 축소해도 화질이 잘 깨지지 않는다.
폰트처럼 다양한 해상도에서 또렷하게 보여야 하는 경우에 자주 사용된다.
장점은 자유로운 스케일 조정과 품질 유지지만 , 단점은 계산량이 많아져 하드웨어 부담이 커질 수 있다는 점이다.
비트맵은 빠르고 직관적이지만 확대에 약하고 , 벡터는 확대에 강하지만 계산 비용이 더 들어간다고 정리할 수 있다.
레이어 ( Layer )
2D 게임에서는 화면이 한 장의 그림처럼 보이지만 실제로는 여러 층이 쌓여 있는 경우가 많다.
이 층을 레이어라고 한다.
예를 들어 게임 화면은 다음처럼 나뉠 수 있다.
- 원경
- 근경
- 지면
- 구조물 같은 고정 오브젝트
- 캐릭터 , 몬스터 , 아이템 같은 동적 오브젝트
- 각종 이펙트
- 날씨나 시간 표시
- 커서
- UI
이처럼 레이어를 나누면 어떤 요소를 앞에 보여줄지 , 어떤 요소를 뒤에 깔지 체계적으로 관리할 수 있다.
또한 레이어 순서는 상황에 따라 동적으로 바뀔 수 있다.
예를 들어 캐릭터가 구조물 뒤로 지나가면 원근감을 표현하기 위해 그 순간만 레이어 순서를 바꿔야 할 수 있다.
필요에 따라 반투명 처리나 흑백 처리처럼 연출적인 변화도 가능하다.
맵 & 타일
2D 게임에서 실제 플레이가 이루어지는 공간은 보통 맵 또는 배경으로 구성된다.
이 맵은 다시 타일이라는 작은 단위로 나누어 관리되는 경우가 많다.
타일은 단순한 이미지 조각이 아니라 속성을 가진 최소 단위 오브젝트에 가깝다.
예를 들어 타일 하나에는 다음 같은 정보가 들어갈 수 있다.
- 이동 가능 여부
- 높이 정보
- 특정 행동 가능 여부
- 미끄러짐 , 느려짐 같은 지형 속성
이런 방식은 특히 2D 타일맵 게임에서 자주 사용되며 맵 제작과 충돌 판정과 이동 규칙 처리에 유용하다.
스프라이트 ( Sprite ) & 스프라이트 데이터
2D 게임에서 매우 중요한 개념 중 하나가 스프라이트( Sprite ) 다.
스프라이트는 화면에 출력되는 개별 이미지 단위이자 , 그 이미지를 관리하는 기본 구조라고 볼 수 있다.
캐릭터 , 장비 , 상태 아이콘 , 이펙트 등은 모두 스프라이트 형태로 다뤄질 수 있다.
스프라이트 데이터에는 단순 이미지뿐만 아니라 여러 정보가 함께 들어간다.
- 이미지의 위치와 크기
- 출력 순서
- 앵커 위치
- 애니메이션 재생 조건과 순서
- 프레임 딜레이와 루프 설정
- 공격 범위나 피격 범위 같은 히트박스
스프라이트는 “한 장의 그림”이라기보다 , 실제 게임 안에서 동작하는 시각 리소스 단위라고 이해하면 좋다.
2D 애니메이션 방식
2D 에서도 애니메이션은 다양한 방식으로 구현된다.
스프라이트 애니메이션
가장 익숙한 방식은 스프라이트 시트에 들어 있는 여러 프레임 이미지를 순서대로 출력하는 것이다.
캐릭터가 걷거나 공격하는 동작을 프레임 단위로 나누고 , 일정한 순서대로 재생하는 방식이다.
스켈레탈 애니메이션 ( Skeletal )
또 다른 방식은 스켈레탈 애니메이션이다.
이미지를 부위별로 나눈 뒤 뼈대 구조를 심어서 움직이게 한다.
이 방식은 리소스 측면에서 경제적이다.
모든 프레임을 일일이 그리지 않아도 되기 때문이다.
대신 포즈 변화가 아주 자유롭지는 않아서 표현 가능한 구도에 제한이 생길 수 있다.
2D 그래픽 리소스 관리 기법
2D 게임에서는 리소스를 더 효율적으로 관리하기 위한 여러 기법도 함께 사용된다.
팔레트 ( 2D Palette )
팔레트는 같은 이미지에 색상 조합만 바꿔서 다른 버전을 만드는 기법이다.
예를 들어 적 몬스터는 같은 형태지만 색만 달라지는 경우가 있는데 , 이런 방식으로 리소스를 재사용할 수 있다.
주로 유니티 등의 게임 엔진에서 타일 기반의 2D 맵이나 레벨을 빠르게 디자인할 때 사용하는 도구이다.
- 기능 : 타일맵 ( Tilemap )에 그릴 수 있는 다양한 이미지 에셋( 풀 , 벽 , 물 등등 )을 팔레트 창에 모아 놓은 것
- 장점 : 브러시 도구를 사용해 맵에 원하는 타일을 직관적이고 빠르게 드래그 앤 드롭하여 배치할 수 있다
아바타 ( Avatar )
아바타는 레이어 , 스프라이트 , 팔레트 같은 시스템이 합쳐진 형태라고 볼 수 있다.
머리 , 몸 , 장비 , 색상 등을 조합해 다양한 외형을 만드는 구조다.
- 기능 : 2D 환경에서는 캐릭터의 모습 , 표정 , 의상을 구성하는 요소이며 온라인 게임 등에서는 개인을 식별하는 프로필 역할을 한다.
- 특징 : 여러 부위를 조합하여 하나의 완성된 캐릭터로 만들어진다.
아틀라스 ( Atlas / Texture Atlas )
아틀라스는 여러 개의 이미지를 한 장의 큰 이미지 파일 안에 묶어 넣는 방식이다.
이렇게 하면 드로우콜을 줄이고 성능을 개선하는 데 도움이 된다.
- 기능 : 게임 엔진이 화면에 이미지를 그릴 때 드로우콜( Draw Call , CPU 가 GPU 에게 그리기 명령을 보내는 횟수 )을 줄여주어 렌더링 성능 최적화
- 장점 : 메모리 낭비를 줄이고 로딩 속도를 향상시킨다.
나인패치 ( Nine-Patch / 9-Slicing )
나인패치는 이미지를 9개 구역으로 나누어 늘어날 부분과 유지할 부분을 구분하는 방식이다.
주로 UI 창 , 버튼 , 말풍선처럼 해상도 대응이 필요한 요소에 사용된다.
하나의 이미지를 늘이거나 줄여도 모서리나 특정 형태가 깨지지 않도록 하는 이미지 처리 기술이다.
- 기능 : 이미지를 가로 / 세로 9 개의 영역 ( 모서리 4개 , 테두리 4개 , 중앙 1개 )으로 나누어 정의한다.
- 장점 : 버튼이나 채팅창 배경 UI 를 만들 때 , 이미지 크기를 늘려도 모서리는 원본 비율을 유지하고 중앙의 빈 공간만 늘어나게 만들어 다양한 크기의 기기나 텍스트 길이에 완벽하게 대응
2D 연출과 이펙트 기법
2D 그래픽에서는 단순히 이미지를 배치하는 것 외에도 여러 연출 기법이 사용된다.
블렌딩 ( Blending )
블렌딩은 색을 섞는 방식이다. 알파 블렌딩 , 멀티플라이 , 애디티브 , 스크린 , 디졸브 등 다양한 방식이 있다.
예를 들어 알파 블렌딩은 물 , 유리 , 그림자 , 안개 같은 반투명 표현에 유용하다.
빛이나 불꽃 같은 효과는 애디티브 계열 블렌딩으로 강하게 표현하기도 한다.
주요 블렌딩 방식 및 특징 ( Unity 기준 )
- 1D 블렌드 : 1개의 파라미터 ( 예 : 속도 s )에 따라 걷기 , 뛰기 등 일렬로 배치된 애니메이션을 전환
- 2D 심플 디렉셔널 ( 2D Simple Directional ) : 상하좌우 등 2개의 파라미터 ( X , Z 축 )를 기반으로 고정된 방향의 애니메이션을 혼합
- 2D 프리폼 ( 2D Freeform ) : 캐릭터가 대각선을 포함해 360도 어느 방향으로든 자유롭게 움직일 때 , 가장 적합한 방햐으이 모션을 찾아 부드럽게 블렌딩
트랜스폼 애니메이션
이미지를 직접 바꾸지 않고도 크기 , 회전 , 위치를 변화시켜 애니메이션을 만들 수 있다.
UI 강조 , 캐릭터 흔들림 , 이펙트 연출 등에 자주 쓰인다.
- 이동 ( Translate ) : 요소를 지정한 X , Y 축 방향으로 이동한다.
- 크기 조정 ( Scale ) : 요소를 확대하거나 축소한다.
- 회전 ( Rotate ) : 요소를 지정한 각도 ( deg ) 만큼 회전시킨다.
- 기울이기 ( Skew ) : 요소를 X 축 또는 Y 축 기준으로 기울인다.
3D 게임 플랫폼의 이해
3D 란 무엇인가?
3D 게임은 가로 세로뿐 아니라 깊이까지 포함하는 3차원 공간에서 동작한다.
그래서 2D보다 표현이 풍부하지만 그만큼 처리해야 할 계산과 자원도 많아진다.
3D 그래픽은 기술적 요소의 영향을 많이 받기 때문에 그래픽과 프로그램 직군이 특히 밀접하게 연결된다.
Technical Director , Engine Programmer , Shader Programmer , Art Directo r, Technical Artist 같은 역할이 중요하게 등장하는 이유도 여기에 있다.
3D 에서 중요한 두 가지
3D는 실시간 렌더링을 해야 하므로 프레임 유지가 중요하다.
이를 위해 특히 두 가지 최적화가 핵심이다.
첫 번째는 리소스 최적화다.
폴리곤 수가 많고 텍스처 해상도가 높을수록 메모리와 저장 용량 부담이 커진다.
두 번째는 계산량 최적화다.
빛과 그림자 , 셰이딩 , 반사 , 물리 연산이 많아질수록 GPU와 CPU에 부담이 생긴다.
결국 3D 개발은 “어떻게 더 사실적으로 보이게 할까?”와 동시에 “어떻게 더 가볍게 돌릴까?”를 함께 고민하는 일이라고 볼 수 있다.
3D 월드를 구성하는 요소
3D 세계는 여러 구성 요소가 합쳐져 만들어진다.
- 3D 모델
- 재질(머티리얼)
- 조명
- 애니메이션
- 셰이더
- 물리 시스템
단순히 모델 하나만 있어서는 화면이 완성되지 않는다.
형태를 만들고 표면 재질을 입히고 빛을 비추고 , 움직임을 넣고 , 물리 반응까지 더해야 비로소 게임 공간처럼 보이게 된다.
기본적인 3D 제작 순서
3D 그래픽 제작 흐름은 보통 다음과 같이 진행된다.
- 3D 오브젝트 제작
- 텍스처와 빛과 그림자 설정
- 애니메이션 데이터 제작
- 카메라 설정
- 게임 데이터로 변환 및 적용
이 순서를 보면 3D 작업이 단순히 모델링 하나로 끝나는 것이 아니라 , 여러 분야가 연결된 종합 작업이라는 점을 알 수 있다.
3D 세계 좌표
3D 공간에서는 좌표계가 중요하다.
엔진이나 툴에 따라 사용하는 좌표계가 다를 수 있다.
예를 들어 DirectX , Unity , Unreal은 한 방식의 좌표계를 사용하고 , 3DS Max나 OpenGL 계열은 다른 방식의 좌표계를 사용할 수 있다. 이 차이는 모델 임포트나 회전 방향 , 애니메이션 적용 시 혼란을 만들 수 있기 때문에 주의가 필요하다.
카메라의 역할
카메라는 3D 공간 안에 배치된 가상의 눈이다.
위치와 회전값을 가지고 , 어떤 장면을 어떤 시각으로 보여줄지 결정한다.
시야각 ( FOV )
FOV는 카메라가 볼 수 있는 시야 범위다.
좁으면 화면이 답답하거나 긴장감이 생길 수 있고 넓으면 더 많은 정보를 보여주지만 왜곡이 생기거나 산만해질 수 있다.
투영 방식
카메라는 크게 두 가지 방식으로 세상을 보여준다.
- 직교 투영(Orthographic) : 거리와 상관없이 크기 변화가 거의 없다.
- 원근 투영(Perspective) : 가까운 것은 크게 보이고 먼 것은 작게 보인다.
직교 투영은 UI 나 심시티 같은 일부 타일 기반 게임에서 유용하고 , 원근 투영은 대부분의 3D 게임에서 자연스러운 입체감을 주는 방식이다.
빛과 그림자
조명은 3D 공간의 분위기와 가독성을 크게 좌우한다.
광원의 형태에는 여러 종류가 있다.
- Ambient Light : 장면 전체에 기본적으로 깔리는 빛
- Directional Light : 한 방향에서 비추는 빛
- Point Light : 한 점에서 퍼져 나가는 빛
- Spot Light : 손전등처럼 특정 방향으로만 비추는 빛
- 면광원 계열 : 넓은 면에서 나오는 빛 표현
빛과 그림자 계산은 비용이 많이 들기 때문에, 모든 것을 실시간으로 처리하면 성능 부담이 커진다.
그래서 경우에 따라 Realtime 방식과 Baking 방식을 나누어 사용한다.
- Realtime : 실시간으로 계산해 동적으로 반응
- Baking : 미리 계산한 결과를 사용해 연산 비용 절감
3D 모델의 방식
폴리곤 모델
가장 일반적인 3D 모델 방식은 폴리곤 기반이다.
점( Vertex ) , 선( Edge ) , 면( Face )이 모여 메쉬( Mesh )를 이룬다.
대부분의 게임 모델링은 이 방식을 사용한다.
NURBS 와 Voxel
NURBS는 곡면 계산 기반 방식으로 정교한 곡선을 만들 수 있지만 실시간 게임 렌더링에는 부담이 큰 편이다.
Voxel은 작은 부피 셀을 쌓아 3D 구조를 만드는 방식이다. 마인크래프트 같은 블록형 표현이나 특정 볼륨 기반 표현에서 떠올리기 쉽다.
재질과 텍스처
3D 모델의 겉모습은 머티리얼( Material ) 과 텍스처( Texture ) 로 크게 결정된다.
재질은 표면이 빛에 어떻게 반응하는지를 표현한다.
대표적으로 예전에는 Phong 같은 레거시 모델이 많이 사용됐고, 지금은 PBR( Physically Based Rendering ) 이 널리 쓰인다.
PBR에서는 보통 다음 요소를 자주 다룬다.
- Albedo : 기본 색상
- Metalness : 금속성 정도
- Roughness : 거칠기 정도
이외에도 표면 방향에 영향을 주는 노멀 벡터 개념이 중요하다.
텍스처 종류와 매핑 기법
텍스처는 모델 표면에 덮는 이미지다.
한 모델에도 여러 종류의 텍스처가 들어갈 수 있다.
대표적인 텍스처는 다음과 같다.
- 알베도 맵
- 메탈릭 맵
- 러프니스 맵
- 노멀 맵
- 이미션 맵
- 패럴랙스 맵
- 데칼 맵
매핑 기법으로는 다음이 있다.
- 알파 매핑 : 투명한 재질 표현
- 라이트 매핑 : 미리 조명/그림자를 계산해 적용
- 리플렉션 매핑 : 반사 표현
- 빌보드 : 카메라를 향하도록 고정된 오브젝트 표현
셰이딩과 셰이더
셰이딩은 빛의 각도와 거리 등을 바탕으로 표면의 색과 명암을 계산하는 방식이다.
대표적인 방식으로는 플랫 셰이딩 , 고라우드 셰이딩 , 퐁 셰이딩 , 툰 셰이딩이 있다.
반면 셰이더는 화면에 출력될 픽셀이나 정점이 어떤 방식으로 처리될지를 제어하는 프로그램에 가깝다.
재질 셰이더 , 조명 셰이더 , 이펙트 셰이더 등 다양한 형태로 사용된다.
쉽게 말하면 셰이딩은 표현 방식의 개념이고 셰이더는 그 표현을 실제로 계산하는 도구라고 이해하면 된다.
3D 애니메이션 기초
3D 애니메이션은 여러 방식으로 만들 수 있다.
- 코드 기반 구현
- 애니메이터 수작업
- 모션 캡처 데이터 활용
기초 개념으로는 다음을 알아두면 좋다.
버텍스 애니메이션
정점 위치를 프레임별로 저장하는 방식이다.
표정 변화나 특수 변형에 사용할 수 있지만 용량과 계산량이 크다.
계층 애니메이션
부모 노드의 변화가 자식 노드에 영향을 주는 구조이다.
스켈레탈 애니메이션
모델 안에 뼈대를 심고 뼈의 움직임에 따라 메쉬가 변형되는 방식이다.
이 과정에서 리깅 , 스키닝 , 리타게팅 같은 작업이 함께 따라온다.
Biped
인간형 기본 뼈대 구조를 제공하는 방식이다.
애니메이션 블렌드
여러 애니메이션을 자연스럽게 연결하는 기술이다.
애니메이션 컨트롤러
FSM 기반으로 상태 전이를 관리하며 전체 움직임 흐름을 제어한다.
FK 와 IK
- FK( 순운동학 ) : 부모에서 자식 방향으로 관절을 조정
- IK( 역운동학 ) : 목표 지점을 기준으로 관절을 역으로 계산
3D 이펙트와 환경 요소
3D 이펙트
3D 이펙트는 메쉬 기반 , 빌보드 기반 , 파티클 기반 등으로 구현할 수 있다.
게임 이펙트는 보통 생성 , 유지 , 소멸의 3단계 흐름으로 구성된다.
파티클 시스템 ( Particle System )
비 , 눈 , 불꽃 , 폭발처럼 작은 입자가 많이 필요한 표현에 자주 사용된다.
파티클은 생성 속도 , 수명 , 크기 , 방향 , 가속도 , 색상 , 투명도 등을 설정해 원하는 효과를 만든다.
지형 ( Terrain )
터레인 시스템은 야외 환경을 만들 때 유용하다.
하이트맵으로 높낮이를 조절하고 여러 레이어 텍스처를 섞어 땅 재질을 표현하며 , 나무나 풀 배치에도 활용된다.
최적화와 기타 개념
LOD
LOD( Level of Detail )는 카메라 거리나 중요도에 따라 모델 정밀도를 바꾸는 기법이다.
카메라와 객체 사이의 거리에 따라 3D 모델의 폴리곤 수와 텍스처 해상도를 차등 적용하여 렌더링 부하를 줄이는 그래픽 최적화 기술이다. 멀리 있는 오브젝트는 단순한 모델로 보여주어 연산 부담을 줄인다.
- 단계별 구성 : 화면을 차지하는 비율 ( 거리 )에 따라 High ( 고해상도 ), Mid ( 중해상도 ), Low ( 저해상도 ) 모델로 나눈다.
- 원거리 렌더링 감소 : 멀리 있는 객체는 작게 보이므로 , 폴리곤 수를 12.5% ~ 25% 수준으로 급격히 줄여 GPU 와 CPU 연산 부담을 낮춘다.
- 팝핑 현상 방지 : 단계가 전환될 때 눈에 띄는 깜빡임이나 어색함 ( Pop-in )이 없도록 페이드 ( Fade )효과를 적절히 조절한다.
밉맵 ( Mipmap )
하나의 텍스처에 여러 크기 버전을 준비해 두고 상황에 따라 적절한 텍스처를 사용하는 방식이다.
이렇게 하면 멀리 있는 텍스처가 덜 지저분하게 보이고 성능에도 도움이 된다.
카메라와 객체 사이의 거리에 따라 적절한 크기의 텍스처를 선택해 사용함으로써 성능과 품질을 최적화한다.
- LOD 개념 적용 : 카메라와 가까운 물체는 고해상도 텍스처를 사용하고 , 멀리 있는 물체는 저해상도 텍스처를 선택하여 렌더링한다.
- 계단 현상 ( Aliasing ) 및 지글거림 방지 : 멀리 있는 객체이 억지로 고해상도 텍스처를 적용하면 픽셀이 뭉개지거나 깜빡거리는 현상이 발생한다. 밉맵은 이를 미리 축소된 이미지로 대체해 시각적 품질을 높여준다.
스카이박스 ( Skybox )
게임 엔진에서 가상 세계의 배경이 되는 하늘이나 주변 환경을 렌더링하는 기법이다.
- 원리 : 플레이어의 카메라를 둘러싸는 거대한 육면체 ( 큐브 )나 구체 ( 돔 )를 배치하고 , 그 위에 하늘이나 멀리 있는 배경 이미지를 투사하여 무한한 공간감을 만들어내는 기법이다.
컬링 ( Culling )
3D 게임이나 그래픽을 렌더링할 때 화면에 보이지 않는 요소를 선별하여 계산에서 제외하는 성능 최적화 기술이다. 불필요한 GPU 연산을 줄여 게임이 부드럽게 작동하도록 돕는다.
- 프러스텀 컬링 ( Frustum Culling ) : 카메라의 시야 범위를 벗어난 오브젝트를 보이지 않는 것으로 간주하고 렌더링에서 제외한다.
- 오클루전 컬링 ( Occlusion Culling ) : 카메라는 바라보고 있지만 , 다른 큰 벽이나 물체에 가려져 완전히 숨겨진 객체를 계산에서 제외한다.
- 백페이스 컬링 ( Back-face Culling ) : 카메라를 등지고 있는 물체의 뒷면을 그리지 않도록 차단한다.
충돌 체크
충돌 처리를 위한 전용 메시나 콜라이더를 사용한다.
보통 박스 콜라이더 같은 단순한 형태를 활용해 계산을 줄인다.
물리 엔진
물리 엔진은 현실의 물리 현상을 게임 안에서 실시간으로 시뮬레이션하는 시스템이다.
힘 , 관성 , 속도 , 가속도 , 중력 , 충돌 같은 요소를 계산한다.
주요 기능으로는 다음이 있다.
- 강체 동역학 계산
- 충돌 검출
- 입자 처리
- 유체 역학
- 옷감 시뮬레이션
- 래그돌 표현
물리 엔진 덕분에 물체가 떨어지고 , 부딪히고 , 흔들리고 , 넘어지는 자연스러운 반응을 게임에서 구현할 수 있다.
마무리
2D와 3D는 모두 게임 화면을 구성하는 방식이지만 , 사용되는 개념과 제작 방식에는 꽤 큰 차이가 있다.
2D는 이미지 , 레이어 , 타일 , 스프라이트처럼 비교적 직관적인 구조를 중심으로 발전했고
3D는 모델 , 조명 , 머티리얼 , 셰이더 , 애니메이션 , 물리처럼 더 복합적인 시스템 위에서 동작한다.
하지만 공통적으로 중요한 것은 결국 리소스를 어떻게 관리할 것인가 , 어떤 방식으로 화면에 출력할 것인가 , 그리고 어떻게 최적화할 것인가이다.
게임 기획자 입장에서도 이런 그래픽 기초 개념을 알고 있으면 아트 직군이나 프로그래머와 소통할 때 훨씬 도움이 된다.
무엇을 요청해야 하는지 , 어떤 표현이 가능한지 , 어떤 부분이 비용이 큰지 이해할 수 있기 때문이다.
그래픽은 단순한 비주얼 영역이 아니라 , 게임을 실제로 보이게 만드는 기술적 기반이라는 점에서 꼭 알아둘 가치가 있는 분야이다.
'📝Game Design' 카테고리의 다른 글
| 08. 게임 시스템 설계 (0) | 2026.06.03 |
|---|---|
| 07. 게임 컨셉의 이해 (0) | 2026.06.03 |
| 05. 게임 콘텐츠의 이해 (0) | 2026.06.03 |
| 04. 게임 아이디어 도출 방안 (0) | 2026.06.03 |
| 03. 게임의 정의와 장르 (0) | 2026.06.02 |