문화, 컨텐츠

폴 가이즈! 요즘 대세 게임인데, 이렇게 디테일한 게임이라고?!

홍아저씨티스토리 2020. 11. 20. 18:00

안녕하세요? 홍아저씨입니다! 요즘 너무나도 핫한 스팀 게임이죠! 바로 '폴 가이즈'!! 초대박 게임입니다. 오늘은 위 게임의 역사와 엔진, 구현력 등 게임의 비하인드 부분을 파헤쳐보겠습니다~

최근 사회적 거리두기 때문에 방콕을 하는 상황에서 유일하게 찾을 수 있는 게임! "재밌는게 뭐 없을까?" 시작은 단순한 호기심이었습니다. 60명이나 되는 플레이어가 귀여운 캐릭터 모습으로 동시 목표 지점을 향해 달린다는 내용이 신선했죠.

 

하면 할수록 또 다른 매력에 빠져드는 것 같은! 장애물이나 다른 캐릭터와 충돌할 때 미끄러지거나 튕겨 나가는 느낌이 현실처럼 생생합니다. 올해 8월에 출시되고 한달만에 게임 유통 플랫폼 스팀에서 700만 장 이상 판매된 영국 게임 개발사 미디어 토닉의 '폴 가이즈' 이야기입니다.

 

 

캐릭터의 점프가 왜 이렇게 자연스러워??

게임이 생생하다는 것은 화면과 움직임이 현실 세계와 분간이 가지 않을 정도로 닮았다는 뜻 입니다! 이를 위해서는 렌더링 엔진과 물리 엔진 두 가지 핵심 프로그램이 필요하는데요. 렌더링 엔진은 3차원적 그래픽 기술을 사용하여 실제 세계와 같은 느낌의 영상을 화면에 그려주는 프로그램이면서, 물체의 형상과 표면의 질감, 빛에 따른 음영 등 디자인에 관련된 이미지를 만들어냅니다!

물리 엔진은 완성된 이미지에 사실적인 움직임을 붙여 넣는 프로그램으로 하복, 피직스 등이 대표적입니다! 우리의 일상 공간에는 일정한 물리법칙이 성립하는데요. 힘과 징량, 가속도로 현실 세계에서 힘은 질량과 가속도에 정비례 하다는 내용입니다.

 

 

 

 

 

마찬가지로 게임 세계에도 유사한 물리 법칙이 일정하게 유지됩니다. 캐릭터가 비탈을 내려가면 가속도가 붙어 속도가 빨라지고, 슈팅 게임에서 포탄을 쏘면 포탄이 중력을 받아 포물선 궤적을 그리며 날아가는 식입니다. 캐릭터의 옷깃이나 머리카락, 배경으로 쓰이는 나뭇잎, 빗방울 등에도 중력과 마찰력 등 물리 법칙이 적용됩니다. 정말 섬세하고 디테일하게 제작이 되죠.

 

 

물리 엔진은 이러한 게임 속 물리 법칙에 따라 물체가 움직이는 정도를 계산한 뒤 시작적으로 구현합니다. 개발자가 물리적인 힘을 계산하는 소스코드를 일일이 만들 필요는 없습니다. 컴퓨터 시물레이션 모델을 연구하는 기민형 고려대 컴퓨터 학과 미디어 연구실 석박사 연구원은 "물체의 모든 운동에 일일이 힘을 정의하는 것은 비효율적"이라며 "중력과 저항력 같이 시스템 내에 공통적으로 작용하는 힘을 설정해서 물체의 움직임을 계산하는 과정을 줄이면서 자연스러운 움직임을 구현하는 것이 게임 개발의 핵심" 이라고 설명했습니다.

게임 개발자들은 물리 엔진에 게임 속 물체의 특성을 입력합니다. 물체의 특성에 따라 물체의 움직임은 제각각입니다. 예를 들어 대포를 쏘는 게임에서 말랑말랑한 젤리같은 재질로 적용하느냐, 튼튼한 강철과 같은 재질로 적용하는지에 따라 대포알의 궤적이 천지 차이이죠.

