게임 엔진 멋진 신세계

게임 엔진이란?
컴퓨터 비디오 게임 같은 실시간 그래픽 표시 기능을 갖춘 상호작용 응용 프로그램을 구현하는 핵심 소프트웨어 구성 요소.
컴퓨터 게임 개발에 바탕이 되는 기술을 제공하여 개발 과정을 단축시켜 줄 뿐 아니라, 게임을 다양한 플랫폼에서 실행할 수 있게 해주기도 한다. 특히 게임 엔진은 재사용성을 염두에 두고 있기 때문에, 하나의 게임에 종속되지 않고 여러 종류의 게임에서 사용될 수 있도록 개발된다.

게임 엔진이 제공하는 주요 기능
2D그래픽이나 3D그래픽의 출력을 위한 렌더린 엔진(렌더러), 물리 엔진, 충돌 검출과 충돌 반응, 사운드 출력, 스크립트 작성, 애니메이션, 인공 지능, 네트워크, 스트리밍, 메모리 관리, 쓰레딩, 씬 그래프 등이 있다.

게임 엔진은 게임 소프트췌어의 구성에 필요하 소프트웨어 구성 요소를 재사용할 수 있게 만든 것이다. 엔진은 개발에 필요한 기능을 즉시 사용할 수 있도록 제공하여 개발의 단가와 복잡도를 줄여주고, 제 일정에 복잡한 게임을 출시할 수 있게 해준다.
게임 엔진은 유연하고 재사용 가능한 소프트웨어 환경을 제공해주는 점 때문에 '게임 미들웨어'라고 불리기도 한다. 게임 미들웨어라고 불리는 시스템들은 구성 요소 기반의 구조를 가지는 것이 많다. 그로 인해 게임의 특정 시스템을 더 전문적인 미들웨어 구성 요소로 대체하거나 확장할 수도 있다. 렌더웨어 같은 게임 엔진의 경우, 아예 일련의 미들웨어 구성 요소들을 느슨하게 연결하는 방식으로 설계되었다. 개발사가 그 중 적당한 것만 선택해 자신들이 사용하는 엔진과 결합할 수 있는 것이다.
이름과 달리 게임 엔진은 다른 분야에서도 사용된다. 홍보용 데모나 건축 시각화, 훈련 시뮬레이션, 모델링 환경 등 실시간으로 그래픽을 출력하는 상호작용 응용 프로그램들이 좋은 예이다.

주요한 기능
1) 렌더링 엔진
렌더링 엔진은 2D나 3D 그래픽의 표현을 담당한다. 이 기술은 컴퓨터 비디오 게임에 있어 가장 주목을 받는 기술인만큼, 거의 모든 게임 엔진이 반드시 제공하는 기능이다. 지금과 같은 게임 엔진이 3D와 일인칭 슈팅 게임 시대부터 시작되었지만, 아마추어 개발자나 2D그래필에 대한 요구로 인해 2D게임 엔진도 다수 등장했다.
1990년대 중후반에 폴리곤 객체를 묘화하는 게임들이 등장한 이래로 렌더링 엔진은 많은 발전을 거쳤다. 2007년의 게임 엔진은 하이 다이내믹 레인지 렌더링, 픽셀 셰이더, 정점 셰이더, 법선 맵핑, 피사계 심도, 레벨 오브 디테일, 광산란 시뮬레이션, 소프트 쉐어도 같은 기술이 지원되는 추세이다. 또한 오늘 날의 게임 엔진은 3D게임 세계를 객체 지향적으로 묘사하는 씬 그래프도 제공한다. 씬 그래프는 게임의 설계를 단순화시켜주고 거대한 가상 세계를 더욱 효율적으로 렌더링할 수 있게 해준다.
어떤 엔진은 다른 필요한 기능을 모두 빼고 실시간 3D그래픽스 렌더링 기능만을 제공하기도 한다. 이런 엔진은 게임 개발사가 나머지 기능을 스스로 작성하거나, 다른 미들웨어 구성 요소와 조합해야만 한다. 이런 형식의 엔진은 보통 '그래픽스 엔진','렌더링 엔진'으로 불린다. 그래픽스 엔진에는 렐를 포지, 오거, 크리스털 스페이스, 제네시스 3D 등이 있다.

