• 1나루토매니아
  • 2뱅이
  • 3푸타코타
  • 4완벽그자체
  • 5해삼
  • 1뱅이
  • 2나루토매니아
  • 3알짜배기
  • 4뱅이
  • 5빙그레우유
[소식] 게임 더 실감나게 만들려면 물리 알아야한다?
연속출석 :
1일 랭킹 : 8위 명예4
89%
89% (266413 /300000)
  • 댓글 0 |
  • 추천 0 |
  • 조회 1966 |
  • 2012-02-03 (금) 13:10
    [한겨레] 과학향기

    자동차의 핵심은 엔진이다. 그런데 자체 개발한 엔진 대신 다른 회사 엔진을 사용하는 경우가 있다. 대표적인 예가 벤츠 엔진을 탑재한 체어맨이다. 하지만 체어맨은 벤츠와는 구분되는 고유 브랜드다. 특정한 성능을 갖는 고유 브랜드의 자동차를 빠른 시간 안에 생산하기 위해서는 이렇게 타 회사 엔진을 사용하는 것이 효율적일 수 있다.

    자동차에서 엔진이 차지하는 역할과 게임에서 게임엔진이 차지하는 역할은 동일하다. 게임엔진은 게임 개발 과정을 대폭 단축시킨다. 또한 하나의 게임엔진은 여러 개의 게임에 사용될 수 있다. 게임엔진은 하나의 컴퓨터 프로그램이라 할 수 있는데, 이러한 프로그램에 여러 가지 기능을 덧붙여서 보다 큰 프로그램을 만든 것이 바로 게임이다.

    게임엔진은 크게 ‘렌더링엔진(rendering engine)’과 ‘물리엔진(physics engine)’으로 나뉜다. 일반인에게 렌더링은 낯선 단어인데, 이는 3차원 그래픽 기술을 사용해 실제 세계와 같은 느낌의 영상을 화면에 그려주는 것을 말한다. 때문에 그래픽엔진이라 부르기도 한다. 가장 유명한 것은 ‘언리얼 엔진’이다. [그림 1]은 이 엔진을 사용해 영화와 같은 사실적인 영상을 만들 수 있음을 보여준다. ‘기어즈 오브 워’와 ‘스페셜 포스2’ 등 국내외 수많은 게임이 이 엔진을 사용했다. 물론 언리얼 엔진 말고도 다수의 상용 엔진이 존재한다. 예를 들어 ‘아이온’은 ‘크라이 엔진’을 사용했으며 ‘마비노기 영웅전’은 ‘소스 엔진’을 사용했다.

    이렇게 고성능 렌더링엔진을 통해 사실적인 영상을 즐기게 된 게임 사용자들은 게임 공간에서 물체의 움직임 역시 사실적으로 표현되기를 원했다. 물리엔진은 바로 이런 요구에 대한 응답 차원에서 개발된 것이다. 물리엔진은 게임 공간을 구성하는 물체들이 실제 세계의 물리 법칙에 따라 움직이도록 처리해주는 프로그램을 말한다.

    우리의 일상 공간을 지배하는 물리 법칙은 뉴턴의 운동법칙이고, 이의 핵심은 라는 공식이다. 즉, 질량 인 물체에 라는 힘을 가하면 가속도 가 발생한다. 필자는 고등학교 시절 이 공식이 가져다 준 환희를 잊지 못한다. 세상 모든 물체의 움직임을 지배하는 공식, ! 물리엔진의 핵심 역시 를 사용해 물체의 속도와 위치를 계산하는 것이다.

    중고등학교 물리를 공부했다면 누구나 이해할 수 있는 간단한 예를 들어 물리엔진을 설명해 보자. 영화와 마찬가지로 게임은 1초에 수십 개의 영상을 연속적으로 보여줘서 움직임을 묘사한다. 초당 30개의 영상을 보여주는 경우를 생각해 보자.


    어떤 물체에 힘이 가해져 움직이는 경우 우리는 초가 지날 때마다 물체의 위치를 계산해서 이를 화면에 그려줘야 한다. 힘 와 물체의 질량 이 주어지면 이를 에 대입해 이 물체에 발생한 가속도 를 계산한다. 가속도를 적분하면 속도가 되는데, 이를 위해서는 라는 익숙한 공식을 쓴다. 여기에서 는 초기 속도, 는 시간을 말한다. 앞서 계산한 가속도 에 을 곱하고 이를 에 더하면 속도 를 얻는다. 속도를 적분하면 위치가 계산되는데, 이를 위해서는 라는 또 다른 익숙한 공식을 쓴다. 여기에서 는 초기 위치를 나타내는데, 에 을 대입하면 초 지난 후의 물체의 위치 가 계산된다. 바로 이 위치에 해당 물체를 놓고 렌더링엔진을 이용해 그 물체를 포함한 게임 공간을 그린다. 초마다 이 작업을 되풀이하면 물리 법칙에 따라 사실적으로 움직이는 물체를 묘사할 수 있다.

    슈팅 게임 등에서 포탄의 궤도는 위와 같은 방식에 중력을 적용해 계산할 수 있다. 하지만 게임 세계에는 포탄처럼 간단한 물체만 있는 것이 아니다. 럭비공처럼 이리저리 튀는 물체도 있고, 옷과 같은 변형체도 있으며, 물이나 연기와 같은 유체도 존재한다. 이들 움직임을 묘사하기 위해서는 미분방정식을 풀어야 하는 등 복잡한 수학적 풀이 과정을 거쳐야 한다. 하지만 여기서도 기본은 를 사용해 속도와 위치를 계산하는 것이다. 최근 제작된 모든 게임에는 어떤 형태로든 물리엔진이 들어가 있다고 보면 된다. [그림 2]는 물리엔진에 의해 생성된 사실적 영상을 보여준다.

    대표적인 물리엔진으로는 ‘하복(Havok)’과 ‘피지엑스(PhysX)’가 있다. 하복은 ‘헤일로 3’, ‘스타크래프트 2’, ‘엘더스크롤5: 스카이림’, ‘언차티드’ 등의 게임에 사용됐고 소스 엔진 등에 통합 판매되기도 한다. 피지엑스는 ‘기어즈 오브 워3’, ‘배트맨: 아캄 시티’, ‘앨리스: 매드니스 리턴즈’, ‘마피아2’ 등의 게임에 사용됐고 언리얼 엔진 등에 통합 판매되기도 한다.

    물리엔진은 게임에서만 필요한 것은 아니다. ‘트랜스포머’ 등과 같은 영화 특수효과에서도 물리 법칙을 구현하는 것은 필수적이다. 그런데 영화 특수효과에서 사용되는 물리엔진과 게임 물리엔진 사이에는 차이점이 있다. 1초에 24장의 화면을 보여주는 영화에서는 고품질 영상을 얻기 위해서 한 화면을 만드는데 몇 시간이 걸리더라도 이를 감수한다. 하지만 게임에서는 1초에 30장 이상의 화면을 그 자리에서 생성해야 한다. 따라서 고난도의 복잡한 물리 공식을 초 마다 풀어내는 것은 어려운 일이다.

    초기 물리엔진은 포탄 탄도 계산 등의 간단한 기능만을 제공했으나 이후 지속적으로 기능을 확장해서 지금은 약간 어색한 수준이나마 옷과 같은 변형체, 연기와 같은 유체도 처리할 수 있다. 이는 컴퓨터 하드웨어와 소프트웨어의 발달 덕분에 가능해졌다. 특히 눈부시게 진화하는 CPU와 그래픽 카드에 힘입은 바가 크다.

    복잡한 변형체와 유체 등을 처리하는 이론은 이미 ‘캐러비안의 해적’ 등과 같은 영화의 특수효과 제작에 이용되고 있다. 이런 정도의 물리 효과를 게임에서 구현하기는 아직 어렵다. 하지만 컴퓨터 하드웨어와 소프트웨어는 꾸준히 발전하고 있기 때문에 파도치는 바다 등을 표현하는 물리엔진의 등장은 멀지 않았다고 말할 수 있다.

    필자가 관찰한 바에 따르면 컴퓨터학과에 입학하는 학생 중 10% 정도는 게임 개발자를 꿈꾼다. 이런 신입생과 상담할 때 항상 하는 말이 있다. “게임 산업을 선도하는 개발자가 되고 싶은가? 그렇다면 수학과 물리 공부에 집중하라.” 이제 물리 효과를 생성하지 못하는 게임은 상상할 수 없고 물리와 수학을 모른다면 절대로 훌륭한 게임 개발자가 될 수 없기 때문이다.

    글 : 한정현 고려대학교 컴퓨터통신공학부 교수

    댓글을 작성하시려면 로그인을 하셔야지만 작성가능합니다. [로그인하기] [회원가입하기]
    번호 제목 글쓴이 추천 조회 작성일
    3987 [소식]엔트리브소프트, AOS 'HON(혼)' 개발자 인터뷰 영상 공개 ♣서로해♣ 0 1983 12/02/03
    3986 [소식]전략 웹 RPG '신선도', 9일 공개 서비스 개시 ♣서로해♣ 0 1938 12/02/03
    3985 [소식]알투비트, 두근두근 랜파티 통해 유저와 호흡 ♣서로해♣ 0 2002 12/02/03
    3984 [소식]파이터스클럽, 전투 고릴라 아이템 공개 ♣서로해♣ 0 1836 12/02/03
    3983 [소식]기대작 '리프트' 15세 결정...CBT 분위기 임박 +1 ♣서로해♣ 1 2078 12/02/03
    3982 [소식]스마트 세상, 애플이 만들고 '한국'이 키운다! ♣서로해♣ 0 1998 12/02/03
    3981 [소식]고객이 '王`(?) 천만에!…`못된 유저` 싹을 자른다 ♣서로해♣ 0 2071 12/02/03
    3980 [소식]웹게임 ‘무역왕’, 8일 공개서비스 ♣서로해♣ 0 1824 12/02/03
    3979 [소식]짱구는 못말려 온라인, 구슬 먹은 고양이 테스트 진행 ♣서로해♣ 0 2197 12/02/03
    3978 [소식]홈런배틀2, 국내 오픈마켓 3사 출시 기념 캐쉬아이템 증정 이벤트 실시 ♣서로해♣ 0 2017 12/02/03
    3977 [소식]나루토·원피스, 못 다한 경쟁은 게임으로… ♣서로해♣ 0 6263 12/02/03
    3976 [소식]게임 더 실감나게 만들려면 물리 알아야한다? ♣서로해♣ 0 1969 12/02/03
    3975 [소식]세븐코어, 15일 정식 오픈에 앞서 '고화질 프로모션' 영상 공개 ♣서로해♣ 0 1875 12/02/03
    3974 [소식]갈라랩, 이터널블레이드에 신규 캐릭터 '시프' 추가 ♣서로해♣ 0 1850 12/02/03
    3973 [소식]JCE, '진짜 남자의 무협' 천룡팔부 홈페이지 공개 ♣서로해♣ 0 2052 12/02/03
    3972 [소식]게임 '이터널블레이드', 신규 캐릭터 공개 ♣서로해♣ 0 2011 12/02/03
    3971 [소식]무협 게임 '천룡팔부', 공식사이트 열려 ♣서로해♣ 0 2953 12/02/03
    3970 [소식]한국판 LoL, 난데없는 `중국앓이` 대체 왜? ♣서로해♣ 0 3277 12/02/03
    3969 [소식]‘남자(男子)의 액션충동’, '블러디헌터' 프로모션 영상 공개 ♣서로해♣ 0 2142 12/02/03
    3968 [소식]투니랜드, ‘내맘대로 Z9별’ 채널링 서비스 ♣서로해♣ 0 2209 12/02/03
    3967 [소식]리그오브레전드, AOS? 아니죠~ MOBA? 맞습니다! ♣서로해♣ 0 2221 12/02/03
    3966 [소식][리뷰] 중국 10대 웹게임다운 재미와 콘텐츠로 무장한 '신선도… ♣서로해♣ 0 6607 12/02/03
    3965 [소식]스타일 FPS '머큐리:레드', 개성 넘치는 모델들 앞세워 공개… ♣서로해♣ 0 2228 12/02/03
    3964 [소식]투니랜드, 내맘대로 Z9별 채널링 서비스 시작 ♣서로해♣ 0 2003 12/02/03
    3963 [소식]네오위즈게임즈, 'FIFA 온라인2'의 클럽시스템 테스터 모집 ♣서로해♣ 0 1861 12/02/03
    3962 [소식][주목 e게임] 속도감 짜릿…러닝맨 나가신다 ♣서로해♣ 0 1971 12/02/03
    3961 [소식]PS 비타 출시 기념 행사와 특별 판매 +1 웃기지마 1 2106 12/02/03
    3960 [소식]바이오하자드 오퍼레이션 라쿤 시티, 일본 발매일 웃기지마 0 2609 12/02/03