• 1나루토매니아
  • 2뱅이
  • 3푸타코타
  • 4완벽그자체
  • 5해삼
  • 1뱅이
  • 2나루토매니아
  • 3알짜배기
  • 4뱅이
  • 5빙그레우유
[소식] 게임 더 실감나게 만들려면 물리 알아야한다?
연속출석 :
1일 랭킹 : 8위 명예4
89%
89% (266413 /300000)
  • 댓글 0 |
  • 추천 0 |
  • 조회 1932 |
  • 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% 정도는 게임 개발자를 꿈꾼다. 이런 신입생과 상담할 때 항상 하는 말이 있다. “게임 산업을 선도하는 개발자가 되고 싶은가? 그렇다면 수학과 물리 공부에 집중하라.” 이제 물리 효과를 생성하지 못하는 게임은 상상할 수 없고 물리와 수학을 모른다면 절대로 훌륭한 게임 개발자가 될 수 없기 때문이다.

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

    댓글을 작성하시려면 로그인을 하셔야지만 작성가능합니다. [로그인하기] [회원가입하기]
    번호 제목 글쓴이 추천 조회 작성일
    4004 [소식][ios]도돈파치 대왕생 2월 9일 발매예정 웃기지마 0 1957 12/02/04
    4003 [소식]컴투스 왜 이러나?, 하드코어 좀비 리듬액션 '좀비밴드(Zombie Ban… +2 웃기지마 0 2325 12/02/04
    4002 [소식]페르소나 4U, 아케이드판 오프닝 +2 웃기지마 0 2312 12/02/04
    4001 [소식]샤이닝 블레이드, 시스템 개요 공개 웃기지마 0 8006 12/02/04
    4000 [소식]네오위즈인터넷, 전략 시뮬레이션 게임 삼국대전 출시 예정 및 안드로이… 웃기지마 0 2034 12/02/03
    3999 [소식]이것이 진짜 디펜스다, 현장감 넘치는 3D 디펜스 원더랜드2 출시 완료, … 웃기지마 0 2236 12/02/03
    3998 [소식]소니, 게임에서 난 이익 모바일에 투입 웃기지마 0 2089 12/02/03
    3997 [소식]게임 '라스트오브어스', 언제 출시? ♣서로해♣ 0 2517 12/02/03
    3996 [소식]공포 게임 바이오하자드, 최신작 4월 출시 +1 ♣서로해♣ 0 3120 12/02/03
    3995 [소식][리뷰] "야겜이 아니고요. 신작 MMORPG라니까" ♣서로해♣ 0 28244 12/02/03
    3994 [소식]'혼' 개발에 얽힌 인터뷰 영상 공개 ♣서로해♣ 0 2519 12/02/03
    3993 [소식]프리잭, OBT 기념해 노스페이스 패딩 경품 이벤트 진행 ♣서로해♣ 0 2035 12/02/03
    3992 [소식]'쾌걸삼국지' 1차 CBT 테스터 모집 실시 ♣서로해♣ 0 2139 12/02/03
    3991 [소식]'파인딩네버랜드온라인' 던전과 퀘스트로 유니크 아이템 획득… ♣서로해♣ 0 2115 12/02/03
    3990 [소식]'열혈협객' 고레벨을 위한 2, 3차 윤회 축생도 업데이트 실시 ♣서로해♣ 0 1982 12/02/03
    3989 [소식]우주에서 펼쳐지는 치열한 두뇌게임, 은하대전 ♣서로해♣ 0 3724 12/02/03
    3988 [소식]라그나로크 온라인2, 신규 일러스트 깜짝 공개 +1 ♣서로해♣ 1 2352 12/02/03
    3987 [소식]엔트리브소프트, AOS 'HON(혼)' 개발자 인터뷰 영상 공개 ♣서로해♣ 0 1952 12/02/03
    3986 [소식]전략 웹 RPG '신선도', 9일 공개 서비스 개시 ♣서로해♣ 0 1894 12/02/03
    3985 [소식]알투비트, 두근두근 랜파티 통해 유저와 호흡 ♣서로해♣ 0 1966 12/02/03
    3984 [소식]파이터스클럽, 전투 고릴라 아이템 공개 ♣서로해♣ 0 1806 12/02/03
    3983 [소식]기대작 '리프트' 15세 결정...CBT 분위기 임박 +1 ♣서로해♣ 1 2040 12/02/03
    3982 [소식]스마트 세상, 애플이 만들고 '한국'이 키운다! ♣서로해♣ 0 1968 12/02/03
    3981 [소식]고객이 '王`(?) 천만에!…`못된 유저` 싹을 자른다 ♣서로해♣ 0 2033 12/02/03
    3980 [소식]웹게임 ‘무역왕’, 8일 공개서비스 ♣서로해♣ 0 1786 12/02/03
    3979 [소식]짱구는 못말려 온라인, 구슬 먹은 고양이 테스트 진행 ♣서로해♣ 0 2158 12/02/03
    3978 [소식]홈런배틀2, 국내 오픈마켓 3사 출시 기념 캐쉬아이템 증정 이벤트 실시 ♣서로해♣ 0 1969 12/02/03
    3977 [소식]나루토·원피스, 못 다한 경쟁은 게임으로… ♣서로해♣ 0 6196 12/02/03