2) 시각적인 개발 도구
게임 엔진은 시각적인 GUI개발 도구들이 통합 개발 환경으로 제공하고 데이터 주도 방식의 개발을 가능하게 하여 프로그래머가 아닌 다른 사람도 프로그래밍 지식 없이 엔진의 기능을 활용할 수 있게 해준다. 엔진이 가장 흔히 제공하는 개발 도구는 레벨 에디터로 게임이 진행되는 장소인 레벨을 구성하고 편집하는 도구이다. 이 도구는 대체로 위지윅 방식을 지원하기 때문에 게임 디자이너나 그래픽 디자이너가 손쉽게 게임 로직와 연결된 레벨을 만들 수 있다. 이런 특징 때문에 레벨 에디터는 게임을 플레이하는 최종 사용자에게 전달되어 플레이어 스스로 레벨을 만들 수 있게 해주기도 한다. 또한 레벨 에디터는 다른 개발 도구의 허브가 되거나 다른 도구와 통합되어 게임의 설계 과정을 전체적으로 관리할 수 있는 도구가 되기도 한다.

3) 플랫폼 추상화 
많은 게임 엔진은 다른 미들웨어 프로그램처럼 플랫폼 추상화를 제공하기 때문에, 비교적 손쉽게 같은 게임을 다양한 플랫폼에서 실행할 수 있게 해준다. 소스 코드에 아주 적은 혹은 어떤 수정도 없이 게임 콘솔과 개인용 컴퓨터 모두에서 실행 가능한 게임을 만들 수 있는 것이다.
많은 3D엔진이나 게임 엔진의 렌더링 시스템은 그래픽 처리장치나 비디오 카드의 소프트웨어 추상화를 제공하는 다이렉트3D나 오픈 GL같은 그래픽스 API를 기초로 만들어진다. 또한 게임에 일반적으로 사용되는 다이렉트X나 SDL, 오픈 AL 같은 저수준 라이브러리는 입력 장치, 네트워크 카드, 사운드 카드 같은 컴퓨터 하드웨어에 접속하기 위해 하드웨어와 독립된 접속을 제공한다.

4) 물리 엔진
물리 엔진은 실제 세계의 물리 작용을 컴퓨터로 모사하여, 보다 사실적인 게임 환경을 제공해준다. 게임 엔진 초기에는 충돌을 감지하고 반응하는 것이 엔진이 제공하는 물리 기능의 대부분이었다. 그러다 현실과 가까운 물리 엔진이 크게 대두된 것은 소스 엔진에 탑재된 하복 물리 엔진의 물리 시뮬레이션 기능을 활용한 일인칭 슈팅 게임<하프라이프2>가 공개되고 나서였다.
물리 엔진이 지원하는 기능은 크게 차량, 강체, 액체, 랙돌, 직물과 연체 효과 등이다.

5) 쓰레딩
쓰레딩은 오늘날의 멀티 코어 시스템과 사실성에 대한 요구의 증가 때문에 게임 엔진에서 중요한 위치를 차지하게 되었다. 일반적인 쓰레드는 렌더링, 스트리밍, 사운드, 그리고 물리를 수반한다.

