나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2024-05-03 20:56:38

물리 엔진

물리엔진에서 넘어옴
Physics Engine

1. 개요2. 구조3. 물리 엔진 목록(가나다순)4. 게임 은어

1. 개요

물리 엔진이란, 게임 등에서 물체에 작용하는 물리적 현상, 즉 중력이나 관성 등에 관한 부분을 처리하는 프로그래밍 파트다.

가장 대표적인 물리 엔진으로는 게임 엔진언리얼 엔진유니티 엔진에 기본 채용되고 있는 PhysX 엔진과 헤일로 시리즈 등 유명 게임에 쓰인 하복 물리 엔진이 있다.

게임에서만 쓰이는 건 아니고 영화 등의 3D 영상 분야에선 옛날부터 쓰였고, 겨울왕국에서 사용된 물리엔진과 자동차 설계에서의 가상 충돌실험도 물리 엔진을 사용한다고 볼 수 있다. 컴퓨터로 뉴턴 역학을 시뮬레이션하는 거야 아예 최초의 컴퓨터인 에니악이 탄도를 계산하기 위한 목적에서 만들어졌으니 그 역사는 매우 깊다고 할 수 있다.

게임에 있어서 (현대적인 의미의) 물리 엔진이 게이머들에게 널리 알려지게 된 계기는 하프라이프 2의 테크 데모였다. 물론 원시적인 충돌·탄도 계산 등은 그 이전 게임들에도 존재해왔고, 래그돌 등을 포함한 현대적인 물리 효과도 1998년 작인 트레스패서를 시작으로 여러 게임에서 먼저 선보이긴 했다. 하프라이프 2가 물리 엔진에 끼친 가장 큰 업적은 게임 내 대부분의 오브젝트에 물리 엔진을 도입한[1] 것이다.

초기에는 이 물리 엔진만 가속시키는 프로세서(PPU)가 따로 있었지만[2], 그래픽 카드와의 유사성과 비싼 가격 때문에 사장되고 그래픽 카드로 그 기능이 흡수되었다. 존 카맥은 이 물리 가속 카드에 대해서 매우 부정적인 전망을 내비친 적이 있다.

오픈소스계에도 물리 엔진이 좀 있다. 대표적인 것으로는 영화 2012에서 쓰였고 Blender라는 3D 프로그램에 내장되어 유명해진 불릿 엔진이다.

VR 게임에는 거의 반 필수적으로 들어가야 하는 엔진인데, 직접 물건을 잡고 던지고 상호작용하는 게임 특성상 물리 엔진이 없으면 굉장히 비현실적으로 보이기 때문이다.

인터넷 상에서 보면 현실에서 물리법칙을 무시한듯한 움직임을 보이는 운동괴수들을 가리켜 물리엔진이 에러났다는 식으로 표현하기도 한다.

MIT에서 진동수 분석을 통해 물리적 반응을 예측 및 시뮬레이션하는 기술을 개발했다. # 이 기술을 사용하면 현실의 물체와 가상의 물체가 맞부딪혔을 때 서로 어떻게 반응할지를 쉽게 알 수 있어 물리 효과를 시뮬레이션하는 비용을 혁신적으로 절감시킬 것이라 기대되고 있으나 현재까지 감감무소식.

2. 구조

물리 엔진의 파이프라인은 크게 광역 탐지, 지역 탐지, 해결 세 단계로 구성된다. 이렇게 구성되는 이유는 물리엔진의 주된 관점이 충돌현상을 어떻게 해결하는지 이기 때문이다.

3. 물리 엔진 목록(가나다순)

4. 게임 은어

캐릭터가 오브젝트에 충돌하거나 캐릭터들끼리 충돌하는 등의 상황이 발생했을 때, 혹은 일반적인 충격을 받았을 때 정상적인 수치 이상으로 심하게 튕겨나가거나 날아가는 현상을 언급할 때 자주 거론된다. 쉽게 말하자면 일종의 게임 버그인 셈. 보통 크레이지레이싱 카트라이더와 같은 레이싱 게임에서 많이 일어나지만 슈퍼 버니맨 같은 병맛 계열 게임 또는 물리 엔진을 자주 사용하는 스케이트 3 같은 게임에서는 심심치 않게 찾아볼 수 있다. 또한 완성도가 낮은 게임에서도 많이 보인다.

[1] 하프라이프 2가 최초 공개된 2002년 당시까지만 해도 오브젝트는 이동하는 엔티티를 부여받은 것이 아닌 이상 물리적으로 고정되어있는 게 당연 시 되어있었다. 헌데 하프라이프 2는 이런 고정관념을 깨고 물리적인 오브젝트가 중력을 갖고 낙하하면서 밑에 있던 적을 깔아죽이는, 당시로서는 혁신적이면서 충공깽인 모습을 보여서 게이머들에게 충격을 줬다.[2] 거의 흑역사로 묻혔다. 왜냐하면 해당 카드를 사용하면 확실히 빨라지기는 하나 CPU로도 충분히 연산 시킬 수 있었으며 ageia를 NVIDIA가 먹고 자사의 그래픽 카드로 PPU의 역할을 가능하도록 드라이버를 내놨는데 동시대의 저가형 그래픽 카드보다도 연산이 훨씬 느렸다.[3] 2018년 비교적 근래에 출시 되었으며 심즈 모바일, 카카오톡에서 사용 중이다. (오픈소스 라이선스 목록에 포함)[4] 블리자드 엔터테인먼트가 개발한 자체 물리 엔진.[5] 소스 2 엔진에서 밸브가 하복 엔진 대신 개발한 자체 물리 엔진.[6] 크리스천 화이트헤드가 제작한 물리 엔진으로, 세가의 제작진들조차 포기한(클래식 소닉 당시 제작팀은 대부분이 퇴사했다) 클래식 소닉 특유의 물리현상을 완벽하게 재현하는 데 성공하여 세가의 찬사를 받았다. 실제로 이후 세가에서 만들어낸 모든 클래식 소닉 관련 소프트는 이 엔진을 사용한다. 현재 크리스천 화이트헤드는 소닉 매니아의 리드 프로그래머를 맡고 있다.[7] 언리얼 엔진 4, 5에서 에픽 게임즈가 언리얼 엔진 전용으로 개발한 언리얼 엔진의 기본 자체 물리엔진.