폴 가이즈 게임의 개발자들은 캐릭터의 소재를 비치볼처럼 탄성있는 소재로 설정했습니다. 덕분에 캐릭터들이 서로 부딪치면 튕겨 나가고, 움직이는 구조물에 부딪혀도 운좋게 목표지점까지 한 번에 날아가기도 합니다.

01

폴 가이즈 게임의 캐릭터들은 자신의 키 높이 2배 만큼 뛸 정도로 점프력이 뛰어납니다. 이를 위해 개발자들은 게임 세계의 중력을 지구의 중력보다 훨씬 강하게 설정하였습니다. 물리 엔진이 지구와 유사한 수준의 중력을 구현한다면 점프 후에 땅으로 떨어지는 시간이 너무 길어 지루할 것 같다는 생각이였기 때문입니다.

캐릭터는 강한 중력 때문에 점프했다가 이내 바닥으로 고꾸라지는데 강한 중력은 이용자가 움직임을 사실적으로 느끼게 해주는 동시에 캐릭터들의 몸개그를 연출하는 장치라고도 볼 수 있습니다.

 

 

물리 엔진에 인공지능까지 탑재?

물리 엔진은 게임의 동작을 연출하는 프로그램이지만 현실을 그대로 반영하진 않습니다. 서버의 처리 성능에 한계가 있어 괜히 실제와 같은 움직임을 구현 하려다 게임이 멈추거나 느려져서는 안되기 때문입니다. 개발자들은 물체에 작용하는 힘을 단순화해 움직임을 효율적으로 계산합니다.

한 예로 움직임을 계산할 때 '유한요소법'을 사용합니다. 물체를 여러 개의 작은 영역으로 나누는 방법이죠. 이때 질량, 용수철 모델을 적용하면 각 영역이 용수철처럼 탄성력 있는 물체로 이어져 있다고 가정하고 각 영역이 받는 힘을 종합해 물체 전체의 움직임을 표현합니다.

한 연구원은 유한요소법을 적용할 영역을 무한히 쪼개면 현실과 같은 움직임을 구현할 수 있지만 실질적으로 쉽지 않고 물체에서 유한 요소법을 적용할 영역의 수와 넓이를 바꿔가며 그럴듯한 움직임을 만들어 내면서도 계산 시간은 최소화할 수 있는 조건을 찾는다고 설명 해주셨습니다.

또한, 최근에는 인공지능으로 물리 엔진을 구현하려는 시도도 있었죠. 인공지능에 공이 튀는 현상, 물체와 물체가 충돌하는 현상, 물체가 미끄러지는 현상 등을 학습시켜 현실 세계의 물리 법칙을 그대로 구현할 수 있도록 소스코드를 작성하도록 만드는 것 입니다.

인공지능을 이용하여 물리 엔진을 구현하는 연구는 아직 초기 단계이고, 인공지능이 물리 엔진을 만들면 인간의 힘으로 찾을 수 없었던 요소도 구현이 가능해질 것 입니다. 물론, 실질적으로 반영되기 까지 아직 많은 시간이 남기 하였지만 대략 2~5년 내로 실현될 것이라는 추측도 나오고 있습니다.

오늘의 포스팅을 통해 게임 하나가 만들어지는 과정이 이렇게나 복잡하고 까다롭다는 사실을 깨달았습니다. 덕분에 갓겜 갓겜하는 게임의 가격대가 10만원이 넘어가는 이유를 이제서야 이해가 되는 듯 하네요. 오늘의 포스팅은 여기서 마무리 짓겠습니다. 다음에도 더 유익하고 재밌는 주제로 찾아뵙겠습니다. 즐거운 불금 되시길 바라며, 감사합니다!!