미들웨어
어떤 회사들은 전문적으로 '미들웨어'라 불리는 소프트웨어 묶음을 개발해서 다른 게임 개발사가 게임을 만드는 데 필요한 구성 요소들을 제공한다. 대부분의 미들웨어 소프트웨어는 그래픽, 사운드, 물리, AI등 특정 기능의 개발을 쉽게 해준다. DX 스튜디오, 게임브리오, 렌더웨어가 널리 사용되는 미들웨어 소프트웨어들의 예이다.
기능성있는 서브 시스템들을 제공하여 널리 사용되는 미들웨어는 하복 물리 엔진과 RAD게임 툴즈의 시스템들이 있다. 하복 물리 엔진은 사실적이 물리 시뮬레이션 시스템을 제공하며, RAD게임 툴즈는 비디오 렌더링, 오디어 녹음재생, 그리고 3D렌더링을 위한 시스템들을 개발하고 있다.

MMOG 미들웨어
대규모 다중 사용자 온라인 게임(MMOG)을 위한 미들웨어는 일인용 게임을 위한 것보다 더 복찹하다. 하지만, MMOG의 인기가 증가하면서 그러한 미들웨어 패키지의 개발도 늘어나고 있다.

개발과 이용
게임 엔진은 주로 게임과 함께 개발된다. 제작에 들어가기 전에 프로젝트 관리자와 프로그래머, 게임 디자이너 등이 함께 게임 프로그램의 설계 방향을 결정하는데, 엔진을 직접 개발할 것인지 개발된 것을 쓸 것인지도 이때 결정한다.
개발된 것을 사용할 경우 예산과 일정을 단축시킬 수 있지만, 개발할 게임과 상성이 맞지 않을 경우 역효과가 난다. 물론 아무리 범용적인 엔진이라도 모든 게임이 요구하는 바를 모두 총족하지는 못 하기 때문에, 게임 개발사가 자신들의 게임에 맞춰 최적화하거나 개조하는 경우가 많다. (상용 게임 개발사를 위한 상용 엔진은 대부분 구입자에게 소스를 공개한다.) 스프린터 셀 시리즈는 구입한 엔진을 개조한 대표적인 예이다. 처음에 언리얼 엔진 2.5를 구입했지만, 시리즈를 거듭할수록 자신들의 게임에 맞게 엔진을 개조해왔다.

직접 엔진을 개발하는 경우는 자신들의 게임에 맞는 엔진이 없는 경우이다. 일인칭 슈팅 게임 <헤이즈>의 개발팀은 자신들의게임이 가진 특징을 살리기 위해 스스로 엔진을 개발했다. 직접 개발하는 엔진도 사내의 다른 프로젝트나 후속 프로젝트를 고려해 범용성을 보장해야 하는 경우가 있다. 나아가 어떤 개발사들은 연구개발팀을 따로 두어 회사 프로젝트 전용의 게임을 개발하기도 한다. 일본의 게임 개발사인 캡콤은 회사의 자체 엔진인 MT프레임워크를 꾸준이 개발하고 있고, <로스트 플래닛>과 <데드 라이징>에 이 엔진이 쓰였다.
판매를 위해 개발되는 엔진은 그 범용성이 관건이 된다. 에픽 게임즈의 언리얼 엔진은 판매를 목적으로 개발된 엔진으로, 특히 언리얼 엔진 3는 기존의 일인칭 게임 중심 구조에서 벗어나 범용성을 더욱 강화했다. 그 외에 판매 목적으로 엔진을 개발하는 회사소는 크라이엔진의 크라이텍과 토크 게임 엔진의 게러지게임즈가 있다.

취미 개발
게임 엔진의 개발은 컴퓨터 과학도와 취미 개발자 모두에게 인기있는 프로젝트이다. 엔진 개발은 기하학, 색상 이론, 전산학에 대한 학제적 이해가 강력하게 요구되는 일이지만, 시각적인 겨로가가 나오는 프로젝트이기 때문에 그런 개발자들은 그것을 재미와 보상으로 받아들인다. 그 중 크리스털 스페이스는 유명한 오픈 소스 멀티플랫폼 게임 엔진이다.

주요한 게임 엔진들
언리얼 엔진 시리즈 - 에픽 게임즈가 개발, 초기 때부터 범용성이 좋아 널리 쓰였으며 언리얼 엔진3부터는 더욱 범용성이 강화되어 가장 널리 사용되는 상용 엔진이다.
소스 엔진 - 밸프 코퍼레이션이 개발
이드 테크 시리즈 - 이드 소프트웨어가 개발
크라이엔진 시리즈 - 크라이텍이 개발
게임브리오 
토크 게임 엔진 - 저렴한 엔진으로 독립 개발자들이 주로 사용하는 게임 엔진이다.


소스 엔진(Source Engine)


미국의 밸브 코퍼레이션에서 개발한 3차원 게임 엔진이다. 셰이더에 기초를 둔 렌더러, 정확한 립싱크, 표정 기술, 그리고 실사 같은 그래픽을 제공하면서도 낮은 요구 사양, 뛰어난 사양 최적화 능력, 네트워크 엔진을 내장하며 물리 엔진인 하복 엔진을 포함한다. 현재 소스 엔진 중 최신 버전인 에피소드 2소스 엔진은 하프라이프2: 에피소드2, 팀 포트리스2, 포털, 데이 오브 디피티드:소스 등에 쓰였으며 렌더링 엔진의 성능이 개선되고 멀티코어에도 최적화가 되었으며 실시간 광원 효과, 모션블러 등의 그래픽 효과를 지원한다.

소스 엔진을 사용한 게임들
마비노기 영웅전, 하프라이프 2시리즈, 카운터 스트라이크:소스, 카운터 스트라이크 컨디션 제로:소스, 데이 오브 디피트:소스, 팀 포트리스 2, 다크메시아: 마이트&매직, 좀비 패닉:소스, 스팅, 포털


no.75 OB라는 이름의 정겨움 누군가에 관한 이야기

그렇다. 어제가 바로 그날이었다. 박대기 기자를 단숨에 스타로 만들어버리고, 연봉을 3억 넘게 받는다는 기상 예보관을 검색하게 만든, 바로 대폭설이 내린 날이었다.
운이 좋게도, 아침에 일찍 눈이 떠져서 평소보다 10분 정도 일찍 출발했다. 현관문을 여는 순간, 오랜만이었다. 새벽에 소리없이 내리는 눈을 마주한 것이. 출근 대란과 온갖 무용담이 난무하는 것을 보았을 때, 나는 정말 안전하게 지하철에 안착하여, 도착했다.

폭설로 인해 동아리 합숙이 미뤄졌단다. 덕분에 오랜 만에 보는 선배의 얼굴을 마주할 수 있었다. 사시에 합격하여 합숙을 가는 그 선배를 중심으로 동아리 OB들이 모였다. 테이블 B에 모여 앉아 맥주를 건네는데, 뭔가 시간 여행을 한 듯한 느낌이었다. 서로를 보며 웃고 떠드는 얼굴들 속에서 예전의 기억들이 속속 떠오른다. 뭔지 모르겠지만, 예전에도 마치 이 구도 그대로 이야기 하고 있었던 느낌. 그네들은 연속된 시간 중, '과거'라는 이름의 시간을 뚝 자른 한 단면에서 불쑥 튀어나온 듯이 너무도 자연스럽게 웃으며 이야기 하고 있었다. 이런 느낌을 간단하게 '정겨움'이라고 표현하나 보다.

물론, 다들 조금씩 다른 위치에 놓여있다. 연수원으로, 일터로, 학교로, 각자의 공간으로 흩어질 것이다.

최근에 문득 든 생각인데, 모든 사람들은 매 순간 혹은 매일 새로운 시작점에 놓여있는 것 같다. 인생에 완성 혹은 성숙이라는 시점을 명확히 꼽을 수 없는 것처럼, 매일 새로운 시작점에서 새로운 곳으로 발을 내딛고 있는 것. 왜 시간이 지나도 '불완전'한 것처럼 느껴질까,를 고민하다 나온 결론인가 보다. 어느 순간도 모든 것이 완전한, 완벽한 시점은 아니다. 혹은 "완전체"라는 단계는 존재하지 않는다.

어제 만난 사람들도 그 단계의 어느 즈음에 놓여있을 뿐, 끝이 아니다.
Life is supposed to be continued, since nobody could say it's over until it is really over.

[렛츠리뷰] 서울, 북촌에서

서울, 어디까지 가봤니?
대학교를 서울로 오면서 서울러 라이프를 시작했다. 어느 덧 서울 생활도 4년을 꽉 채워간다. 특히 멋모르던 새내기 때, 광화문, 코엑스, 종로, 명동, 청계천, 남산타원, 각종 공원, 압구정 등 서울에서 가봐야 할 곳은 쭈욱 마스터 했다. 그러다 서울문화재단에서 홍보대사 활동을 하면서 내가 무심코 지나갔던 서울의 구석구석이 역사와 오랜 삶의 흔적이 남아있는 곳이라는 걸 알게 되었다. 학교 근처 어느 절은 백석이 사랑했던 여인 자야가 사는 곳이라는 등 내가 모르는 서울 이야기, 아니 서울에서 태어나고 자란 사람도 모르는 서울에 대한 이야기가 가득했다. 이 책은 서울에서도 "북촌"의 이야기를 담고 있다. 마침, 가까운 성북동 이야기를 재미있게 읽었다. 이 책은 한 마디로, 우리의 삶의 공간인 도시 서울의 이야기다.  

서울의 이야기를 기록하다
이 책을 어디에 가면 무엇이 맛있고, 어떻게 가야한다, 정도의 정보를 얻는 책이라고 생각해선 안된다. 이 책은 "5년의 저술, 20년의 취재, 그리고 600년의 이야기"라는 말에 어울리게, 서울을 한꺼풀 벗겨내고 깊이 있게 카메라를 들이댄다. 담담하면서도, 따뜻한 시선으로 북촌의 이야기를 담아내되, 가벼운 정보를 제공하며 그 깊이를 쉽게 풀어내려하지 않는다. 말 그대로, 서울, 북촌에 대한 기록이다.

인상깊었던 부분: 성북동 세 집
성북동 주민은 아니지만 성북구 주민으로서, 성북동에 위치한 세 한옥에 대한 부분이 가장 인상깊었다. 한용운의 심우장, 이태준의 수연산방, 이종상 이재준의 별장 일관정에 대한 이야기이다. 개인적으로 좋아하던 작가였던 이태준 선생님의 가옥에 대한 이야기를 재미있게 읽었다. 특히 책에 실린 이태준 선생님의 가족 사진은 사진 한 장으로 집의 과거를 고스란히 보여주는 듯 했다. 일반인에게도 개방하는 듯, 네이버에서 이미지 검색을 하니 다음과 같은 사진이 떴다. 이미지 출처를 밝힌다. 혹시라도 문제가 되지 않기를...

이미지 출처:  http://blog.naver.com/jojo4876?Redirect=Log&logNo=10024654941

이 책을 읽고, 한 번 시간을 내서 가보고 싶은 생각이 들었다. 멀지 않은 곳, 서울이다. 그러나 우리가 잘 몰랐던 곳이다.

결론: 서울에 대해 다시 눈길을 두게 만드는 책
이 책을 권하고 싶은 사람이 있다면, 초등학생 아이를 둔 부모님 혹은, 서울의 역사에 관심이 있는, 그러나 아는 것보다 모르는 것이 모르는 대학생들이다. 그냥 스처 지나가는 것이 아니라, 한옥 하나에도 이러한 이야기가 있다는 것을 아이들에게 알려주면서 한 번 더 눈길을 주면, 우리가 사는 서울이라는 도시의 이야기가 새로 쓰여질 것이다.


1 2 3 4 5 6 7 8 9 10 다음