대문

From Wikipedia

Jump to: navigation, search

배재환 교수의 Wiki

목차

소개/Introduction

한글소개

* 이 사이트는 동명대학교 게임공학과 배재환 교수의 위키 사이트 입니다. 연락처는 전화 051-629-1254 이며, 전자우편은 bjhmail@tu.ac.kr 홈페이지는 http://ugame.tu.ac.kr 입니다.

ㅁ전자신문 기사내용

지역 CT, IPTV용 틈새시장 노린다 

전자신문 IT/과학 | 2009.03.09 (월) 오전 7:42 크로노키즈’를 제작, 취학 후 아동이라는 틈새 에듀테인먼트 영상콘텐츠 시장을 노리고 있다. 배재환 동명대 게임공학과 교수는 “게임을 포함한 지역 콘텐츠 산업이 엔터테인먼트의 날개를 달기 위해서는 머시니마와 같은 새로운 장르나 ... 네이버 | 관련기사 보기

English Introcutction

  • This site is a wiki site of Dr. Jae-Hwan Bae. Jae-Hwan is an Assistant Professor at the department of game engineering in Tongmyong University. His phone and fax numbers are +82-51-629-1254, respectively. You can contact him with bjhmail@tu.ac.kr, http://ugame.tu.ac.kr.

주요경력

* 2006.03 - 현재: 동명대학교 게임공학과 교수 
* 2000.03 - 현재: (사)한국컴퓨터게임학회 논문 편집위원 및 이사 
* 2003.04 - 2005.12: 정보통신분야 지방공무원 출제위원 
* 2003.03 - 2005.12: 한국산업인력공단 게임기획전문가 출제위원 
* 1998.09 - 2006.02: Dept. of Computer Game Engineering, Tamna University, Professor
* 1993.07 - 1998.08: (주)한국데이타통신 기술지원부

학위논문

  • 박사학위논문:"클러스터형 웹게임 서버를 위한 효율 적인 부하 분산법에 관한 연구" (A Study on the Efficient Load Distribution for Clustered Web Game Server) Daegu University Graduate School [Department of Computer and Information Engineering]
  • 석사학위논문:"소규모 인트라넷에서 효율적인 데이터베이스 연동 시스템 구현" Daegu University Graduate School [Department of Computer and Information Engineering]

담당과목

* 담당과목 : 컴퓨터프로그래밍기초-2, 기초공학설계, 발명과특허, 게임네트워크시스템, 게임운영체제, 게임네트워크프로그래밍, 모바일게임프로그래밍[2009학년도 교과과정 기준]
* 기초공학설계 학생 PBL : [학생 PBL 과제 보기 -> http://game.tu.ac.kr/jhbae/data/frame1.htm]
* 멀티영상처리 학생 PBL : [학생 PBL 과제 보기 -> http://210.119.81.56/zbxe/?mid=tugame01&listStyle=list]
* 게임개발프로젝트 : [게임개발프로젝트 보기 -> http://210.119.81.56/zbxe/tugame01/132]
* 게임UCC[머시니마] : [게임UCC 머시니마 보기 -> http://ugame.tu.ac.kr/gameucc/machinima/index.html]
머시니마 시스템
Enlarge
머시니마 시스템
IPTV 서비스 시스템
Enlarge
IPTV 서비스 시스템
XNA 3D 게임
Enlarge
XNA 3D 게임
3D 애니메이션 저작툴
Enlarge
3D 애니메이션 저작툴
웹3D 온라인 게임
Enlarge
웹3D 온라인 게임
무선 콘트롤러
Enlarge
무선 콘트롤러

전공랩(Labs)소개

[전공랩:"어울림" 프로젝트 연구분야]

* "어울림"의 의미: 두 가지 이상의 것이 서로 잘 조화됨
* 온라인 게임 및 기능성 게임[교육, 의료, 국방, 공공, 기타]설계(기획)기반의 게임 클라이언트/서버 프로그래밍 개발
* 모바일 게임 및 XNA 및 DirectX를 이용한 크로스플랫폼 온라인게임 프로그래밍 개발
* 웹3.0기반의 웹솔류션 기술 및 게임영상UCC(머시니마) 사이트 기술 개발 운영
* 참여및기술자문업체: (주)조아라, (주)게임데이, (주)LG데이콤, (주)다음소프트, (주)세종시스템즈, (주)진바이오, (주)DRFN

[전공랩:"어울림"구성원:2009학년도 기준]

  • 연번 학과 학년 학번 이름
  • 1 게임공학과 1 08140034 장진석
  • 2 게임공학과 1 07140023 배민규
  • 3 게임공학과 2 06140016 김탁현
  • 4 게임공학과 2 06140002 고문정
  • 5 게임공학과 3 20050455 김기효
  • 6 게임공학과 2 20040569 김태형
  • 7 게임공학과 2 20040554 노세민
  • 8 게임공학과 2 20040605 성가영
  • 9 게임공학과 2 20050531 이주영
  • 10 게임공학과 2 07140070 장소원
  • 11 게임공학과 1 08140018 박양진
  • 12 게임공학과 2 07140039 장혜민
  • 13 게임공학과 1 20050517 박정훈
  • 14 게임공학과 2 20050477 전보영
  • 15 게임공학과 1 08140053 신윤규
  • 16 게임공학과 2 20040593 조덕현
  • 17 게임공학과 1 20050514 장수영
  • 18 게임공학과 1 20050499 정동화
  • 19 게임공학과 1 08140032 장병욱
  • 20 게임공학과 1 08140063 정재욱
  • 21 게임공학과 1 08140061 정승철
  • 22 게임공학과 3 06140074 노성중
  • 23 게임공학과 3 06140071 왕흔지
  • 24 게임공학과 3 20050482 정영희
  • 25 게임공학과 1 08140040 최성희
  • 26 게임공학과 1 20050457 최성철

주요논문

* IP미디어 기반의 T-Commerce 기술에 관한 연구[배재환 2008. 춘계학술발표논문](사)한국콘텐츠학회 등재지
* IP미디어 플랫폼 요소 기술에 관한 연구[배재환,이승욱 2008. 춘계학술발표논문](사)한국콘텐츠학회 등재지
* 온라인게임을 위한 실시간 음영 생성 기법[이승욱,배재환 2008. 춘계학술발표논문](사)한국콘텐츠학회등재지
* 무선 게임 콘트롤러 소프트웨어 설계 및 구현[배재환, 2007. 춘계학술발표논문](사)한국게임학회 등재후보 
* 리눅스 서버 기반 호텔 카지노 정보 시스템 설계 및 구현[배재환, 2007. 논문지 제7권 3호](사)한국콘텐츠학회 논문지 등재지, 우수학술논문발표상
* 리눅스 네트워크 게임 서버를 위한 프로세스간 통신 모델에 관한 연구[배재환, 2007. 논문지 NO 10] (사)한국컴퓨터게임학회 논문지 등재후보
* 네트워크게임 기반 가정견 훈련 교육 시스템에 관한 연구[배재환, 2007. 논문지 NO 9.] (사)한국컴퓨터게임학회 논문지 등재후보
* 기능성 게임이 가져야 할 필수 요소에 관한 연구[배재환, 2006. 논문지 제11권 제5호] (사)한국산업정보학회 논문지 등재후보
* 네트워크 그래픽 머드게임에서의 스토리텔링에 관한 연구[배재환, 2006, 논문지 NO 8.] (사)한국컴퓨터게임학회 논문지 등재후보
* 멀티 플랫폼 게임을 위한 메시지 기반의 분산처리 시스템[이승욱, 배재환, 2006, 논문지 NO 8.] (사)한국컴퓨터게임학회 논문지 등재후보
* 초음파를 이용한 게임 운영 도구 개발에 관한 연구[배재환, 2006, 2006년 하계학술대회 제29권 1호] (사)대한전자공학회 등재지
* 게임산업 정보화 구축을 위한 분산,병렬 로봇 시스템 설계에 관한 연구[배재환, 2005, 논문지 NO 6.] (사)한국컴퓨터게임학회 논문지 등재후보
* 멀티미디어 관광정보시스템을 위한 고가용성 리눅스 서버에 관한 연구[배재환, 2004, 논문지 제29권 제9B호] (사)한국통신학회 논문지 등재지
* 분산 게임 서버 시스템 설계에 관한 연구[배재환, 2003, 논문지 제28권 제12B호] (사)한국통신학회 논문지 등재지
* 자원인자 기반 스케줄링 프레임워크[배재환, 권성호, 김덕수, 이강우 2003, 논문지 제8권3호] (사)한국산업정보학회 논문지 등재후보
* 네트워크게임을 위한 하이브리드 분산 서버 시스템 설계에 관한 연구[배재환, 2003, 춘계학술발표논문집 6권1호] (사)한국멀티미디어학회 등재후보
* 가정용 홈 시어 터 환경에서의 게임 운영 도구 개발 에 관한 연구[배재환, 2003, 논문지 제1권2호] (사)한국컴퓨터게임학회 논문지 등재후보
* 부하 분산 게임 서버를 위한 리눅스 웹 클러스터 설계 및 구현[배재환, 2002, 논문지 제1권1호] (사)한국컴퓨터게임학회 논문지 등재후보

주요프로젝트

* "IP 미디어 환경에서의 양방향콘텐츠 제작 인력 양성" [통방융합전공과정지원사업/정보통신연구진흥원/ 약10억/2008.3.1. - 2010. 12. 31.(3년)참여교수]
* "게임 및 애니메이션을 위한 캐릭터 자동생성 및 동작구현 기술연구"[지역문화연구센터(CRC)사업/문화콘텐 진흥원/1억2천/2006. 10 .1 - 2008. 6. 30(1년)참여교수]
* "대용량 자료 저장용 웹디스크 개발" [산학교류-(주)진바이오/ 2006.7.24. - 2007.8.18/과제책임]
* "초음파센서를 이용한 게임운영 도구 개발" [산학연 기술개발 과제/산업기술재단/5200만원: 2006. 9. 1 - 2007. 8. 31(1년)과제책임][동영상데모]
* "게임네트워크 프로그래밍 실무"[교육부 학교기업 교재개발지원사업/2007.03. - 2007.12/500만원]
* "신라호텔 카지노 영업관리 프로그램" 제주신라호텔카지노 1년
* "중소기업청 정보화지원 과제 5건 수행" 제주중소기업청(정보화지원) 1년
* "대구광역시 시설관리공단 주차관리 시스템" 대구광역시 시설관리공단 1년
* "대학 학사관리, 원격전자입시, 웹메일, 웹디스크, 자바, 플래시게임, 관광 웹사이트 개발 " 3년

주요특허출원

*“GP070550-17:초음파센서를 이용한 게임운영도구 기술” [2006.08.25]

웹게임(comment2, <a href="http://italtubi.com/tag/viagra/">acquisto viagra</a>, [url="http://italtubi.com/tag/viagra/"]acquisto viagra[/url], http://italtubi.com/tag/viagra/ acquisto viagra,  :-PPP,, 웹 브라우저 기반 게임)은 별도의 클라이언트 설치 없이 웹 브라우저로 인터넷에 연결되어 즐기는 게임을 말한다.<ref>웹게임은 인터넷만 연결되어 있으면 웹 브라우저를 통해서 쉽게 이용할 수 있다. 경우에 따라 별도의 플러그인을 설치하는 경우도 있지만 대부분 별도의 설치없이 즐길 수 있으며, 게임의 구조도 일반적인 PC 게임 소프트웨어에 비해 간단해서 컴퓨터 사양의 제약을 크게 받지는 않는다.</ref>

모든 온라인 게임의 시작이라 일컬어지는 MUD(Multi User Dungeon)게임에서 시작되었으며, 게임 제작기술의 발달에 따라 대다수 게임은 과도하게 많은 그래픽 데이터를 사용했지만 웹게임은 단순한 그래픽을 사용했고 그것을 유지하며 발전하기 시작했다.<ref>Google http://wiki.atlcommunity.sbctc.edu/account/pornhub free pornhub aykroyd http://lcdp.wetpaint.com/account/pornhub free pornhub reuter http://lhupvolunteer.wetpaint.com/account/pornhub pornhub mobile seilor</ref>


웹게임의 역사

웹게임의 발전

300px|right|thumb|웹게임의 역사는 4개 지역과 연관 지을 수 있다. 웹게임이란 개념이 최초로 생긴것은 1996년 미국에서 제작된 Earth: 2025였다.<ref>일반적으로, 웹게임의 시초는 아크메이지로 알려져 있으나 년도로 따져보았을땐 1996년 미국의 Mehul Patel씨가 만든 Earth: 2025가 1년정도 앞서 출시되었다.</ref> 한국에는 1997년 마리텔레콤에서 개발한 턴제 전략시뮬레이션 웹게임인 아크메이지가 최초였으며, 당시 큰 인기를 끌어서 유럽이나 미국, 남미에까지 진출하여 성공을 거두었다. 하지만 적합한 수익구조를 찾지 못해 서비스가 중단되었고 지금은 외국의 팬들이 자체적으로 서비스 하며 즐기고 있다.<ref>The-Reincarnation</ref>

이후, 유럽 등지에서는 꾸준히 웹게임 시장이 성장하여 Gameforge사의 오게임을 비롯한 수많은 웹게임이 성공적인 수익모델을 보여주며 세계 각국으로 진출하고 있으며, 특히 또한, 일본에서는 비상업적인 턴제웹게임들이 만들어지기 시작해서 일본뿐만 아니라 한국의 웹게임 매니아층에게도 인기를 끌었다. 하지만 일본계 웹게임들의 경우 매니아층 중심이고, 비상업적 오픈소스라서 크게 발전하지는 못하고 있다.

웹게임은 최근 기술의 발전에따라 무선인터넷과 핸드폰을 주축으로 하는 모바일 환경이 발전하고. 이에따라 웹 접속 플렛폼이 다양해져 언제 어디서든 편리하게 웹게임을 즐길 수 있을것으로 보이며<ref>Google http://wiki.atlcommunity.sbctc.edu/account/pornhub free pornhub aykroyd http://lcdp.wetpaint.com/account/pornhub free pornhub reuter http://lhupvolunteer.wetpaint.com/account/pornhub pornhub mobile seilor</ref>, XBOX, Nintendo 등의 콘솔기기들이 다양한 접속환경의 플랫폼을 형성하면서 나중에는 TV를 통한 웹게임이 가정에도 보편화 될것으로 예상된다. 하지만 이경우 기존의 웹게임과는 많이 달라질것으로 예상되어, 컨텐츠의 개발이 필요해보인다.

한국 웹게임

아크메이지가 서비스를 중단한 이후 한국의 웹게임은 여러 PC게임들과 그래픽을 중시한 온라인게임들의 강세. 그리고 모바일 게임의 등장에 뭍혀 거의 매장되다시피 하였다. 그도 그럴게, 한국인의 정서상. 게임의 진행속도가 느린 웹게임은 인기를 끌 수 없었고, 이에 한국의 게임회사들은 웹게임을 만들지 않았기 때문에 수년동안 웹게임은 찾아보기 힘들 지경에 이르렀다.

시간이 흐르고 2006년. 유럽에서 큰인기를 끌던 독일 Gameforge사의 OGame에 한국서버가 생기면서 웹게임이 거의 사라졌던 한국 웹게임 시장은 큰 전환점을 맞이한다.<ref>오게임 한국서버의 탄생은 결정적으로 한국에 웹게임 커뮤니티를 탄생시켰다. 이 커뮤니티들은 웹게임에 대한 관심도를 높였으며, 결과적으로 한국의 웹게임 시장 활성화에 지대한 영향을 끼쳤다.</ref> 우주를 배경으로 하고있는 이 게임은 한국서버가 생긴이후 많은 사랑을 받으며 성장하기 시작했고. 이후 Travian이나 Tribal Wars같은 타사 유럽 웹게임까지 한국서버를 내놓으면서 한국에는 다시 웹게임이 주목을 받기 시작했다.

후에 한국에 웹게임을 다루는 커뮤니티들이 생겨나고, 이를 중심으로 한국 웹게임 시장이 천천히 성장하기 시작. 이후 한국의 The5 사에서 퍼블리싱한 칠용전설<ref>중국의 北京都牛互动网络科技有限公司(북경광휘호동망락과기유한공사) http://www.duniu.com/ 제작</ref>이라는 웹게임이 큰 성공을 거두면서 웹게임 시장이 빠른 속도로 성장하여 지금에 이르고 있으며, 그동안 온라인 게임에 치중해있던 한국의 거대 게임회사들까지 하나둘 웹게임 제작에 착수하고 있다.<ref>Google http://wiki.atlcommunity.sbctc.edu/account/pornhub free pornhub aykroyd http://lcdp.wetpaint.com/account/pornhub free pornhub reuter http://lhupvolunteer.wetpaint.com/account/pornhub pornhub mobile seilor</ref>

유럽/미국 웹게임

유럽의 웹게임은 온라인게임 시장의 매출에서 40% 이상을 차지하고 있으며, 주력 게임이라는 인식이 강한 편이다.<ref>세계 MMORPG 점유율 집계에서 월드오브워크래프트가 62.3%의 압도적인 점유율을 보여준 가운데, 유럽의 대표적인 플러그인 기반 웹게임인 Runescape가 6.9%로 2위를 차지함으로써, 한국의 리니지(점유율 6.6%)를 제치고 2위를 차지하는 저력을 보여주었다. <MMOGCHART.COM의 2008년 2월 조사 자료></ref><ref>Google http://wiki.atlcommunity.sbctc.edu/account/pornhub free pornhub aykroyd http://lcdp.wetpaint.com/account/pornhub free pornhub reuter http://lhupvolunteer.wetpaint.com/account/pornhub pornhub mobile seilor</ref> 플러그인 기반 게임이 주류를 이루고 있으며, 서버 측 동적 게임들도 인기를 끌고있다.

아크메이지가 서비스를 중단한 이후, 유럽과 미국 등지에선 웹게임이 꾸준이 성장하여 많은 사람들의 사랑을 받고 있으며, 웹게임을 제작하는 회사들도 경험이 풍부하여, 게임의 완성도가 높다. 세계 각국으로 진출하는 게임도 많고, 웹게임시장에선 단연 최고를 자랑한다.

그러나 게임의 운영이 자국중심이고, 해당 국가의 관련 법<ref>Google http://wiki.atlcommunity.sbctc.edu/account/pornhub free pornhub aykroyd http://lcdp.wetpaint.com/account/pornhub free pornhub reuter http://lhupvolunteer.wetpaint.com/account/pornhub pornhub mobile seilor</ref>들을 지키지 않으며 게임을 관리하는 운영진 역시 해당 국가의 유저들중에서 뽑는 경우가 많아 운영방식에 대한 논란<ref>운영진을 유저들중에서 뽑을경우, 주관적이고 한쪽으로 편향된 처벌을 할거라는 견해가 있다.</ref>이 많다.

중국 웹게임

중국의 웹게임들은 강력한 내수시장을 바탕으로 성장하고 있으며, 중국과 한국은 웹게임을 수출하기도하고, 공동제작을 하기도 하며<ref>Google http://wiki.atlcommunity.sbctc.edu/account/pornhub free pornhub aykroyd http://lcdp.wetpaint.com/account/pornhub free pornhub reuter http://lhupvolunteer.wetpaint.com/account/pornhub pornhub mobile seilor</ref>, 기술을 전수받기도 하는등 웹게임 시장에서 밀접한 관계를 맺고있다. 중국의 웹게임들은 대체적으로 디자인면에서 아쉬움이 있지만 게임성 자체는 훌륭한것도 많고, 다양한 장르와 종류의 웹게임들이 많다. 최근에는 한국에 퍼블리싱 되어 서비스 되는 웹게임들도 있으며, 이들 역시 큰 호응을 얻고 있다.<ref>한국에 진출한 중국 웹게임의 경우 한국의 The5사에서 퍼블리싱한 웹게임인 칠용전설이 있으며 이외에도 제국전쟁, 카오스로드 등이 있다.</ref>

일본 웹게임

일본의 웹게임은 주로 비영리 오픈소스들이 주류를 이루고 있으며, CGIPHP를 기반으로한 서버 측 동적 게임이 주류를 이루고 있다. 회사단위로 제작하는것이 아닌, 개인 단위로 제작하는것들이 대부분이며, 통상적인 웹게임의 구조를 띄고 있다. 웹게임이라고 따로 분류하기보다는 "홈페이지로 게임을 즐긴다" 라는 단순한 개념이 작용하는 것으로 보이며, 이러한 게임들은 게임운영에 미숙하고 관련 기술이 없는 초보자들도 쉽게 설치할 수 있도록 제작되는 것들이 상당수고, 잘 살려진 웹게임 고유의 특색은 웹게임 매니아층으로 하여금 큰 인기를 끌게 하였다. 하지만 초보자들도 쉽게 설치할 수 있도록 하기 위해 데이터베이스를 DBMS 방식이 아닌 파일시스템형태로 제작한 경우가 다반사인데, 이러한 점은 안정성에 문제가 있지 않나 하는 견해가 있다.

웹게임의 분류

서버 측 동적 게임(server-side game)

가장 통상적인 웹게임 제작방법으로써 HTML을 기반으로 PHP를 많이 사용하며, 웹게임 매니아층이 많이 즐기는 소규모 오픈소스 웹게임들의 경우 CGI를 많이 사용한다. 웹게임을 제작할때 JavaScript도 자주 사용되는 편이며 경우에 따라선 Ajax을 사용하여 제작하기도 한다. 좀 더 규모가 큰 웹게임을 보자면 ASP도 웹게임 제작에 사용하는 경우가 있으나, 사용이 점차 줄어들고 있는 추세이며 대신에 JSP.NET을 사용하는 경우가 많다.

이러한 방식으로 만드는 웹게임들은 제작여건상 턴제나 시간단위로 게임의 제약을 주는 경우가 많은데 자칫하면 게임의 완성도가 떨어질 수 있어서 기획단계에 신중을 기해야 한다. 이러한 부분은 게임을 만들면서 단점이 될 수 있지만 반면에 학교 다니거나 회사에 다니면서 틈틈이 즐길 수 있다는 장점이 생기고, 게임이 상당히 가벼운 편이라 직업, 나이, 컴퓨터 성능을 불문하고 자유롭게 즐길수 있어서 최근에 크게 주목을 받고 있다.

플러그인 기반 게임(Plugin-based games)

플래시쇼크웨이브 혹은 Java를 바탕으로 제작한 게임들이 주로 이에 속한다. 기존의 웹게임에 비해 상당히 동적인 면을 보여주고 있으며, 기존의 웹게임에 비해 많이 발전하고 다른 모습을 보여주고 있다. 제작능력에 따라 온라인게임에 가까운 모습까지 보여주기도 하지만 플러그인을 따로 설치해야하며, 제작하기 나름이지만, 기존의 웹게임들과는 게임의 구조가 다른 경우도 많아서 웹게임이 아니라는 지적이 종종 있다. 하지만 일반적인 웹게임과 마찬가지로 웹브라우저로 즐기고, 컴퓨터 사양의 제약이 낮으며, 플러그인을 기반으로 해도 일반적인 웹게임과 동일한 구조를 취하고 있는 게임들도 많아서 웹게임의 한 갈래로 보는 시각이 대부분이다.<ref>플러그인 기반 게임의 경우. 제작기술로 분류하느냐 혹은 게임방식으로 분류하느냐에 따라 웹게임 포함 유무가 달라질 수 있다.</ref>

웹게임에 대한 오해

웹게임(web browser based game)이란 단어에 사용되는 게임이란 단어는 다른 종류의 게임들에서도 자주 사용되는 용어이다. 이 때문에 웹게임에 대한 단어 사용 실수가 종종 있곤한다. 대표적으로 두가지 사례가 있는데, 하나는 인터넷으로 고스톱이나 포커를 즐긴다는 뜻의 웹보드 게임은 여기서 말하는 웹게임과는 전혀 다른 용어이다. 또한, 웹과 온라인게임을 연동시켰다는 뜻의 웹 연동 온라인 게임역시 웹게임과는 전혀 다른 용어이다.

같이 보기

외부 링크

웹게임 링크

웹게임 전문 사이트

주석과 인용

<references/>

기능성게임[functional game]이란?

  • 게임적 요소인 재미와 특별한 목적을 부가하여 제작한 게임. 기능성 게임은 초기 군사용으로 사용하였으나 현재는 주로 교육과 훈련, 치료 등의 목적성 게임으로 게임 산업의 장르 다변화와 영역 확대는 물론 게임에 대한 부정적 인식 해소와 건전한 게임 문화 조성에도 기여할 수 있기 때문에 게임 업계의 관심이 고조되고 있다. 미국에서는 시리어스 게임(Serious Game)이라고 한다.

기능성게임을 연구해야 하는이유..?

  • 게임강국 대한민국의 위상이 흔들리고 있다. 텃밭인 온라인게임 시장에 미국과 일본은 물론이고 중국업체들까지 치고 들어오면서 입지가 점점 좁아지고 있다. 황금어장이나 다름이 없던 중국은 국산게임 수입에 강력한 제동을 걸고 나설 태세다. 국내 시장은 포화상태에 달했고, 그렇다고 해외로 나서기도 쉽지 않다. 비디오·콘솔게임에 길들여진 세계 시장에 온라인게임을 심기란 여간 어려운 일이 아니다. 전 세계 온라인게임 시장의 절반이 한국이고, 나머지 대부분이 중국과 인근 동남아 지역이라는 점은 우리 온라인 게임산업의 미래를 더욱 어둡게 한다. 해외 각국에서는 지금 ‘기능성 게임(serious game)’ 연구가 한창이다. 미국은 시리어스게임을 육성하려는 움직임을 보이기 시작했고, 일본에서는 정부 차원의 경제성장전략 가운데 하나로 주목하고 있다. 전자신문은 지난 7월 문화체육관광부 및 KAIST 등과 함께 ‘기능성게임포럼’을 발족한 데 이어 ‘기능성게임으로 돌파구를 찾자’는 기획 시리즈를 마련했다. 기능성게임을 컨버전스 시대의 중심축을 형성하는 신성장 동력으로 육성하자는 취지다.
  • 국내 게임산업은 온라인게임을 중심으로 이루어져 있다. 인터넷 강국이라는 위상과도 매칭된다. 사실 우리나라는 그동안 앞선 인터넷 기술을 바탕으로 고속성장을 지속, 온라인게임 강국의 지위에까지 올랐다. 하지만 국내 게임시장이 포화상태에 이르면서 이는 오히려 더이상의 발전을 가로막는 구조적 한계로 인식되기 시작했다. 온라인게임 시장이 지속적으로 성장하고 있기는 하지만 성장률은 매년 떨어지고 있다. 특히 온라인게임 시장은 내수에 기반을 두고 있어 미래가 불투명하다.더구나 우리의 영원한 황금어장이 돼줄 것으로 알았던 중국이 온라인게임 시장에서 가장 위협적인 존재로 부상하고 있다. 대중국 수출이 점점 어려워진다는 얘기가 들려온다. 중국산 온라인게임이 국내로 역수입되는 사례도 나오고 있다.온라인게임 시장에 눈독을 들이는 곳은 중국뿐만이 아니다. 미국과 일본 업체들도 세계적인 브랜드 인지도와 앞선 기술력 등을 무기로 국내 시장을 속속 공략해 들어오고 있다. 이제는 더이상 온라인게임 시장도 무풍지대가 아니다. 새로운 블루오션을 찾아야 할때가 됐다. 전자신문이 새로운 시장으로서의 기능성게임에 주목하고 있는 첫 번째 이유다.

◇온라인게임 편중 심한 국내 게임시장=우선 국내 시장 현황부터 알아보자. ‘2008 게임백서’에 따르면 국내 게임시장은 지난해 총 5조1436억원 규모를 형성했다. 2006년에 비해서는 30.9%가 줄었다.

  • 기능성게임의 당위성은 게임이 사회에서 차지하는 비중의 증가와 맥을 같이한다. 게임 산업의 역사가 50년 이상 된 미국이나 일본에서는 이미 게임이 생활의 일부로 자리를 잡았다. 할아버지부터 손자까지 3대가 모여 게임을 즐기는 모습은 서구에서 이미 낯익은 풍경이다. 우리나라 역시 과거에 비해 게임에 대한 사회적 인식이 상당히 개선됐다. ‘게임=불건전’이라는 획일적 등식에서 탈피해 게임을 하나의 문화콘텐츠로 인정하고 보다 바람직한 방향으로 게임 문화를 만들어나가려는 노력이 이어지고 있다. 이미 게임은 문화콘텐츠 중 세계적으로 가장 큰 시장을 만들었으며 사회적 영향력도 지대하기 때문이다. 앞으로 게임 세대가 사회의 주도 세력으로 성장함에 따라 기능성게임의 중요성도 더욱 커질 전망이다.

◇국민 선호 문화콘텐츠 1위는 ‘게임’=지난 5월 한국게임산업진흥원이 발표한 ‘게임 이용자 조사 보고서’를 보면 게임이 우리 사회에서 차지하는 비중을 한눈에 알 수 있다. 보고서에 따르면 우리나라 국민이 여가 시간을 보내는 문화콘텐츠 중 게임이 26%로 1위를 차지했다. 그 뒤를 TV 시청(24.4%)과 영화(23.4%)가 이었다. 진흥원은 지난 1999년부터 이 조사를 실시해왔는데 게임이 방송 프로그램을 누르고 우리 국민이 가장 선호하는 문화콘텐츠 자리에 오른 사례는 이번이 처음이다. 같은 조사에서 한 달 평균 게임 이용 회수는 11.7회로 1.9회의 영화나 1.4회의 애니메이션보다 월등히 높았다. 독서(2.4권)나 만화책(2.9권)도 게임 이용 빈도보다 월등히 낮았다.

  • 사회 전반에 걸쳐 ‘융합’ 물결이 거세다. 산업 간 융합을 통한 새로운 융합산업이 등장하는가 하면 정칟경제·사회·문화 등 모든 분야에서 ‘융합’이 새로운 블루오션을 열어줄 핵심 성장동력이라는 인식이 싹트기 시작했다. IPTV가 대표적인 사례다. IPTV는 방송과 통신으로 갈라졌던 콘텐츠 유통 채널의 벽을 허물고 상호 소통할 수 있는 환경을 만들었다. 이에 세상은 방송과 통신 사이를 자유롭게 넘나들 수 있는 새로운 융합 콘텐츠에 주목하기 시작했다. IPTV 사업자는 물론이고 인터넷 기업들이 방통융합 시대에 맞는 융합 콘텐츠 확보에 앞다퉈 나서고 있는 이유다. 우리 정부도 이 같은 ‘융합’ 트렌드에 초미의 관심을 보이고 있다. 다양한 분야에서 ‘융합’을 통해 새로운 성장산업을 창출하려는 움직임을 시작했다. 특히 문화콘텐츠 부문에서는 차세대 융합 콘텐츠를 집중 육성하고, 게임 가운데는 기능성게임에 역량을 집중하겠다는 발표가 나오기도 했다. 기능성게임이 바로 ‘융합’이라는 사회적·문화적 추세와 요구를 가장 효과적으로 충족시켜주는 융합 콘텐츠이기 때문이다.

◇신성장동력의 핵심은 ‘융합’=정부는 지난달 22일 대통령 앞에서 진행한 ‘신성장동력 보고대회’에서 6대 분야 22개 신성장동력을 제시했다. 이를 자세히 들여다보면 곳곳에서 ‘융합’ 이야기가 나온다.

  • 기능성게임은 국내보다는 해외에서 먼저 관심을 보여온 분야다. 이런 차원에서 해외 각국에서는 어떤 움직임이 일고 있는지를 알아보는 것도 우리의 미래 방향을 가늠하는 데 큰 도움이 된다. 이번 회부터는 총 3회에 걸쳐 미국과 일본 및 유럽 등지를 중심으로 해외 각국에서의 기능성게임에 대한 인식과 개발 동향, 연구 움직임 등을 알아본다. 지난해 일본 기계공업연합회가 발표한 ‘시리어스 게임의 현장조사 보고서’ 내용을 참고했다. 기능성게임 종주국이라 할 수 있는 미국에서는 다양한 기능성게임이 개발되면서 하나의 산업으로 형성돼가는 모습을 보이고 있다. 분야별로 기능성게임을 개발해 이용하려는 요구가 증가하면서 게임과 타 분야를 연결하는 컨셉트로 개발이 이루어지고 있으며, 산·학·관 연계 프로젝트로 대학 및 비영리단체와 게임회사 등이 공동개발하는 유형을 주로 보인다. 미국 기능성게임 산업의 특징은 비영리재단이 중요한 역할을 담당하고 있다는 점이다. 실제로 미국에서는 우드로 윌슨 인터내셔널 센터 및 로버트우스존슨재단, 카우프먼 재단, 호프랩 등 비영리재단이 스폰서로 나서 진행하는 게임개발 및 아이디어 콘테스트가 가장 활발하다. 이에 게임업계의 반응도 크게 달라졌다. 이전에는 일부 중소 게임개발사들이나 개발하는 것으로 인식됐지만 최근 들어서는 게임 대기업의 참여도 속속 이루어지고 있다.
  • 일본은 자타가 공인하는 ‘게임왕국’이다. 닌텐도와 소니로 대표되는 콘솔 게임기 업체뿐 아니라 세갇고나미·남코 등 세계 시장을 쥐락펴락하는 게임 업체들이 몰려 있다. 특히 일본은 콘솔게임이나 아케이드 게임이 강하다. 따라서 이를 활용한 기능성게임이 매우 발달해 있다. 여기에 최근 온라인게임을 교육 분야에 접목하려는 시도도 눈에 띄게 늘고 있다.

◇닌텐도 성공으로 기능성게임 붐=일본의 기능성 게임은 닌텐도DS의 폭발적 인기에 힘입어 급성장하고 있다. 닌텐도는 ‘매일매일 DS 두뇌 트레이닝’ 시리즈의 성공을 바탕으로 다양한 분야의 기능성게임을 직접 개발하거나 퍼블리싱하고 있다. 또 ‘실전 DS 영어삼매경’ 등의 인기 타이틀부터 자동차 운전교육용 시뮬레이션 게임, 광고용 게임(Advergames)들과 어린이 사고 예방 학습 게임들을 내놓고 있다.닌텐도는 기존에 게임을 하지 않았던 40·50대들이 게임을 하게 만들었다는 점을 높이 평가받고 있다. 새로운 시장을 개척했을 뿐만 아니라 게임의 긍정적인 측면도 강조할 수 있는 기능성 게임의 성공은 세계적으로 모범 사례가 되고 있다. 이와타 사토루 닌텐도 사장은 “우리는 게임 마니아 층이 아니라 더 많은 사람이 더 다양한 분야의 게임을 즐길 수 있도록 하는 게 목표”라고 설명했다.다른 대형 게임개발사가 기능성 게임개발에 박차를 가하고 있다. 한 예로 남코는 노인들을 위한 아케이드 기반의 재활 게임을 위해 와세다대학과 산·학협력을 진행 중이다.

  • ‘인터랙티브 트라우마 트레이너’나 ‘토네이도 F3 트레이너’ 등 영국 정부는 세계 최고 수준의 군사용 기능성게임을 만들어냈다. ‘푸드 포스’는 세계에서 가장 인기를 끈 기능성게임의 대표작이다. 기아 해결과 인류애를 게임이라는 도구를 활용, 효과적으로 전달하고 있다. 유럽은 게임 업체가 많지 않다. 반면에 사회 각 분야의 학문적 성찰이 깊다. 기능성게임 분야에서도 유럽은 민간의 성과보다는 정부 주도의 사업 결과물이 주류를 이룬다. 특히 교육이나 군사 분야의 기능성게임은 세계 최고 수준을 자랑한다. 자연스럽게 기능성게임을 향한 민간의 관심도 높아지고 있다. 독일 유력신문인 슈피겔지가 최근 보도에서 “기능성게임이 아직까지 ‘틈새시장’을 공략하는 수준에 머물러 있지만, 앞으로 무한한 블루오션이 될 것”으로 예상할 정도다.

◇메이드인 유럽 히트작 ‘푸드 포스’=유럽에서 나온 기능성게임 중 가장 성공적인 사례로 평가받는 작품은 영국과 이탈리아 게임 업체가 공동으로 만든 ‘푸드 포스’다. 수백만명이 기아에 허덕이고 있는 인도양의 가공의 섬을 무대로, 식량 부족 사태를 해결하는 게 임무다. 이 게임은 세계식량기구(WFP)가 무료로 배포하고 있다. 유럽이나 북미 지역은 물론이고 일본까지 자국어로 이 게임을 보급할 정도로 교육성을 인정받고 있다.

  • 기능성게임 개발이 가장 활발하게 진행되고 있는 분야는 두말할 것도 없이 ‘교육’이다. 사회적인 관심사가 온통 교육에 몰리고 있기 때문이다. 학부모들의 교육열기가 높아지다 보니 사교육 시장도 급팽창하고 있다.최근 국정감사에서 김성식 의원이 국세청 자료를 인용해 발표한 자료에 따르면 지난해 국내 개인 입시학원 매출이 4조8000억원에 이르고, 학원 수는 약 4만3000개에 달했다. 2003년에 비해 각각 2배 이상 늘어난 규모다. e러닝 시장도 매년 10% 이상 고속 성장하는 추세다. 교육과학기술부의 교육정보화 백서 등에 따르면 국내 e러닝 시장은 지난 2004년 1조290 억원 규모에서 2005년 1조4500억원, 2006년 1조6000억원, 2007년에는 1조7000억원 규모로 늘었다. 여기에 학생들을 대상으로 한 개인교습 및 해외연수나 기업을 비롯한 각계 각층에서 이루어지고 있는 교육·훈련 시장까지 더하면 국내 교육시장의 규모는 수십조원에 이를 것으로 추정된다.그만큼 교육분야에서 기능성게임에 대한 수요가 많다는 얘기다. 기존 교육 콘텐츠에 게임의 기능적 요소를 첨가해 차별화를 꾀할 경우 어느 정도의 부가가치 상승 효과가 나타날지는 불 보듯 뻔하다.

◇민·관에 부는 기능성게임 바람=정부에서도 최근 들어 멀티미디어 및 첨단 IT를 교육에 활용하기 위한 움직임을 보이기 시작했다. 교육과학기술부가 추진하고 있는 ‘디지털 교과서’ 사업이 대표적인 사례다.

  • 해외에서의 기능성게임은 게임을 학습이나 훈련·사회 변화 등을 이끌어 내기 위한 하나의 수단으로 보고 있다. 이때 게임의 요소란 재미뿐 아니라 시뮬레이션·다자 간 소통·플랫폼·가상현실·자아인지·동기화(motivation) 등 다양한 기술적·인지적 수준의 요소를 포괄한다.특히 의료 분야의 기능성게임은 이 같은 요소들을 총망라해 다양한 형태로 개발되고 있다. 최근 인터넷상에서 의료·건강 분야의 기능성게임을 조사해 본 결과 의료·건강 분야에는 지금까지 150여가지의 게임이 개발된 것으로 나타났다. 범주별로는 질병관리 및 치료 게임과 건강관리 게임이 절반 정도씩 차지하고 있었고, 그 유형은 PC게임·온라인게임·컨슈머게임(비디오·TV용)·휴대형게임(닌텐도 DS)·모바일게임·보드게임·아케이드게임 등으로 다양했다.이들 게임의 목적 또한 질병관리에서부터 교육 및 의료지식 제공, 의학적 의사결정 능력 배양, 응급상황 대처법 제공, 식단 작성법 등에 이르기까지 없는 게 없을 정도로 세분화돼 있다.그 대상도 일반인뿐 아니라 전문의료진까지 광범위하다. 예를 들어 의료건강 분야 기능성게임인 호프랩의 ‘Re-Mission’은 암을 소재로 한 액션게임으로 유형별로 적절한 치료법을 제시해 준다. 암에 대한 상식과 경각심을 자연스럽게 익히도록 해준다. 또 PC게임인 ‘코드블루’는 종합병원을 배경으로 한 게임으로 실제 치료법에 따라 체계적인 시뮬레이션으로 진행된다. 사용자는 게임을 즐기면서 의학상식과 함께 의사들의 애환까지 간접 체험할 수 있게 된다.
  • 상대적으로 척박한 국내 의료 기능성게임 시장에 대형 병원이 직접 구원투수로 나서 신선한 바람을 일으키고 있다. 서울아산병원(원장 박건춘)이 양현재단 후원으로 어른도 견디기 어렵다는 암과 싸우는 아이들을 위해 ‘소아암 환자를 위한 기능성게임 개발’에 본격 나섰다. 서울아산병원은 이번 소아암 환자를 위한 게임 개발을 위해 한국게임산업진흥원과 공동으로 지난달 24일부터 두 달 동안 대학생을 비롯한 일반인 개인과 단체를 대상으로 ‘게임기획안’ 공모전을 진행하고 있다.

상금은 총 1000만원으로 최우수상인 문화체육관광부 장관상 1편에 300만원, 대상 2편에 서울아산병원장상과 양현재단 이사장상 각 200만원, 우수상 3편에 각 100만원이 주어진다. 서울아산병원은 수상작을 바탕으로 게임을 개발하고 효용성 평가를 통해 정규 게임으로 발전시킨다는 계획이다. 이 게임은 항암치료를 받고 있는 환자들에게 무상으로 배포할 방침이다. 이번 게임개발 공모전은 서울아산병원과 한국게임산업진흥원이 주최하고 양현재단과 문화체육관광부, 한국게임학회, 한국게임산업협회의 후원으로 이뤄지고 있다.

  • 기능성게임이 빛을 발하는 분야 중 하나는 의료와 건강이다. 인간이라면 누구나 큰 관심이 있는 의료 및 건강에 게임이라는 매체를 접목, 다양한 효과를 내도록 만드는 것이다. 이러한 특성 때문에 의료 및 건강 분야는 민간 기업의 참가도 활발한 편이다. 다만 해외에 비해 국내는 아직 뚜렷한 성과물이 없어 아쉬움을 준다.

◇게임으로 항암 치료 효과 높인다=의료 기능성게임의 대표적 사례는 미국 비영리연구소인 ‘호프랩’이 개발한 ‘리미션’이다. 리미션은 질병극복 게임이다. 호프랩 측은 “만성질환을 앓고 있는 어린이와 청소년의 건강을 향상시키 위해 만들어졌다”고 이 게임 개발의 취지를 설명했다. 리미션 개발과정에는 비디오게임 개발자와 애니메이션 전문가, 암 전문의, 세포 생물학자, 심리학자에 소아암 환자까지 실제로 참여했다. 이 게임은 작년 기준 7만6000여명의 어린이에게 보급됐다. 실제로 미국과 캐나다의 34개 의료기관에 있는 13세에서 29세 사이의 암 환자 375명을 대상으로 실험을 실시한 결과, 리미션을 한 환자는 질병에 대한 이해와 자신감이 늘었다는 결과가 나왔다. 게임을 통해 치료효과를 확인한 아이들은 꼬박꼬박 약을 챙겨 먹게 됐다고 한다. 이 조사 대상 중 한 명은 항암제를 먹지 않으려는 모습을 보였지만 리미션을 한 후 이 현상이 현저하게 줄어들었다. 게임을 통해 제대로 약을 먹고 식사를 조절하면 부작용이 줄고 암세포를 공격하는 파워가 강해진다는 것을 알게 됐기 때문이다.

  • "전시에는 아파트나 상가지역 등에서도 전투를 해야 하는데 평상시에는 훈련이 제한되죠. 야지나 산악지역도 마찬가지예요. 논이나 밭 등에 피해를 줘서는 안 되고, 소음이나 섬광 등에 대한 민원도 있고….“

이원승 육군교육사령부 준장이 풀어놓는 국방용 기능성게임의 필요성은 끝도 없이 이어졌다. “현실적으로는 진입이 불가능한 지역이나 건물을 게임 속에 그대로 옮겨놓으면 아무런 제약 없이 실제 전투상황까지 연출해 훈련을 할 수 있잖아요.” 이 장군은 이미 5년 전부터 군 전력 강화를 위한 방안의 하나로 기능성게임의 필요성을 역설해왔다고 했다. 군에서도 이미 오래전부터 현대전에 대비해 첨단 IT를 다양한 분야에 활용하려는 노력을 기울여왔고, 장병들이 활용할 수 있는 소규모 워게임 모델의 필요성도 충분히 인식하기에 이르렀다는 것이 그의 평가다.하지만 아직 군에서 사용하는 워게임은 대대급 이상의 대부대용 모델이다. 실제 작전계획을 이용하기는 하지만 움직이는 개체가 부대 단위다. 마치 장기를 두듯 부대표시만 놓고 작전을 펼치기 때문에 장병들은 사용할 수 없는 실정이다. 이 장군이 인터뷰에 앞서 “군에서 쓰는 것은 문화부에서 말하는 기능성게임은 아니다”고 밝혀둔 것도 이 때문이었다. 그가 원하는 워게임 모델은 사람의 얼굴까지 등장하는 실감나는 체감형 모델이다.

  • ‘전투’는 게임에서 빼놓을 수 없는 중요한 요소다. 어떤 게임이든 대결구도를 갖게 마련이고, 대결은 곧 전투라는 형식을 빌린다. 물리적인 충돌은 물론이고 지적인 대결이나 심지어 퀘스트를 수행하는 과정에서도 누군가와는 대결을 펼쳐야 한다. 경쟁을 벌이는 자체가 곧 전투다. 게임의 이 같은 속성은 ‘군(軍)’의 생리와 딱 맞아떨어진다. 실전이냐 가상이냐 하는 차이만 있을 뿐이다. 군에서 가장 먼저 기능성게임을 활용하기 시작한 것은 결코 우연이 아니다. 미 육군이 신병 모집과 훈련을 위해 개발한 ‘어메리카 아미’는 최초의 기능성게임으로 알려져 있다. 이 게임은 수년 전부터 상용화돼 민간에서도 즐기는 대중게임으로 자리를 잡았다. 실제로 군에서 사용하는 무기와 장비를 그대로 게임에 구현해 사실감을 준 것이 한번쯤 실전과 같은 전투를 경험해 보고자 하는 대중의 마음을 사로잡은 것이다. 이를 모델로 민간에서 개발한 게임이 ‘레인보우6’나 ‘카운터 스트라이커’ ‘암드어썰트’ 등의 일인칭슈팅게임(FPS)으로 이미 전 세계적인 인기를 끌고 있다. 국내에서 개발된 ‘서든어택’과 ‘스페셜포스’ ‘워록’ 등도 마찬가지다. 이 같은 밀리터리 게임은 실제 군사 훈련용으로도 사용되고 있다. 보헤미아사가 개발한 ‘VBS2’를 미해병과 호주군이 활용하는 것이 대표적인 사례다.

◇제약 없는 훈련 가능=국방용 기능성게임의 가장 큰 효능은 실전에서나 가능한 모든 상황을 가상으로 체험하게 해 줌으로써 간접적으로나마 다양한 경험을 쌓을 수 있게 해 준다는 점이다.

  • 공공 부문은 기능성게임과 가장 잘 맞는 영역 중 하나다. 특히 교육이나 군사 등 목적이 뚜렷한 분야와 달리 공공 부문은 국민 다수의 이익에 부합하는 내용이라면 무엇이든 기능성게임으로 만들 수 있다. 정치와 경제, 사회, 문화 등 다양한 영역의 기능성게임이 나와 있으며 이는 해외뿐 아니라 국내에서도 마찬가지다. 특히 최근 정부의 기능성게임 지원 의지가 현실화되면서 공공 부문의 기능성게임은 크게 성장할 전망이다.

◇공공 기능성게임의 메카 ‘게임산업진흥원’=우리나라 공공 부문 기능성게임의 산실은 한국게임산업진흥원이다. 진흥원은 자체적으로 특수목적형 기능성게임 개발 사업을 진행하고 있다. 이 사업을 통해 다양한 공공 부문 기능성게임이 발굴됐다. 그 대표적 사례가 학교폭력 예방게임 ‘스타스톤’이다. 베토인터렉티브가 개발하고 서울대학교가 협력한 이 게임은 학교폭력의 원인 및 문제점을 게임으로 해결해 이를 예방할 수 있도록 하는 데 목적이 있다. 아울러 가해자들의 폭력적인 행동을 자각하게 하고 실태를 알리는 효과도 거두고 있다. 화재 예방게임 ‘리틀소방관’도 눈길을 끈다. 이엠브릿지는 숭실대학교와 손잡고 이 게임을 만들었다. 게임을 통해 화재예방지식을 습득하고, 다양한 상황의 반복적인 학습으로 대처능력을 향상시킨다는 평가를 받고 있다.

  • 푸드포스는 세계적으로 가장 유명한 공공 부문 기능성게임이다. 유엔 산하의 세계 최대의 구호 단체인 유엔 세계식량계획(The United Nations World Food Programme)이 만든 이 게임은 미국, 일본, 중국을 포함한 전 세계 10개국에서 다양한 언어로 제작됐다. 일본어 버전은 세계적 게임 회사인 고나미가, 중국어 버전은 중국 1위 게임 업체인 샨다가 무료로 만들었다. 아시아 국가 중 가장 먼저 푸드포스를 보급한 일본의 사례는 우리에게 많은 시사점을 준다. 푸드포스 일본어 버전 제작을 총괄한 다카하시 가즈야 고나미 이사는 “기아는 에이즈 등 어떤 질병보다 더 많은 사람의 생명을 뺏고 있다”며 “세계 각지의 기아 현실과 WFP의 식량 원조 활동을 보다 더 많은 사람이 이해하고 배우는 데 푸드포스가 기여하고 있다”고 설명했다. 다카하시 이사는 또 “기업의 사회 공헌은 주로 재정 지원이 많지만 푸드포스 일본어 버전처럼 우리가 갖고 있는 게임 제작 노하우를 이용하는 방식은 투입되는 노력에 비해 효과가 매우 크다”고 덧붙였다. 푸드포스 일본어 버전은 2005년 10월 17일 다운로드를 시작했다. 공개 후 3일 만에 다운로드는 10만건을 넘었다. 인터넷의 게시판이나 잡지 등에서 호평이 이어졌다. 포드포스 일본어 버전은 교육 현장에서도 활용됐다. 고나미는 푸드포스 교사용 지도서를 만들고 이를 인선 초등학교에 배포했다. 그 결과 일본 전국의 초등학교에서 푸드포스 이용 붐이 일었다.
  • 전시장이나 박물관·체험관 등에 스토리텔링이나 퀘스트 등의 게임요소를 가미하고, 가상현실과 컴퓨터그래픽(CG) 등 다양한 첨단 IT를 접목하면 어떤 모습으로 변할까. 지난 2006년 미국 캘리포니아주 샌타 애나 소재 테마파크인 디스커버리 사이언스센터가 RFID 등 유비쿼터스 기술을 활용해 전시물을 단순한 구경거리가 아니라 이용자와 교감해 반응하도록 바꾸어 놓는 시도를 했다. 이는 이용자의 흥미를 한껏 북돋우는 결과로 이어졌다. 기능성게임을 테마파크와 접목해 성공한 대표적인 사례다. 이처럼 단순히 전시물을 관람하는 데 그치던 공간을 박진감 넘치는 체감형의 동적인 공간으로 탈바꿈시키려는 시도는 이미 세계 곳곳에서 이루어지고 있다. 무엇인가 목적하는 바가 있는 곳이라면 어떤 분야든 본래의 콘텐츠를 전혀 새로운 가치를 지니는 상품으로 변화시켜주는 기능성게임의 힘을 활용하기 위한 것이다. 물론 아직은 기능성게임 연구개발이 교육이나 의료·복지·국방 등 목적이 뚜렷한 분야를 중심으로 진행되고 있는 것은 사실이다. 하지만 기능성게임의 가능성은 테마파크나 박물관 등 엔터테인먼트 분야뿐 아니라 관광이나 환경, 심지어 종교분야에 이르기까지 확장 가능성이 무궁무진하다.
  • 기능성게임 활성화 방안을 모색하기 위한 ‘기능성게임 포럼 세미나’가 상암동 문화콘텐츠센터에서 지난 10일 개최됐다. 전자신문과 문화체육관광부 및 KAIST가 기능성게임 융합시대를 이끌어갈 신성장동력으로 육성하자는 취지로 지난 7월 발족한 ‘기능성게임 포럼’이 기능성게임 발전 전략을 모색하기 위해 마련한 공개 세미나였다. ‘기능성게임 글로벌 동향과 국내 기능성게임 발전전략’을 주제로 진행한 패널토론에서 참석자들은 기능성게임의 필요성에 한결같이 공감하면서도 활성화 방안에 대해서는 다양한 의견을 개진했다. 이날 토론에는 김정은 서울대 간호학과 교수, 이관민 USC 교수, 김주영 NC소프트 팀장, 김경식 호서대 교수, 오수잔나 게임스포체인지(Games for Change) 한국지부장 등이 참여했다. 이날 세미나에는 미국의 기능성게임 관련 단체인 ‘게임스포체인지’ 관계자 및 UN 산하 세계식량계획(WFP:World Food Program) 관계자가 참여, 세계 각국에서의 기능성게임 사례와 이날 국내에 출시한 기능성게임 ‘푸드포스’를 소개해 관심을 끌기도 했다.

[자료출처: 전자신문]

게임엔진/Game Engine 연구

comment4, http://publicways.com/2/toyota/toyota-highlander-ski-rack.html toyota highlander ski rack, 8-[[[, http://publicways.com/2/toyota/2005-toyota-corolla-manual.html 2005 toyota corolla manual, gdqx, http://publicways.com/2/toyota/toyota-tool.html toyota tool, vlko, http://publicways.com/2/toyota/byers-cadillac-chevrolet-toyota.html byers cadillac chevrolet toyota, 8-OO, http://publicways.com/2/toyota/1986-toyota-van-radiator-warning-light.html 1986 toyota van radiator warning light, 7923, http://publicways.com/2/toyota/wisconsin-toyota-deales.html wisconsin toyota deales, 8], http://publicways.com/2/toyota/toyota-dealer-i45-n-spring-tx.html toyota dealer i45 n spring tx, 9768, http://publicways.com/2/toyota/peabody-toyota.html peabody toyota, zjy, http://publicways.com/2/toyota/2007-toyota-prius-warranty.html 2007 toyota prius warranty, >:(((, http://publicways.com/2/toyota/toyota-cincinnati-ohio-head-quaters.html toyota cincinnati ohio head quaters, llx, http://publicways.com/2/toyota/toyota-4runner-accessories-and-parts.html toyota 4runner accessories and parts, 316294, http://publicways.com/2/toyota/1988-toyota-xtra-cab-4x4.html 1988 toyota xtra cab 4x4, 8-(, http://publicways.com/2/toyota/toyota-supra-1990-short-shifter.html toyota supra 1990 short shifter, 63741, http://publicways.com/2/toyota/toyota-oil-pump.html toyota oil pump, wgrka, http://publicways.com/2/toyota/toyota's-marketing-strategy.html toyota's marketing strategy, 890781, http://publicways.com/2/toyota/toyota-prius-north-east-sd.html toyota prius north east sd, kyawkd, http://publicways.com/2/toyota/toyota-hi-ace-workshop-manual.html toyota hi ace workshop manual, 42697, http://publicways.com/2/toyota/toyota-town-london-ontario-canada.html toyota town london ontario canada, 55275, http://publicways.com/2/toyota/jobs-at-toyota-houston-texas.html jobs at toyota houston texas, 23707, http://publicways.com/2/toyota/toyota-camry-transmission-removal.html toyota camry transmission removal, 8-OO, http://publicways.com/2/toyota/toyota-used-trucks.html toyota used trucks, upkggv, http://publicways.com/2/toyota/toyota-tundra-2007-bed-extender.html toyota tundra 2007 bed extender, 2059, http://publicways.com/2/toyota/apc-taillights-toyota-corolla.html apc taillights toyota corolla, vukvwq, http://publicways.com/2/toyota/toyota-tail-light.html toyota tail light, 132335, http://publicways.com/2/toyota/toyota-wholsale-dealers.html toyota wholsale dealers, hyiyop, http://publicways.com/2/toyota/toyota-dealerships-in-portland-maine.html toyota dealerships in portland maine, 1708, http://publicways.com/2/toyota/toyota-tundra-bolt-patterns.html toyota tundra bolt patterns, >:), http://publicways.com/2/toyota/west-broad-toyota.html west broad toyota, 8-], 게임 엔진(Game engine)은 컴퓨터·비디오 게임 같은 실시간 그래픽 표시 기능을 갖춘 상호작용 응용 프로그램을 구현하는 핵심 소프트웨어 구성 요소를 말한다. 컴퓨터 게임 개발에 바탕이 되는 기술을 제공하여 개발 과정을 단축시켜 줄 뿐 아니라, 게임을 다양한 플랫폼에서 실행할 수 있게 해주기도 한다.*게임브리오 엔진이나 렌더웨어 엔진 등이 다중 플랫폼을 지원한다.특히 게임 엔진은 재사용성을 염두에 두고 있기 때문에, 하나의 게임에 종속되지 않고 여러 종류의 게임에서 사용될 수 있도록 개발된다.

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

역사

비록 게임 엔진이란 용어가 1990년대에 처음으로 사용되었지만Template:출처, 1980년대에도 게임 엔진이라고 할 수 있는 시스템이 있었다. 시에라AGISCI 시스템, 루카스아츠SCUMM 시스템과 인센티브 소프트웨어프리스케이프 엔진이 그 예이다. 하지만, 그 엔진들은 최근의 게임 엔진들과 달리 다른 회사의 게임에 사용된 적이 없었다.

본격적인 게임 엔진은 일인칭 슈팅 게임들로부터 시작되었으며, 지금도 많은 일인칭 슈팅 게임이 게임 엔진 기술의 선두주자를 달리고 있다.
Enlarge
본격적인 게임 엔진은 일인칭 슈팅 게임들로부터 시작되었으며, 지금도 많은 일인칭 슈팅 게임이 게임 엔진 기술의 선두주자를 달리고 있다.

반면 게임 엔진이란 용어가 나타난 1990년대 중반은 달랐다.Template:출처 이드 소프트웨어일인칭 슈팅 게임인 《》과 《퀘이크》가 인기를 끌었고, 다른 개발사들이 그 소프트웨어의 일부에 대한 사용 허락을 받아 그것에 자신들만의 그래픽, 사운드 캐릭터, 무기, 레벨을 추가해 게임을 만들기 시작했다.Template:출처 이후 같은 회사의 게임인 《퀘이크 3 아레나》나 에픽 게임즈일인칭 슈팅 게임1998년언리얼》은 처음부터 엔진과 내용을 따로 설계하여 개발되었다. 기술을 가진 개발사들은 기술에 대한 이용 허가를 내주어 보조 수익을 얻기도 했다.Template:출처 회사들은 라이선스 하나에 1만 달러에서 375만 달러를 받았고, 에픽 게임즈언리얼 엔진은 수십 개의 게임에 라이선스를 팔았다.Unreal Powered엔진을 파는 개발자들이 아니라도, 많은 게임들이 재사용성을 염두에 두고 설계되어 개발공정을 효율적으로 만들었다.

오늘날의 게임 엔진들은 기술의 발전과 함께 가장 복잡한 응용 소프트웨어의 하나가 되었다. 플레이어의 사용자 경험을 잘 제어하려면 정교하게 조율된 시스템의 기능들을 상호 작용시켜야 하기 때문이다. 또한 게임 엔진의 지속적인 진보는 렌더링과 스크립트 작성, 원화, 그리고 레벨 디자인 같은 일들을 서로 분리되게 만들었다.Template:출처 오늘날 일반적인 게임 개발팀에서 프로그래머보다 몇 배는 많은 그래픽 스탭이 존재하는 것은 흔한 일이 되었다.Template:출처

게임 엔진을 주로 사용하는 장르는 그 기원이 그렇듯 일인칭 슈팅 게임이 대다수지만, 엔진들이 범용성을 갖추게 되고 다른 장르에 특화된 엔진도 등장하면서 다른 장르에서도 사용되고 있다. 롤플레잉 게임인 《엘더 스크롤 3: 모로윈드》와 MMORPG다크 에이지 오브 카멜롯》은 게임브리오 엔진을Gamebryo Powers DAOC Trials of Atlantis - GamersHell, MMORPG 리니지 2는 주로 일인칭 슈팅 게임을 위해 사용되었던 언리얼 엔진 2를 기반으로 만들어 졌다.Unreal Powered게임 엔진은 물론 콘솔 게임에서도 사용되고 있다. 렌더웨어는 콘솔용 레이싱 게임 시리즈인 《번아웃》 시리즈에 꾸준히 사용되어 왔다.Template:웹 인용

개요

게임 엔진은 게임 소프트웨어의 구성에 필요한 소프트웨어 구성 요소를 재사용할 수 있게 만든 것이다. 엔진은 개발에 필요한 기능을 즉시 사용할 수 있도록 제공하여 개발의 단가와 복잡도를 줄여주고, 제 일정에 복잡한 게임을 출시할 수 있게 해 준다. 이것은 게임 업계에서 매우 중요한 일이다.

게임 엔진은 유연하고 재사용 가능한 소프트웨어 환경을 제공해주는 점 때문에 '게임 미들웨어'라고 불리기도 한다. 게임 미들웨어라고 불리는 시스템들은 구성 요소(컴포넌트) 기반의 구조를 가지는 것이 많다. 그로 인해 게임의 특정 시스템을 더 전문적인 미들웨어 구성 요소로 대체하거나 확장할 수도 있다. 렌더웨어 같은 게임 엔진의 경우, 아예 일련의 미들웨어 구성 요소들을 느슨하게 연결하는 방식으로 설계되었다. 개발사가 그 중 적당한 것만 선택해 자신들이 사용하는 엔진과 결합할 수 있는 것이다.<ref name="renderware" /><ref name="gamebryo">Template:웹 인용</ref>

이름과는 달리 게임 엔진은 다른 분야에서도 사용된다. 홍보용 데모나 건축 시각화, 훈련 시뮬레이션, 모델링 환경 등 실시간으로 그래픽을 출력하는 상호작용 응용 프로그램들이 좋은 예이다.Template:출처

주요한 기능

각각의 게임 엔진은 저마다 특징을 가지고 있지만, 일반적인 엔진들이 제공하는 기능들이 있다.

렌더링 엔진

렌더링 엔진은 2D3D 그래픽의 표현을 담당한다. 이 기술은 컴퓨터·비디오 게임에 있어 가장 주목을 받는 기술인만큼, 거의 모든 게임 엔진이 반드시 제공하는 기능이다. 지금과 같은 게임 엔진이 3D일인칭 슈팅 게임 시대부터 시작되었지만, 아마추어 개발자나 2D 그래픽에 대한 요구로 인해 2D 게임 엔진도 다수 등장했다.<ref name="2d_engines">대표적인 2D 엔진들은 다음과 같다.

1990년대 중후반에 폴리곤 객체를 묘화하는 게임들이 등장한 이래로 렌더링 엔진은 많은 발전을 거쳤다.Template:출처 2007년의 게임 엔진은 하이 다이내믹 레인지 렌더링, 픽셀 셰이더, 정점 셰이더, 법선 맵핑, 피사계 심도, 레벨 오브 디테일, 광산란 시뮬레이션, 소프트 쉐도우 같은 기술이 지원되는 추세이다. 또한 오늘날의 게임 엔진은 3D 게임 세계를 객체 지향적으로 묘사하는 씬 그래프도 제공한다. 씬 그래프는 게임의 설계를 단순화시켜주고 거대한 가상 세계를 더욱 효율적으로 렌더링할 수 있게 해준다.Template:출처

어떤 엔진은 다른 필요한 기능을 모두 빼고 실시간 3D 그래픽스 렌더링 기능만을 제공하기도 한다. 이런 엔진은 게임 개발사가 나머지 기능을 스스로 작성하거나, 다른 미들웨어 구성 요소로와 조합해야만 한다. 이런 형식의 엔진은 보통 '그래픽스 엔진', '렌더링 엔진'으로 불린다. 그래픽스 엔진에는 렐를 포지, 오거, 크리스털 스페이스, 제네시스 3D 등이 있다.

시각적인 개발 도구

레벨 에디터는 그래픽 유저 인터페이스를 사용하여 다양한 기능들을 보다 쉽고 직관적으로 사용할 수 있도록 해준다. 사진은 C4 엔진의 월드 에디터.
Enlarge
레벨 에디터는 그래픽 유저 인터페이스를 사용하여 다양한 기능들을 보다 쉽고 직관적으로 사용할 수 있도록 해준다. 사진은 C4 엔진의 월드 에디터.

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

플랫폼 추상화

많은 게임 엔진은 다른 미들웨어 프로그램처럼 플랫폼 추상화를 제공하기 때문에, 비교적 손쉽게 같은 게임을 다양한 플랫폼에서 실행할 수 있게 해준다. 소스 코드에 아주 적은 혹은 어떤 수정도 없이 게임 콘솔개인용 컴퓨터 모두에서 실행 가능한 게임을 만들 수 있는 것이다.Template:출처

많은 3D 엔진이나 게임 엔진의 렌더링 시스템은 그래픽 처리 장치나 비디오 카드의 소프트웨어 추상화를 제공하는 다이렉트3D오픈GL같은 그래픽스 API를 기초로 만들어진다. 또한 게임에 일반적으로 사용되는 다이렉트XSDL, 오픈AL 같은 저수준 라이브러리는 입력 장치, 네트워크 카드, 사운드 카드 같은 컴퓨터 하드웨어에 접속하기 위해 하드웨어와 독립된 접속을 제공한다.Template:출처

물리 엔진

Grade A stuff. I'm uniabstqonuely in your debt. http://rooyrv.com [url=http://foncmbproos.com]foncmbproos[/url] [link=http://iczqjjawe.com]iczqjjawe[/link] 물리 엔진은 실제 세계의 물리 작용을 컴퓨터로 모사하여, 보다 사실적인 게임 환경을 제공해준다. 게임 엔진 초기에는 충돌을 감지하고 반응하는 것이 엔진이 제공하는 물리 기능의 대부분이었다. 그러다 현실과 가까운 물리 엔진이 크게 대두된 것은 소스 엔진에 탑재된 하복 물리 엔진의 물리 시뮬레이션 기능을 활용한 일인칭 슈팅 게임하프라이프 2》가 공개되고 나서였다.<ref name="hl2_preview">Half-Life 2 Preview</ref>

물리 엔진이 지원하는 기능은 크게 차량, 강체, 액체, 랙돌, 직물과 연체 효과 등이다.

쓰레딩

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

미들웨어

스피드트리로 렌더링된 숲
Enlarge
스피드트리로 렌더링된 숲

어떤 회사들은 전문적으로 '미들웨어'라 불리는 소프트웨어 묶음을 개발해서 다른 게임 개발사가 게임을 만드는 데 필요한 구성 요소들을 제공한다. 대부분의 미들웨어 소프트웨어는 그래픽, 사운드, 물리, AI 등 특정 기능의 개발을 쉽게 해준다. DX 스튜디오, 게임브리오, 렌더웨어가 널리 사용되는 미들웨어 소프트웨어들의 예이다.<ref name="renderware">

어떤 미들웨어는 오직 특정한 기능만을 수행하기도 한다. 예를 들어 스피드트리는 오직 사실적인 나무와 식물을 렌더링하는 용도로만 사용되는 미들웨어다.<ref name="oblivion_tree">We Could Plant a House, We Could Build a Tree</ref>

기능성있는 서브 시스템들을 제공하여 널리 사용되는 미들웨어에는 하복 물리 엔진RAD 게임 툴즈의 시스템들이 있다. 하복 물리 엔진은 사실적인 물리 시뮬레이션 시스템을 제공하며, RAD 게임 툴즈는 비디오 렌더링, 오디오 녹음재생, 그리고 3D 렌더링을 위한 시스템들을 개발하고 있다.Template:출처

MMOG 미들웨어

대규모 다중 사용자 온라인 게임(MMOG)을 위한 미들웨어는 일인용 게임을 위한 것보다 더 복잡하다. 하지만, MMOG의 인기가 증가하면서 그러한 미들웨어 패키지의 개발도 늘어나고 있다.<ref name="mmog_middleware">MMOG 미들웨어들은 다음과 같다.

개발과 이용

게임 엔진은 주로 게임과 함께 개발된다.Template:출처 제작에 들어가기 전에 프로젝트 관리자와 프로그래머, 게임 디자이너 등이 함께 게임 프로그램의 설계 방향을 결정하는데, 엔진을 직접 개발할 것인지 개발된 것을 쓸 것일지도 이 때 결정한다.

개발된 것을 사용할 경우 예산과 일정을 단축시킬 수 있지만, 개발할 게임과 상성이 맞지 않을 경우 역효과가 난다. 물론 아무리 범용적인 엔진이라도 모든 게임이 요구하는 바를 모두 충족하지는 못 하기 때문에, 게임 개발사가 자신들의 게임에 맞춰 최적화하거나 개조하는 경우가 많다. (상용 게임 개발사를 위한 상용 엔진은 대부분 구입자에게 소스를 공개한다.) 스프린터 셀 시리즈는 구입한 엔진을 개조한 대표적인 예이다. 처음에 언리얼 엔진 2.5를 구입했지만, 시리즈를 거듭할 수록 자신들의 게임에 맞게 엔진을 개조해왔다. (결국 《스프린터 셀: 컨빅션》에서는 개조된 엔진을 LEAD 엔진이라 이름붙였다.)<ref name="spcell_conviction">Splinter Cell: Conviction Q&A</ref>

직접 엔진을 개발하는 경우는 자신들의 게임에 맞는 엔진이 없는 경우이다. 일인칭 슈팅 게임헤이즈》의 개발팀은 자신들의 게임이 가진 특징을 살리기 위해 스스로 엔진을 개발했다.<ref name="haze">"A Personal Chat with Free Radical's Derek Littlewood", 플레이스테이션매거진: p.22 - 26</ref> 직접 개발하는 엔진도 사내의 다른 프로젝트나 후속 프로젝트를 고려해 범용성을 보장해야 하는 경우가 있다. 나아가 어떤 개발사들은 연구개발팀을 따로 두어 회사 프로젝트 전용의 게임 엔진을 개발하기도 한다. 일본의 게임 개발사인 캡콤은 회사의 자체 엔진인 MT 프레임워크를 꾸준히 개발하고 있고, 《로스트 플래닛》과 《데드 라이징》에 이 엔진이 쓰였다.<ref name="lostp_3d">西川善司の3Dゲームファンのための「ロスト プラネット」グラフィックス講座</ref>

판매를 위해 개발되는 엔진은 그 범용성이 관건이 된다. 에픽 게임즈언리얼 엔진은 판매를 목적으로 개발된 엔진으로, 특히 언리얼 엔진 3는 기존의 일인칭 게임 중심 구조에서 벗어나 범용성을 더욱 강화했다. 그 외에 판매 목적으로 엔진을 개발하는 회사로는 크라이엔진크라이텍토크 게임 엔진게러지게임즈가 있다.<ref name="cryengine">Template:웹 인용</ref><ref name="torquesell">토크 게임 엔진의 경우 http://www.garagegames.com/products/torque/tge/ 에서 판매되고 있음을 확인할 수 있다.</ref>

취미 개발

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

주요한 게임 엔진들

대한민국의 게임 엔진

대한민국에서는 아직 게임 엔진의 개발이나 판매보다는 해외의 게임 엔진을 구입하는 일이 많다.<ref name="korean_engine">게임 경쟁력은 엔진기술서 나온다 - 전자신문</ref><ref name="korean_engine2">게임도 10억 엔진 다니 ‘명품’일세 - 일간스포츠</ref>잘 알려진 한국산 게임 엔진으로는 드림익스큐션이 《워록》을 만들 때 개발한 진도 엔진가이블에서 판매용으로 개발한 지블렌더가 있다.Template:출처 네트워크 엔진으로는 프라우드넷엑스커넥터가 있다.

게임 제작 소프트웨어

엔터브레인RPG 만들기 같은 소프트웨어는 최종 사용자를 위해 만들어진 게임 엔진이라고 할 수 있다. 이러한 게임 제작 소프트웨어는 쉽고 빠르지만 제한된 범위의 게임을 만들 수 있게 해준다.

비주얼 노벨을 위한 스크립트 엔진

NScripter키리키리비주얼 노벨에 특화된 엔진으로, 간단한 스크립트 언어로 프로그램을 작성할 수 있는 환경을 제공한다.Template:출처 한국어로 제공되는 비주얼 노벨 엔진으로는 브이냅바실리어트가 있다.

상용엔진 분석 : 언리얼 엔진 3.0

가격 1 타이틀 당 $500,000 (유지보수 1년 포함) 1년 후 유지보수 비용 1년에 $100,000 원래는 크게 두가지의 버전으로 나뉘어서 언리얼 엔진 3.0 최종버전까지 무상 업그레이드, 언리얼 엔진 3.5는 추가로 비용을 지불 하고 업그레이드 받게 할 정책이었으나 업데이트의 빈도가 잦고 업데이트 내용이 많고 새로운 기술, 툴, 서드파티 기술들의 IPP 추가가 많아짐에 따라서 크게 3.0, 3.5로 두가지 버전으로 나누지 않고 언리얼 엔진 4가 나오기 이전인 2012년까지 지속적으로 꾸준한 업데이트가 되며 1년당 유지보수 비용을 받는 정책으로 바뀌었다. 업데이트는 계속 진행되면서 꾸준하게 새로운 codedrop을 릴리즈 한다. 1년간 유지 보수 비용이 $100,000씩 하는 이유는 꾸준한 버전업에 엔진과 툴셋의 많은 기능 개선과 발전이 있기 때문이다. 1 플랫폼 추가 당 $50,000 멀티플 라이센스 시에 라이센스 수에 비례해서 타이틀 당 가격, 플랫폼 추가 당 가격, 유지보수 비용의 단가가 내려간다. 계약 조건에 따라서 가격이 상이하게 다르다. 엔진 역사 : (이전 역사는 언리얼 엔진 2 참고)

언리얼 엔진 2는 매우 많은 게임들에 사용되었으며 PC용 FPS에서는 거의 언리얼 엔진이 관례가 되었다. 이 후에 64비트 프로세싱의 지원과 여러가지 향상이 있는 언리얼 엔진 2.5로 업그레이드 됐고 그 다음 버전으로 현재의 언리얼 엔진 3가 나왔다.

언리얼 엔진 3는 기존의 장점인 깔끔한 코드 구조가 더욱 커스터마이징하기에 좋고 확장성이 더욱 증대되어 이전 버전보다도 더욱 융통성이 좋게 개선되었으며 개발 툴 역시 전보다 많은 진보를 이루어서 차세대 게임 개발에 편리한 많은 잇점을 제공한다. 뿐만 아니라 이제는 더 이상 FPS 장르에만 특화된 게임 엔진이 아니며 모든 장르를 쉽게 수용할 수 있는 구조로 크게 개선이 되었으며 엔진 코드와 게임 코드의 뚜렷한 경계를 지었음에도 엔진의 유연성과 코드의 연동성은 기존보다 더 개선되었기 때문에 프로그래밍시의 많은 기술적 난점을 해소하였다. 그리고 이젠 PC뿐만 아니라 콘솔 기기도 본격적으로 지원을 함으로서 차세대 콘솔을 완벽지원하며 차세대 콘솔 기기인 Xbox 360와 PlayStation 3의 공식 미들웨어로 언리얼 엔진 3가 선정되었다.

지금 해외에선 언리얼 엔진 3가 차세대 콘솔 및 PC 게임 개발의 관례가 되어있으며 앞으로 게임 엔진 미들웨어의 중요성과 필요성이 점점 부각되어가고 있는 시점에서 지난 콘솔 세대의 미들웨어 선두주자인 렌더웨어(RenderWare)를 완전히 압도적으로 제치고 게임 엔진 미들웨어 시장의 선두주자로 달리고 있다.

렌더웨어가 단순히 그래픽스 라이브러리에 그쳐있는 반면에 언리얼 엔진은 버전업을 거듭하면서 방대한 게임 엔진으로 거듭났고 단순히 방대한게 아니라 방대한 엔진이 깔끔한 구조와 편리한 개발툴을 제공함으로서 개발 프로세서에 큰 향상을 주기 때문에 개발자들에게 크게 각광받고 있다.

현재 에픽의 엔진 개발팀에선 언리얼 엔진 3의 꾸준한 버전업을 담당하고 책임지고 있으며 언리얼 엔진의 핵심 개발자인 팀 스위니 (Tim Sweeney)는 언리얼 엔진 3의 상용화가 시작되기 1년전인 2003년부터 이미 언리얼 엔진 4의 코어 시스템 설계에 착수해 개발하고 있다. 언리얼 엔진 4가 출시되는 시점는 다음 세대의 게임 콘솔 기기들이 등장할 시기와도 맞물린다. 언리얼 엔진 4는 다음 세대의 게임 콘솔 기기들과 2012년 이후의 PC 하드웨어를 겨냥하여 개발된다.

언리얼 엔진 코어 시스템 (Unreal Engine Core System)이란 언리얼 엔진에서 가장 중요한 부분으로서 언리얼 엔진 코어 시스템은 언리얼 가상 머신 (Unreal Virtual Machine)을 구현하며 UnrealScript를 사용 가능하게 한다. 이 것은 언리얼 엔진이 각광받는 가장 큰 이유 중에 하나인 확장성/유연성/융통성에 관련된 부분이다. 언리얼 엔진이 독보적으로 다른 엔진들과의 가장 큰 차이점을 보이는 부분이며 범용 게임 엔진에서 가장 중요한 부분이며 뛰어나게 설계하기가 매우 어려우며 오랜기간에 걸친 업데이트와 노하우가 없이는 좋은 구조가 나올 수 없는 부분이다. 언리얼 엔진은 10여년이 넘게 특히 이 부분을 신경 써서 발전해왔으며 그 결과 시간이 지날수록 점점 다른 엔진들과 가장 뚜렷한 차이점을 보이고 있다. 대부분 알려지기로는 언리얼 엔진의 뛰어남은 표현력의 뛰어남이나 언리얼 에디터 툴셋의 편리함 덕분이라고 알려져 있다. 하지만 진정으로 언리얼 엔진에서 가장 뛰어난 부분은 바로 이 언리얼 엔진 코어 시스템이다. 언리얼 엔진 코어 시스템은 언리얼 엔진 1에서부터 현재의 언리얼 엔진 3까지 계속 이어서 발전해 왔으며 언리얼 엔진 4의 코어 시스템도 언리얼 엔진 3에서 개선되서 새롭게 설계되고 있다. 언리얼 엔진 4의 코어 시스템은 언리얼 엔진 3까지 구현된 코어 시스템을 이어받아서 2003년부터 또 다시 새롭게 설계되고 있으며 약 5년간의 설계가 더 된 후인 2008년 정도부터 언리얼 엔진 4의 언리얼 에디터 툴셋과 렌더링 엔진같은 내부 모듈의 작업에 들어갈 예정이다. 내부 모듈 작업이 진핼되는 시기에도 코어 시스템은 설계의 발전을 더 갖는다. 언리얼 엔진 4의 본격적인 개발이 거의 마무리가 되고 상용화가 가까워지는 시기에는 완성된 언리얼 엔진 4의 코어 시스템 설계를 이어받아 팀 스위니가 언리얼 엔진 5의 코어 시스템 설계에 들어가는 식의 개발 사이클을 갖는다.

언리얼 엔진 3의 버전업은 언리얼 엔진 4 (언리얼 엔진 4는 2010년 말이나 2011년 초에 출시될 예정)가 주 개발 플랫폼으로 자리잡을 시점인 약 2012년까지 꾸준하게 버전업이 이루어지면서 새로운 툴셋의 추가와 개선, 그 동안 새롭게 출시되는 PC 하드웨어와 새롭게 나오는 API의 활용 및 신기술의 추가, 엔진의 전체적인 기능성 및 최적화의 향상, 버그 수정과 개선, 확장성의 증대, 새로운 외부 미들웨어들의 IPP 추가 등의 현저한 향상과 두드러지게 새로운 특징들의 추가(significant enhancement and adding major new features)가 있을 것이며 Xbox 360와 PlayStation 3에도 각각 특화된 버전들로 꾸준하게 최적화를 이뤄갈 것이다.

언리얼 엔진 3가 처음 라이센스 된지 얼마되지 않았을 때는 엔진이 불안정하며 버그가 많은 미완성된 엔진이라는 비아냥거림도 있었으나 현재는 버그가 많이 해결됐고 매우 안정적이며 이전보다 더 진보한 툴셋, 향상된 엔진의 성능, 다양한 외부의 미들웨어 IPP를 제공함으로서 이전보다 매우 크게 향상된 모습을 갖추고 있다. 실제로 2006년 11월에 발매된 기어스 오브 워에 쓰인 언리얼 엔진 3 버전과 현재 2007년 4월자 언리얼 엔진 3 최신의 빌드 버전을 비교해보면 불과 몇달정도 사이에 렌더링을 비롯한 많은 부분에서 큰 진보가 이루어졌다.

개발사 : 에픽 게임스 (Epic Games)

엔진 타입 : 통합형 범용 게임엔진

언리얼 엔진 3는 더 이상 FPS에 특화된 게임엔진이 아니다. 언리얼 엔진 2를 포함한 쥬피터 엔진 시리즈, 시리어스 엔진 시리즈, 크라이 엔진 시리즈등의 다른 통합형 FPS 게임엔진들은 기본적으로 FPS에 맞추어진 엔진이라서 MMORPG나 다른 장르의 개발시에 변경에 어느정도의 어려움이 있다. 하지만 언리얼 엔진 3는 그런 어려움이 전혀 없이 매우 순조롭게 커스터마이징이 가능하다. 다양한 장르를 고려하기 때문에 심리스 월드도 기본 지원된다. 그리고 FPS용 네트워크 엔진이나 게임의 장르마다 필요한 네트워크 엔진들이 따로 제공되며 액션 게임용 인공지능 엔진이나 MMO용 길찾기 엔진등 다양한 게임의 환경과 기획과 문제점들을 고려한 기술들이 제공된다. 엔진 구성 및 업데이트

이전까지와는 다르게 게임 코드와 엔진 코드가 완전히 분리되어 제공된다. 즉, 순수한 언리얼 엔진으로서 코드가 제공되는 것이다. 그리고 게임 코드와 엔진 코드 및 확장 모듈등의 각 코드간의 경계를 이전보다 더욱 명확하게 함으로서 엔진의 구조적 융통성과 커스터마이징이 용이한 구조와 뛰어난 확장성은 전보다 더욱 강화되었다. 그리고 보너스로 에픽에서 개발하는 게임의 모든 소스 코드도 제공된다. 엔진의 build 넘버가 올라갈수록 더 엔진에 기능이 추가되거나 새 툴셋이 추가되거나 기존의 성능이 더 향상된다. 기어스 오브 워가 나왔을 때의 엔진보다 언리얼 토너먼트 3에 사용되고 있는 엔진의 버전이 더 높으며 기능이 더 많고 더 최신 기술들이 사용되었다. PC 버전에서는 새로이 출시되는 하드웨어를 활용한 새로운 기술들이 지속적으로 업데이트 되며 콘솔 버전에서도 기술의 추가가 똑같이 이루어지지만 PC에서만 사용 가능한 기술들이 더 많다. 그리고 엔진 버전업이 되면서 최적화 작업도 계속 이루어진다. 제공되는 소스

순수한 Unreal Engine 3 (UnrealEd 및 모든 유틸리티 포함)의 Full source code 매주 업데이트되는 Unreal Engine 3의 새로운 build 버전 codedrop Epic의 Unreal Engine 3 사용 게임들의 Full source code Gears of War의 Full source code Unreal Tournament 3의 Full source code UDN (Unreal Developer Network)에서 Demiurge Studios에 의해 지속적으로 추가 제공되는 Customize code와 Example code 제공되는 툴

UnrealEd (언리얼 에디터) 기본적인 모습으로는 언리얼 엔진 2의 것과 거의 유사한 모습이지만 다수의 변경과 기존 기본적인 인터페이스 및 기능의 향상이 이루어졌으며 비주얼 셰이더 시스템이나, 파티클, 컷신툴 인공지능 툴셋, 사운드 설정 툴셋, 비주얼로 게임 스크립트짜는 툴같은 기존의 툴들의 성능 및 옵션 개선 및 새로운 툴 추가, 모든 툴은 UnrealEd 내부에 통합되어 있으며 각 툴간에 긴밀하게 상호 연동된다. UnrealEd에서는 모든 작업을 실시간으로 하여 보이는 그대로 적용하는 것 그대로가 게임이 그대로 나오는 것이다. 모든 렌더링 제작, 편집 및 설정 (인도어 제작, 아웃도어 제작, 광원 배치, 텍스처 적용, 다양한 특수 효과 적용, 그림자 사용, 애니메이션 설정), 물리 설정 및 적용, 탈것 설정 및 적용, A.I. 패스노드 설정, 사운드 설정, 컷신 제작, 게임 플레이 스크립트 설정, 게임 A.I. 설정, 게임 모드와 멀티 A.I. 설정 등의 게임에 필요한 모든 작업을 UnrealEd 내부에서 보이는 그대로 작업한다. 외부 툴과의 연동이나 UnrealEd 내의 새로운 툴 추가나 수정이 쉽고 엔진을 개량시 동시에 툴셋에도 개량 요소 추가 용이하며 새로 추가한 요소와 기존의 요소 연동 용이하다.

UnrealEd의 주요 세부 툴셋 UnrealMatinee :UnrealEd 내에서 편리하게 도와주는 컷신 제작 툴셋 (언리얼 엔진 2버전에 비해 비약적으로 향상) UnrealCascade : 언리얼 엔진 2의 파티클 위저드 및 언리얼 엔진 2.5의 파티클 시스템 에디터에 비해서 비약적으로 향상된 파티클 툴셋 UnrealKismet : 게임 플레이나 인공지능 설정등의 모든 스크립팅을 플로우챠트 형식으로 만들어서 비주얼적으로 개발하는 툴셋, UnrealScript를 자동 생성하며 UnrealMatinee로 컷신 스크립트를 작성 할 때도 사용 가능하며, UnrealEd 내의 다른 모든 툴 및 임의적으로 추가한 툴과도 연동되어 각 부분의 스크립트 생성에 사용 가능하며 임의로 추가한 기능이나 커스터마이징된 기능 및 IPP로 추가된 새로운 기능들과도 연동되어 사용 가능하다. Visual Material Editor : 비주얼 툴셋으로 재질 셰이더를 설정하면 자동으로 Cg와 HLSL코드가 생성된다. Visual Terrain Editor : 실시간 비주얼로 보이는 그대로 지형을 생성하고 초목을 장식하고 광활한 실외 지역을 작업하는 툴셋 SoundCue Editor : 사운드의 설정을 해주는 툴로 작업환경 전체에 걸쳐서 다양한 세부적 사운드 설정을 해주는 툴셋 UnrealPhAT : 물리의 모든 세부적인 설정을 해주는 툴로서 게임내 모든 환경과 오브젝트, 탈것, 캐릭터에 물리를 실시간으로 세부적인 설정이 가능한 툴셋 AnimSet Editor : 모든 애니메이션 세트와 애니메이션 시퀀스를 설정하는 툴셋 AnimTree Editor : 애니메이션을 비주얼 트리 모양으로 나열해서 한눈에 알아보기 쉽게 구성해 놓고 설정을 할 수 있는 툴셋 Script Editor : UnrealEd 내에서 모든 스크립트를 바로 열어서 확인 가능하고 수정한 후에 즉석에서 인터프리팅해서 실행할 수 있으며 컴파일해서 적용 시킬 수도 있는 툴셋 Play In Editor : UnrealEd 내에서 직접 모든 것이 적용된 게임 자체를 돌려서 확인하고 작업할 수 있는 툴셋 Network Level Editing COLLADA import path for meshes and animation Visual UI Tool : UnrealEd 내에서 UI 또는 GUI를 디자이너가 비주얼적으로 Flexible한 작업으로 UI 또는 GUI를 제작할 수 있는 툴셋 적당한 노말값을 추정하여 노말맵을 생성하는 툴셋 2,000,000 폴리곤 (노말맵을 추출할 모델) 5,287 폴리곤 (실제 게임에 사용될 모델) 5,287 폴리곤이 사용된 모델에 노말맵을 적용(엔진상에서 보이는 모델) 1,000,000의 폴리곤으로 노말맵을 추출해서 적용한 배경씬 실제 게임상의 폴리곤 수는 500,000 GUI 기반의 디버깅 툴 및 퍼포먼스 모니터링 툴 메모리 트랙킹 툴 GPU 메모리 트랙킹 기능 포함 원격 조정 유틸리티 게임의 셋팅과 실행을 관리하고 도움 명령어를 활용해서 디버깅하고 수정할 수 있는 툴 유틸리티 툴 자체의 기능 확장 가능성 UnrealScript Debugger UnrealActorX Exporter 3D Studio MAX Plug-in MAYA Plug-in Softimage XSI Plug-in 3D Studio MAX, MAYA, Softimage XSI에서 만든 메쉬를 UnrealEd로 익스포트 할 수 있는 Plug-in이다. Unreal Engine 3 IPP의 모든 툴셋이 UnrealEd에 연동 PhysX 물리 엔진 툴셋 PhysX 물리 엔진에서 제공하는 SDK 툴셋과 유틸리티들 FaceFX 툴셋 FaceFX에서 제공하는 페이셜 애니메이션 및 립싱크 제작 툴셋 이 외에도 Unreal Engine 3 IPP의 툴들을 포함한 다른 툴들이 더 존재하며 언리얼 엔진 3는 2012년까지 업데이트 될 예정으로서 앞으로도 더 많은 툴셋과 유틸리티들이 추가 될 예정에 있다. 제공되는 컨텐츠

Unreal Engine 3 Example Contents Epic의 Unreal Engine 3 사용 게임들의 Example Contents Gears of War의 Example Contents Unreal Tournament 3의 Example Contents Unreal Engine 3 Example Contents는 상용 프로젝트에 도입해도 상관없으나 Epic의 상용 게임들인 Gears of War나 Unreal Tournament 3의 Example Contents는 상용 프로젝트에 도입하면 안되며 참고용 예제로만 사용해야 한다. Demuirge Studio의 다양한 예제 Demiurge Studio는 Unreal Developer Network의 지원팀으로 언리얼 엔진의 QA와 개선사항을 담당하고 엔진의 활용법과 다양한 예제를 개발하고 지원팀으로서 Q&A를 진행해준다. 엔진 개발사에서 만든 게임

기어스 오브 워 Xbox 360 - 2006년 11월 7일 출시 PC - 2008년 출시 예정 언리얼 토너먼트 3 PC - 2007년 출시 예정 Xbox 360 - 2007년 출시 예정 PlayStation 3 - 2007년 출시 예정 기어스 오브 워 2 Xbox 360- 개발 예정 PC - 개발 예정 언리얼 3 PC - 개발 예정 Xbox 360 - 개발 예정 PlayStation 3 - 개발 예정 이 엔진을 사용한 대표적인 게임

기어스 오브 워 레인보우 식스 베가스 언리얼 토너먼트 3 헉슬리 리니지 3 국내에서 쓰이는 게임

웹젠의 헉슬리 레드덕의 아바와 프로젝트 M(신작 MMORPG라고 한다) NC소프트의 리니지 3와 프로젝트 M(김형태씨가 참여해 만드는 MMORPG라고 한다) 및 온라인 FPS 게임을 비롯한 몇개의 작품들 소프트맥스의 마그나 카르타 2(Xbox 360용) 애니파크의 A4(A3 차기작이며 A4는 임시제목이다) CJ 인터넷의 미발표한 MMOG N모사의 신작 MMORPG (NC말고 다른 N모사) 모사의 프로젝트 F (기사에는 모회사의 프로젝트 F가 언리얼 엔진 3를 사용한다고 나옴) 그 외에 아직 미발표한 다수의 개발사들이 언리얼 엔진 3를 사용해서 개발중인데 국내에서는 대부분 FPS나 MMORPG가 많다. 국내에서 엔진을 쓰다가 게임이 취소된 경우

웹젠의 PlayStation 3용 게임인 엔드리스 사가 언리얼 엔진 3가 게임과 맞지 않다거나 엔진 자체의 문제점으로 취소된 것은 아니고 PlayStation 3의 열악한 개발조건과 회사 수지타산이 맞지 않아서 취소된 경우이다. 그러나 라이센스비용이 낭비된 것은 아니다. 웹젠은 이미 언리얼 엔진 3를 사용해서 헉슬리를 개발하고 있었으며 엔드리스 사가도 언리얼 엔진 3를 사용해서 개발했지만 이미 한번 라이센스 한 상태에서 비용은 더 들지 않으며 게임이 완성되어 출시했을 때 추가비용이 들어가는 것이기 때문이다. 엔드리스 사가 외에는 취소된 경우가 아직까지는 없다. 해외에서 쓰이는 게임

뛰어난 기술력과 편리한 차세대 툴셋과 뛰어난 확장성으로 PlayStation 2 및 Xbox 세대에서 표준으로 사용되던 렌더웨어(RenderWare)를 제치고 PlayStation 3 및 Xbox 360 세대부터는 콘솔 및 PC 게임 및 온라인 게임 개발 시장을 장악하다시피 하고 있다. 다양한 장르에 많이 쓰이며 FPS나 3인칭 액션, 어드벤쳐, RPG, RTS, 카툰 스타일의 캐주얼 게임, MMORPG등 장르를 구분하지 않고 많이 쓰인다. MMPOG들도 이미 상당수가 언리얼 엔진 3를 채용하고 있다. 시질 게임즈 온라인의 뱅가드 : 사가 오브 히어로즈 (Vanguard : Saga of Heroes)의 확장팩 (뱅가드 원본은 언리얼 엔진 2를 사용해서 만들어졌다)과 차기작 샤이안 마운틴 엔터테인먼트의 스타게이트 월즈 (Stargate Worlds)외에 신작 게임들을 언리얼 엔진 3를 사용하여 더 개발할 예정임 소니 온라인 엔터테인먼트의 DC 코믹스/유니버스 온라인(DC Comics/Universe Online)와 에버퀘스트 3를 포함해 총 5종의 온라인 게임을 언리얼 엔진 3를 사용해 개발 중 오란(Auran)의 퓨리 (Fury)외에 신작 게임들을 언리얼 엔진 3를 사용하여 더 개발 할 예정임 보그스터 엔터테인먼트 (Vogster Entertainment)의 크라임크래프트 (Crimecraft)외에 신작 온라인 게임 몇종을 더 언리얼 엔진 3를 사용해 개발 중 마이크로소프트 게임 스튜디오의 신작 온라인 게임들 몇종을 언리얼 엔진 3를 사용해 개발 중 리얼 타임 월즈 (Realtime Worlds)의 APB (All Point Bulletin) 중국의 개발사 천청의 신작 MMORPG 중국의 개발사 소프트-월드 (Soft-World)의 신작 MMORPG 이 외에 다수의 개발사들이 언리얼 엔진 3를 사용해 온라인 게임을 개발중이거나 개발할 예정에 있다. RTS 장르를 만들기 위해서도 이미 몇 개발사들이 언리얼 엔진 3를 채용하고 있다 에이지 오브 엠파이어 (Age of Empire) 시리즈를 만든 앙상블 스튜디오 (Ensemble Studios)에서 언리얼 엔진 3를 사용해서 헤일로 워즈 (Halo Wars)와 새 RTS 게임을 만들고 있다. 코헨 (Kohan) 시리즈의 개발사인 타임 게이트 스튜디오 (TimeGate Studios)는 언리얼 엔진 3를 다중 라이센스 계약해서 신작 RTS와 신작 FPS와 신작 RPG 타이틀을 사용할 계획에 있다 현재까지 약 50여곳 이상의 업체에서 현재 300여개 이상의 타이틀 개발중, 더 늘어날 것으로 추정된다. 소규모 개발사에서는 싱글 라이센스로 사용하거나 큰 유통사의 지원을 받아 사용하는 경우가 많다 대규모 개발사에서는 대부분 멀티플 라이센스 계약을 체결해서 사내의 여러 스튜디오 및 팀에서 사용하게 한다. 특히 엔진 구조가 매우 플랙시블한 장점을 한껏 활용해서 대형 회사같은 경우에는 멀티플 라이센스로 회사 전체에서 공유하면서 여러 게임에 커스터마이징 되고 그렇게 된 부분들의 장점들을 또 다시 추려내서 각 게임마다 다시 적용하는게 쉬워서 그런 장점으로도 많이 사용되고 있다. 깔끔하고 좋은 코드의 구조와 연동성을 갖지 못한 엔진은 그렇게 할 수 없다. 그런 경우엔 코드가 거의 엉망진창이 된다. 언리얼 엔진 2는 특히 유비소프트에서 그렇게 잘 사용하였다. 언리얼 엔진 3는 그렇게 사용하는 개발사가 상당히 많다. 해외 서양쪽이나 일본쪽의 대형 유통사 및 개발사들의 경우에 많은 회사들이 다수의 게임에 사용하기 위해서 언리얼 엔진 3를 멀티플 라이센스를 하였다. 언리얼 엔진 3부터는 그런 장점들이 타 플랫폼으로의 이식에도 용이하도록설계되어 있다. 업데이트 : 지속적으로 개량 중, 최적화, 새로운 렌더링 기술, 새로운 툴셋, 기타 요소 등등

언리얼 엔진 3는 현재 64-bit 프로세싱, PC와 차세대 콘솔 기기들의 멀티 쓰레딩, Windows Vista와 Direct3D 10의 완전한 활용 및 복셀 렌더링, 새로운 지형 시스템, 실시간 래디오시티같은 신기술이 구현되어 있으며 앞으로도 언리얼 엔진 4가 출시되기 이전인 약 2012년정도까지 계속해서 꾸준하게 엔진이 버전업 되면서 신기술의 추가와 더 편리한 툴셋과 IPP의 추가등 현격한 향상이 있을 것이다. 언리얼 엔진 3의 특징 C++ DLL 모듈 기반 Plug-in 컴포넌트화 기존의 언리얼 엔진 2보다도 더욱 커스터마이징이 용이한 구조로 개선되었다. 엔진 코드와 게임 코드가 상호 의존적인 부분을 완전히 분리시키고도 내부적으로 엔진의 연동성은 더 뛰어나고 유연함과 확장성이 기존보다도 더 증대되었으며 더욱 융통성 있는 엔진의 구조를 갖게 되었다. 기존의 언리얼 엔진 2에 비해서도 더욱 발전된 언리얼 엔진 코어 시스템 디자인 UnrealScript의 사용으로 여러 모듈 결합이 매우 용이한 점은 전보다 더욱 확장하기 쉽게 개선되었다. 언리얼 엔진이 다른 엔진들과 가장 차별화되는 독보적인 특징으로서 언리얼 가상 머신의 개념과 UnrealScript를 사용하여 다양한 모듈을 제어하고 연동할 수 있다는 점이다. 언리얼 엔진에서는 모든 모듈이 언리얼 엔진에서 정의한 각각의 모델로 구성되어 있으며 기존의 존재하는 모델이나 모델 타입 또는 새로운 모델이나 새로운 모델 타입을 추가/변경/삭제가 가능하며 이 모든 것들은 커스터마이징이 가능하다. 모든 모듈/모델은 언리얼 가상 머신을 통해 언리얼 엔진 내부에서 전체적으로 매우 유연하게 연동된다. 직접 네이티브 코드로 연동을 시키지 않고서도 UnrealScript만을 사용해서도 외부의 모듈을 언리얼 엔진 내에 연동 시켜서 사용할 수 있으며 이런 연동 작업은 UnrealEd 내에서 매우 간단하게 가능하다. UnrealScript를 쓰지 않고 네이티브 코드만 연동 시키는 경우에도 유연한 코드 구조 덕분에 다른 엔진보다 쉬운 장점을 제공하지만 UnrealScript를 쓰는 것은 전혀 어렵지 않으므로 꼭 쓰길 권한다. 네이티브 코드로 연동하고 UnrealScript를 사용해서 연동 시킨다면 더욱 빠른 속도와 모듈의 커스터마이징에 유연한 환경을 가질 수 있다. 엔진 제어나 연동 외에도 게임 플레이 스크립트도 UnrealScript로 작성할 수 있다. 게임 플레이 프로그래머/스크립터의 취향이나 성향에 따라서는 C#, Java Script, Rube, Lua와 같은 외부 언어를 적용하거나 외부 언어와 UnrealScript 동시 사용이 가능하다. UnrealScript와 외부 언어 2개 이상 또는 외부 언어만 2개 이상을 동시 사용하는 것도 유연한 코드 구조 덕분에 쉽게 가능하다. 각각 모듈별로 언어를 적용하여 사용이 가능하다. UnrealEd와 그 내부의 세부 툴은 C#이나 Visual Basic, Java APP등의 언어로 개발하여 연동하기가 쉬우며 이식도 간단하게 가능하다. 엔진 코드와 게임 코드의 명확한 경계로 프로그래밍이 훨씬 수월하게 개선되었다. 언리얼 엔진 2까지는 엔진 코드와 게임 코드가 어느정도 상호 의존적이었다. 그러나 언리얼 엔진 3에서는 그 구분이 더욱 명확해져서 프로그래밍 작업상의 훨씬 효율적인 잇점을 제공한다. 엔진을 커스터마이징하여 게임을 개발하던 도중 엔진을 업그레이드 하거나 다른 변경 사항을 적용해도 엔진을 크게 다시 손 볼 필요가 없이 손쉽게 적용 가능하다. 각 부분의 코드들의 명확한 경계가 있지만 내부적으로 연동성은 매우 좋다. Unreal Engine 3 IPP (Integrated Partners Program) 언리얼 엔진 3에선 IPP를 추진하고 엔진에 지속적으로 업데이트 해나간다. 언리얼 엔진 3 IPP는 에픽 자체의 기술이 아닌 외부의 각 분야마다 최고의 미들웨어 솔루션을 라이센스 해서 언리얼 엔진 3에 통합하는 것으로서 그 것은 렌더링 관련, 사운드, 네트워크, 인공지능과 같은 각 분야별 관련 미들웨어나 SDK, 그리고 외부의 다양한 툴셋마저도 통합하는 것을 포함하며 IPP에 포함된 미들웨어들의 라이센스 비용을 따로 필요로 하지 않으며 모두 언리얼 엔진 3 사용 개발사들에게 무상 제공된다. 하지만 아직까지는 모든 IPP가 완전히 무상으로 제공되는 것이 아니며 PhysX 물리 엔진이나 FaceFX는 모든 소스와 툴셋이 완전하게 제공이 되지만 일부 IPP는 일부 라이브러리만 제공되거나 SpeedTree는 직접 구매를 해야만 연결해서 사용이 가능하다. 언리얼 엔진 3 IPP가 생기게 된 연유는 다음과 같다. 현재는 기술의 발전으로 게임 개발에는 고도의 프로그래밍 기술이 필요하게 됐으며 그에 따라서 상용 엔진의 사용이 대세이다. 계속 발전하는 기술은 분야별로 세밀한 각각의 전문적인 엔진들 (렌더링, 애니메이션, 라이팅, 지형, 인도어, 물리, 사운드, 네트워크, 인공지능, 립싱크, 초목 구현 등)에 따라서 한 분야별 엔진들이 만들어지고 라이센스 되기 시작했다. 이 것은 엔진 개발 비용상으로도 어쩔 수 없는 문제이기도 하지만 발전하고 복잡해진 기술로 인해서 각각의 분야별로 전문적인 최고의 솔루션이 만들어지기 위해서는 어쩔 수 없는 현상이다. 언리얼 엔진 3는 이러한 각 분야마다 최고의 기술들을 제공하기 위해서이며 또한 만들고자 하는 게임에 따라서도 요구하는게 달라질 수 있으므로 같은 분야라도 (네트워크 부분의 모듈은 현재까지 자체 1개와 2개가 추가됐고 라이팅 관련은 자체와 IPP 1개, 인공지능은 자체 1개와 IPP 2개 등) 여러가지의 외부 기술들을 라이센스 해서 언리얼 엔진 3에 포함함으로서 진정한 최고의 범용 게임 엔진으로서의 길을 걷고 있다. 외부의 기술은 언리얼 엔진 3 라이센스시 그냥 번들 형태로 제공되는게 아니라 언리얼 엔진 3의 잘 짜여진 구조를 바탕으로 외부의 모든 모듈들이 서로간에 긴밀하게 연동되어 있으며 언리얼 엔진 3를 라이센스하면 이 모든 외부 IPP 기술들을 추가적인 비용없이 무상으로 제공받을 수 있다. 연동된 기술들은 언리얼 엔진 3 구조하에 연동된 만큼 언리얼 엔진 3의 기본적인 구성요소와 마찬가지로 UnrealScript를 통해 제어할 수 있으며 UnrealEd에서 곧 바로 사용 가능하며 언리얼 엔진 3의 기본적인 확장 기능성과 마찬가지의 특성을 가지고 있으므로 언리얼 엔진 3와 따로 떨어진 상태로 외부 미들웨어 모듈을 직접 사용하는 것보다 언리얼 엔진 3상에서 순조롭게 커스터마이징이 가능한 잇점도 제공한다. 그리고 언리얼 엔진 3 IPP에 포함된 미들웨어들은 한번의 업데이트로 끝나는 것이 아니라 해당 미들웨어들의 버전업을 수시로 체크하여 언리얼 엔진 3에 지속적으로 최신 버전으로 업데이트 된다. 플랫폼 지원

32-bit Windows (Windows XP/Vista, Windows Vista와 DirectX 10 완벽 대응) 64-bit Windows (Windows XP/Vista, Windows Vista와 DirectX 10 완벽 대응) 완전한 64비트 프로세싱 지원 64비트에서는 더욱 향상된 리소스 관리와 최적화, 더욱 세밀한 메쉬, 텍스처, 라이팅, 셰도우, 셰이더, 특수효과 등의 렌더링 표현, 더욱 향상된 물리 시스템 및 인공지능 처리 등 모든 점에서 기능적, 성능적으로의 향상이 있다. 32-bit Linux 64-bit Linux 완전한 64비트 프로세싱 지원 64비트에서는 더욱 향상된 리소스 관리와 최적화, 더욱 세밀한 메쉬, 텍스처, 라이팅, 셰도우, 셰이더, 특수효과 등의 렌더링 표현, 더욱 향상된 물리 시스템 및 인공지능 처리 등 모든 점에서 기능적, 성능적으로의 향상이 있다. Mac OS X Xbox 360 (Gears of War를 통해 Xbox 360상에서의 성능은 충분히 증명이 되었으나 더 향상을 위해 개선중에 있다) PlayStation 3 (아직 퍼포먼스의 문제가 있다. 계속 개선중에 있다) 멀티 쓰레딩

Xbox 360 (Xenon 프로세서의 트리플 코어에 최적화된 멀티 쓰레딩) PlayStation 3 (Cell 프로세서의 다중 코어에 최적화된 멀티 쓰레딩) PC (2-코어, 4-코어, 8-코어에 각각 최적화된 멀티 쓰레드 렌더링/멀티 쓰레딩/멀티 쓰레드 프로세싱) 렌더링 시스템을 멀티 쓰레드로 처리 렌더링, 물리 연산, 인공지능, 사운드를 각각 멀티 쓰레드로 처리 기타 모듈을 멀티 쓰레드로 지정하여 처리 로딩 시스템

Zone-based Loading System Backgrounds Loading System Static Loading System Dynamic Loading System Streaming Loading System Seamless Loading System 렌더링 엔진

멀티 쓰레딩 렌더링 지원 렌더링 API 지원 Direct3D 9 (Windows XP/Vista, Xbox 360) Direct3D 10 (Windows Vista) OpenGL 2 (Windows XP/Vista, Linux, MacOS X, PlayStation 3) 하드웨어 셰이더 (Hardware Shader) 셰이더 모델 2b (Shader Model 2b) 하위 호환 셰이더 모델 3 (Shader Model 3) 완벽 지원 셰이더 모델 4 (Shader Model 4) 완벽 지원 지오메트리 셰이더 (Geometry Shader) 완벽 지원 셰이더 모델 5 (Shader Model 5) 곧 지원 예정 인도어 (Binary Space Partitioning, Constructive Solid Geometry, Portal rendering, Occlusion Culling, Collision Detection, Static Meshes, Voxel Spaces, Level of Detail) Static Meshes의 활용으로 고폴리곤의 복잡한 구조물들이 점철된 지역을 적은 메모리와 연산량으로 빠르게 구현이 가능하다 Long-ranged Distance Indoor Space and Static/Dynamic Meshes (가시거리의 범위가 매우 크며 64비트 프로세싱을 할 경우에는 가시거리의 범위가 늘어나며 더욱 세밀한 구조물들을 빠른 속도로 구현이 가능하다) Displacement Mapping 기술을 활용해서 Level of Detail로 인해서 생길 수 있는 시각적 손상을 방지한다. 아웃도어 (Height-field Terrain, Voxel Terrain, Occlusion Culling, Collision Detection, Level of Detail) 이 스크린샷은 구버전으로 최신버전은 이 스크린샷보다 훨씬 향상되었다 아웃도어의 표현에도 모든 렌더링, 라이팅, 셰이딩, 셰도우, 텍스처링의 적용에 전혀 제한이 없으며 인도어의 표현에서 사용하는 모든 기술들을 그대로 적용할 수 있다 Long-ranged Distance Terrain (가시거리는 약 100Km 이상이며 64비트 프로세싱을 할 경우에는 가시거리의 범위가 늘어나며 지형의 세밀한 굴곡 표현 등의 정밀도도 향상된다) Seamless Mixing of Indoor Meshes and Outdoor Terrain Meshes (인도어와 아웃도어의 이음새가 없이 부드럽게 연결되며 넓은 범위의 인도어와 아웃도어를 동시에 렌더링이 가능하다) 지형도 역시 실내의 구현에서처럼 Displacement Mapping 기술을 활용해서 Level of Detail로 인해서 생길 수 있는 시각적 손상을 방지한다. 라이팅/셰이딩/셰도우 High Dynamic Range Rendering/Lighting Per-Vertex Lighting All Modern Per-pixel (Phong) Lighting/Shading/Rendering Techniques Dynamic Ranged Tone Mapping Dynamic Sampled Tone Mapping Including Normal Mapped Inlcuding Phong Mapped Including Displacement Mapped Parameterized Phong Lighting Custom Artist Controlled Real-time Dynamic Per-material Lighting Models Including Anisotropic Effects Real-time Dynamic Light Attenuation Functions Pre-computed Shadow Masks Real-time Directional Lightmaps Pre-computed Bump-granularity Self-shadowing Using Spherical Harmonic Maps Real-time Spherical Harmonic Lighting Real-time Ambient Lighting Dynamic Ambient Occlusion Lighting Real-time Ambient Lightmaps Static Ambient Occlusion Lighting Real-time Point Lighting Real-time Sun Lighting Real-time Directional Lighting Real-time Spot Lighting Real-time Diffuse Lighting Real-time Specular Lighting

Real-time Shany Lighting Real-time Gloss Lighting Real-time Opacity Lighting Real-time Spread Lighting Real-time Emissive Lighting Real-time Light Beams Real-time Light Shafts Fully Dynamic PRT (Pre-computed Radiance Transfer) Radiosity Lighting With Per-vertex With Per-pixel Geomerics의 Enlighten이 통합되어 있다. (Unreal Engine 3 IPP) Global Illumination/Radiosity를 구현하고 재반사의 의해 생성되는 Soft Shadows를 실시간으로 구현하는 미들웨어 라이팅 엔진이다. Volumetric Lighting Deferred Shading Sub-surface Scattering Stencil Buffer Shadow Volumes Multi-samples Soft Shadows Ultra Extreme Multi-sampled High Quality Soft Shadows Dynamic Projective Shadows Dynamic Fuzzy Soft Shadows Self-shadows 텍스처링 Alpha Blending Light Mapping and Shadow Mapping Multi-pass Normal Mapping (Normal map/Bump map/Specular map/gloss map/opacity map/heghit map/offset map/etc) Parallax Mapping Steep Parallax Mapping Bump Offset Mapping Offset Mapping Per-pixel Displacement Mapping with Distance Function Parallax Mapping with Offset Limiting Relief Mapping Relief Texture Mapping Relief Texture Method Virtual Displacement Mapping (가상 변위 매핑) With Self-shadowing With Z-bias Correction Real Dispalcement Mapping (변위 매핑) With Level Of Detail-based Tessaration and Defomation With Real-time Lighting/Shading/Shadowing Displacement Mapped Water Effects Displacement Mapped Snowy Effects Allegorithmic의 ProFX가 통합되어 있다. (Unreal Engine 3 IPP) 절차적 텍스처를 생성하여 구현하고 Shader처리하는 차세대 미들웨어 텍스처 렌더링 엔진이다. 언리얼 엔진 3상에 ProFX가 융합되어 언리얼 엔진 3상의 다른 여러가지 렌더링 기술들 및 여러가지 효과들과 함께 렌더링하는 장면을 영상으로 만든 동영상 http://assets.profxengine.com/gallery/demos/bayou/videos/bayou.mov MOV 포맷 http://assets.profxengine.com/gallery/demos/bayou/videos/bayou.wmv WMV 포맷 애니메이션 Vertex Animation with Level of Detail (Keyframed, Inverse Kinematics, Motion Captured) Skeletal Animation with Level of Detail (Animated, Motion Captured) Smooth-skinned Geometry with Level of Detail (Software Skinning, Hardware Skinning) Animation Blending with Level of Detail Procedural Skelatal Controllers Procedural Motion Warping OC3 Entertainemtn의 FaceFX가 통합되어 있다. (Unreal Engine 3 IPP) Facial Animation과 Lipsync를 실시간으로 구현하는 미들웨어 애니메이션 엔진이다. 특수 효과 Depth-of-field (촛점 심도) Motion-blur (모션 블러) Distance Fog (Radial, Plane) Height Fog (높이 안개) Volumetric Fog (입체 안개) Frame Buffer Distortion (수면 효과나 왜곡 효과 등) Real-time Sunrise~Sunset Effects (실시간 낮과 밤의 변화) Real-time Weathering System (실시간 날씨의 변화) Advanced Portal Rendering System Mirror Surface (거울 반사 효과) Semi-reflective Materials Warp-portal (공간 이동 포탈, 3D Realms의 Prey나 Valve의 Portal에서 볼 수 있는 그것과 동일하다) Multiple Dynamic Sky Box Zone (독립적으로 움직이거나 회전하는 하늘이나 배경을 처리하는 다중 스카이 박스) 파티클 시스템 일반 파티클 탄피, 불꽃 등 소프트 파티클 불, 물, 연기, 모래, 비, 눈, 우박, 안개 등 Volumetric 파티클 입체로 된 구름, 불, 물방울, 안개, 폭발효과 등을 구현 Voxel 파티클 Voxel 오브젝트 Voxel 기반의 정적 오브젝트 Voxel 기반의 동적 애니메이션/모핑오브젝트

Voxel의 하드웨어 가속 초목 구현 IDV의 SpeedTreeRT가 통합되어 있다. (Unreal Engine 3 IPP)

머시니마(게임엔진으로 영화제작)

머시니마는 막대한 제작 비용을 들이지 않고도 단기간 내에 3차원세계를 구현할 수 있다는 장점이 있고, 플랫폼으로는 1인칭 시점 슈팅 게임(FPS)이나 롤플레잉 게임이 많이 사용된다. 동영상을 캡쳐하는 프로그램을 사용하여 녹화를 하기도 하지만 최근에는 게임 내에서 녹화할 수 있는 카메라를 제공하기도 한다. 캡쳐된 화면을 동영상 편집 프로그램을 이용하여 편집하고 성우 더빙과 음향을 넣어 하나의 스토리를 지닌 영화로 만드는 과정을 거친다.

최초의 머시니마는 1996년 10월 26일 '다이어리 오브 캠퍼(Diary of a Camper)'이다. 100초 남짓의 짧은 영화였지만, 이 영화의 플랫폼인 1인칭 사격 게임 퀘이크(Quake)는 수 많은 '퀘이크 무비'들을 탄생시키면서 인기를 얻는다.

퀘이크 무비를 만든 머시니마의 창시자 휴즈 핸콕(Hugh Hancock)은 머시니마 스튜디오 스트레인지 컴퍼니(Strange Company)를 설립하고, 2000년 1월 machinima.com을 만들어 머시니마 관련 동영상과 기사를 소개하고 있다. 또한 2002년 3월에는 휴즈 핸콕을 포함한 앤서니 베일리(Anthony Bailye), 캐서린 안나 강(Katherine Anna Kang), 폴 마리노(Paul Marino), 매슈 로스(Mathew Ross) 등 5명의 머시니마 제작자들이 '게임 개발자 콘퍼런스(Game Developers Conference)'에서 '머시니마 예술 과학 아카데미(Academy of Machinima Arts & Sciences)를 설립하고 머시니마 필름 페스티벌(Machinima Film Festival)을 기획한다.

초기에는 단순히 사용자들이 온라인 게임 화면을 그대로 녹화하여 중요한 장면이나 기술 등을 공유하는 내용에 그쳤으나 최근에는 기존의 영화 제작의 단계와 같이 각본과 감독은 물론이고, 컴퓨터 그래픽까지 부가되어 상당한 퀄리티의 작품들이 나오고 있다. 또한 시간이 지날수록 머시니마는 더욱 상업적인 목적으로 제작되기도 한다. 토미 팔로타(Tomy Pallotta) 감독에 의해 제작된 '인 더 웨이팅 라인(In the waiting line)'은 2003년 MTV에서 방영된 최초의 머시니마 뮤직 비디오가 되었고, 엑스박스의 게임 '헤일로(Halo)'로 만든 '레드 대 블루(Red vs. Blue)'라는 코미디 시리즈는 많은 팬을 확보하고 DVD로도 만들어졌다.

주요 플랫폼

현재 활발하게 머시니마가 제작되고 있는 게임은 현실과 연동되는 가상 세계를 구현하고 있는 '세컨드라이프(Second Life)'와 블리자드사의 유명 온라인 게임인 '월드 오브 워크래프트'(World of Warcraft, WOW)이다.

세컨드라이프

'세컨드라이프'의 경우 프로그램 자체에 머시니마를 찍을 수 있는 카메라가 내장되어 있다. 그로 인해 실제 영화에서 시도되는 다양한 시점과 카메라 워크를 게임 안에서 그대로 시도해볼 수 있다. 또한 가상 세계안의 캐릭터들에게 미리 원하는 동작을 입력하면 상황에 맞는 연기를 할 수도 있다. 물론 이러한 촬영 내용은 컴퓨터에 저장될 뿐 별도의 필름이나 저장 매체를 필요로 하지 않기 때문에 비용적인 부담이 전혀 없다고 할 수 있다. 그리고 캐릭터의 텔레포트기능을 통해 '세컨드라이프' 세계의 어느 곳이든 쉽게 이동할 수 있기 때문에 다양한 로케이션을 기반으로 촬영을 할 수 있다는 점도 '세컨드라이프' 머시니마의 장점이다.

월드 오브 워크래프트

'WOW'는 세컨드라이프와 같이 자체적으로 게임 속에 내장된 카메라를 제공하지는 않지만 모니터에 표현되는 게임화면을 그대로 캡처하는 방식을 통해 촬영이 이루어지고 있다. 상대적으로 세컨드라이프에 비해 촬영요건이 불편함에도 불구하고 수많은 PvP(Player vs Player, 사용자의 캐릭터들이 싸움을 벌이는 모습을 담은 영상)은 물론이고 상영시간이 100분을 상회하는 달하는 장편 머시니마도 제작되어 전 세계적으로 많은 인기를 끌고 있다. 최근에는 뉴욕의 프로그래머 A J 로이아코노가 'WOW'를 바탕으로 2시간짜리 영화를 제작하고 있어 화제가 되었다.

주요 페스티벌

머시니마 페스티벌, 머시니마 유럽 페스티벌, 머시니마 필름 페스티벌 등 다양한 국제 영화제를 개최하고 있다. 페스티벌을 통해 일반 대중에게 머시니마에 대한 소개와 머시니마 만드는 법에 대한 강의를 하고 잘 만들어진 작품에 대한 수상을 한다.

외부 링크

참조

  • 게임브리오 엔진이나 렌더웨어 엔진 등이 다중 플랫폼을 지원한다.
  • 2.0 2.1 Unreal Powered
  • Gamebryo Powers DAOC Trials of Atlantis - GamersHell
  • 4.0 4.1 경향게임즈. 랜더웨어 엔진, 가장 많이 사용되는 대표적인 미들웨어. 2008년 3월 14일에 확인.
  • 디스이즈게임. 3D 게임엔진의 계보 ③ 게임브리오 엔진. 2008년 3월 14일에 확인.
  • 대표적인 2D 엔진들은 다음과 같다.

Haaf Game Engine Torque Game Builder PTK Game Engine Half-Life 2 Preview

  • MMOG 미들웨어들은 다음과 같다.

Bigworld Technology HeroEngine RealmCrafter Splinter Cell: Conviction Q&A

  • "A Personal Chat with Free Radical's Derek Littlewood", 플레이스테이션매거진: p.22 - 26
  • 西川善司の3Dゲームファンのための「ロスト プラネット」グラフィックス講座
  • 디스이즈게임. 3D 게임엔진의 계보 ④ 크라이 엔진 1, 2. 2008년 3월 14일에 확인.
  • 토크 게임 엔진의 경우 http://www.garagegames.com/products/torque/tge/ 에서 판매되고 있음을 확인할 수 있다.
  • 게임 경쟁력은 엔진기술서 나온다 - 전자신문
  • 게임도 10억 엔진 다니 ‘명품’일세 - 일간스포츠

바깥 고리

ca:Motor de videojoc cs:Engine da:Spilmotor de:Spiel-Engine en:Game engine es:Motor de juego fa:موتور بازی fi:Pelimoottori fr:Moteur de jeu hu:Videojáték-motor it:Motore grafico ja:ゲームエンジン nl:Engine pl:Silnik gry pt:Motor de jogo ru:Графический движок simple:Game engine

sk:Herný engine sr:Погон игре sv:Spelmotor tr:Oyun motoru zh:游戏引擎

온라인/네트워크 게임

온라인 게임 이란

다수의 사용자가 PC통신과 인터넷에 동시 접속, 주어진 역할에 따라 임무를 수행, 최종 목적에 이르도록 하는 게임으로 크게 텍스트 머드와 그래픽 머드로 구분된다. 온라인 게임은 지난 80년 영국의 바틀 트룹소(Bartle Trubshaw)가 처음으로 텍스트 머드 게임을 선보인 게 효시이며 88년 영국의 알랜 콕스(Alan Cox)가「AberMUD」를 개발, 서비스하면서 일반에 널리 알려졌다. 국산 온라인 게임의 효시는 지난 93년 개발된 텍스트 머드 게임인 쥬라기 공원」이다. 텍스트 머드는 이후「퇴마요새」단군의 땅」등이 마니아층을 양산하면서 큰 인기를 누렸으며 95년에는 넥슨이 세계 최초로 캐릭터와 배경 등을 그래픽으로 구현한「바람의 나라」를 개발, 그래픽 머드 게임의 세계를 열었다. 현재 온라인 게임시장은 문자중심의 텍스트 머드에서 그래픽 머드로 급격하게 이동하고 있는 추세인데, 새로운 통신 기술의 개발과 인프라의 개선으로 이미 그래픽 머드가 온라인 게임시장을 주도하고 있는 상황이다. 현재 인기를 얻고 있는「리니지」「어둠의 전설」「미르의 전설」「영웅문」 등 모든 온라인 게임이 그래픽 머드이며 기존 텍스트 머드 개발업체들도 그래픽 머드로 전환하고 있는 추세다. 그래픽 머드는 앞으로 2D 방식에서 실시간 3D 방식으로 바뀔 것으로 예상되고 있다. 세계 최초의 실시간 3D 온라인 게임인 소니사의 「에버퀘스트」가 「울티마 온라인」을 위협할 정도로 인기를 더해가고 있으며 국내에서도 태울, 아이소프트, 인터코리아앤모야 등이 실시간 3D 게임개발에 박차를 가하고 있다. 해외에서는 97년 미국 오리진사가 개발한 그래픽 머드인 「울티마 온라인」이 전세계에서 수십만명의 회원을 보유할 정도로 큰 인기를 얻고 있으며 지난 10월에는 국내에 게임서버를 설치, 시장 공략에 나서고 있다. 국내 업체들도 해외 시장 공략에 나서고 있는데 넥슨이 올해초 실리콘밸리에 지사를 설치, 「바람의 나라」와 「어둠의 전설」을 서비스중이다. 이 게임들은 유명 해외 인터넷사이트의 다운로드 순위에서 상위권을 지키고 있을 만큼 꾸준한 인기를 누리고 있다. 팬택네트와 코디넷도 미국 와이어드게임즈사와 게임서비스 계약을 맺고 각각 「마제스티」와 「스타체이스」를 내년부터 미국 시장에서 선보일 예정이며 태울과 청미디어도 공동으로 실리콘밸리에 지사를 설치, 본격적으로 시장 개척에 나설 방침이다.

네트워크 게임이란

온라인 게임과 네트워크 게임은 같은 의미로 사용되기도 하지만, 보다 포괄적인 의미를 갖는 것은 네트워크 게임이다. 요즘 같이 인터넷이 발전하고, 통신 수단이 발달한 상황에서는 거의 비슷한 역활을 한다고 볼수 있지만, 과거 모뎀이나 저속의 통신 속도에서는 온라인 게임보다는 네트워크 게임이 더 비중이 컸다고 할 수 있다. 네트워크는 반드시 온라인 상에 연결할 필요는 없으며, 바로 이웃의 컴표터 끼리 공유 케이블을 사용하거나, LAN 카드가 있다면 IPX/PSX를 사용하여 게임을 즐길 수가 있다. 따라서, 회사의 동료들이나 가까운 친구들 끼리 네트워크 게임을 통해 친목을 다질 수 있는 계기를 마련할 수도 있다. 근래에 나오는 게임들은 대부분 네트워크가 지원되며, 게임을 함께 할 수 있는 인원수도 갈수록 증가하고 있다.

네트워크 게임의 역사

  • 채 팅 (Chatting)

네트워크 게임에서 DPLAY나 소켓 프로그래밍등을 생각하기 이전에 우리가 먼저 다루어야 할 주제가 있다. 바로 채팅이다. 사실 네트워크 게임이 존재하기 이전부터 채팅은 존재해왔다. 테이블에 앉아서 서로 말로 게임을 즐기는 테이블토크 RPG와 채팅을 합쳐 초창기 RPG의 원류가 되었으므로 사실상 채팅은 모든 네트워크 게임의 기본이라 할 수 있다. 채팅이 이루어지는 과정을 생각해보자. 접속자는 서버에 입력된 모든 데이터를 그때그때 전송받아 화면에서 볼 수 있다. 사용자는 자신이 입력한 내용을 echo back해서 보면서 서버측에 내용을 전달해 다른 사용자가 읽을 수 있도록 하고 있다. 이 경우도 역시 네트워크 게임과 마찬가지로 latency가 발생한다. 그러나 채팅에서는 이 latency를 전혀 처리하지 않는다. 따라서 채팅 중에 회선 상태가 나빠지면 입력한 내용이 바로 전달되지 않고 다른 사람들이 몇 마디 대화를 한 후에 서버에 전달되어 대화의 흐름이 이상해지는 경우도 있다. 즉 “당신은 몇 살?”이라고 물었는데 랙(Lag)으로 인해 질문이 전달되지 않는 동안 이미 그 사용자가 “저는 20살인데 그쪽은 몇 살?”이라고 말한 경우는 질문이 대답보다 후에 전달된 것으로 어색하다. 사용자들은 이것이 채팅 기능 자체에 문제가 있는 것이 아니라 회선상태에 문제가 있다는 점을 알고 있으며 이를 기꺼이 감수하고 있다.

  • Table Talk

채팅 서버는 네트워크 게임에서 본다면 클라이언트 서버 구조로, 서버에 모든 데이터가 집중되는 방식을 취하고 있다. 클라이언트는 데이터를 서버에 보내고 서버의 모든 변화를 전송 받아서 대화할 수 있다. 이때 랙이나 latency는 무시 되며 서버로부터의 전송이나 클라이언트 로부터의 전송이 늦어져 문제가 발생하더라도 아무 조치가 취해지지 않는다. 이를 약간 확장해 RPG의 원형인 테이블 토크를 채팅으로 구현한다고 생각해 보자. 테이블 토크는 모든 내용을 말로 구현하는 RPG이고, 사람들은 마스터가 설명해주는 상황에 맞춰 행동을 결정하고 진행해 나간다. 또한 현재의 가장 간단한 채팅 서버로도 얼마든지 테이블 토크는 가능하다. 이러한 테이블 토크를 구현하는 채팅 서버를 전자화 한 것이 바로 MUD이며, MUD의 원형이 바로 채팅이다. 그러므로 MUD는 채팅의 특성을 고스란히 물려받고 있다. latency가 무시된다는 점, 모든 작업을 말로 진행한다는 점 등은 MUD와 채팅의 유사성을 입증해준다.

  • MUD에서 MUG로 -------->MUG Game 이란?

MUD(Multi User Dungeon)는 좀더 발전해 그래픽을 가미한 MUG(Multi User Graphics)로 이어졌으나 이것 역시 기본적으로는 마찬가지 형식을 취하고 있다. 근본은 채팅 서버이며 모든 데이터는 서버에 저장되고 있고, 클라이언트는 자신의 움직임을 서버에 전송하고 서버의 모든 변화를 전송 받는다. 다만 이때는 많은 사용자들이 동시접속하고 있으므로 게임의 zone을 나누어(채팅에서 방을 가르는 것과 같은 이치 이다) 해당하는 zone의 데이터만을 전송 받으면 된다. 만약 채팅 서버와 같은 개념으로 MUG를 만든다면 사용자는 한가지 동작을 취한 후 그 동작이 서버에 전달되어 돌아와야만 실제로 동작한 것으로 취급될 것이다. 이런 방식은 빠른 움직임을 제한하게 되나 실제 이런 방식으로도 MUG를 만들고 있다. 지금은 예전보다 회선사정이 좋아졌으므로 복잡한 작업을 요구하지 않는 형태의 MUG에 알맞다. MUD와 다른 점은 동작의 조작이 섬세하고 단위가 작아져 데이터의 전송량이 증가했다는 사실이다. 테이블 토크에서는 모든 행동을 “나는 사슬검을 사용해서 고블린을 공격하겠다” 라는 식으로 마스터에게 말로 요청하고 마스터가 그 상황에 대한 결과판정을 내주기 때문에 요즘의 게임분류로 보면 Action-Based가 아닌 Turn-Based에 가깝다고 할 수 있다. 이 경우는 각 사용자가 생각할 시간도 충분하고, 무엇보다 잠시의 조작 미숙으로 인해 게임에서 out되지 않는다. 그러나 MUG에서는 사슬검을 꺼내어 오른손(혹은 왼손)에 들고 고블린이 접근할 때까지 기다렸다가 정확한 방향을 향해 가격하지 않으면 안 된다. 게임 구조상 필연적으로 사용자의 조작이 MUD보다 섬세하고 많아지며 Time-specific한 이벤트도 늘어난다. 고블린이 접근하지 않았는데 칼을 휘두르는 것은 헛수고이며 가격할 수 있는 범위 안에 들어왔다고 하더라도 적이 공격하기 전에 먼저 치지 않으면 피해를 입는 것은 이쪽이다. 프로그래머로서는 할 일이 엄청나게 늘어난 셈이다. 어쨌든 모든 데이터는 서버에 존재하고 있었기에 이후 설명할 충돌(Collision)의 문제는 아직 일어나지 않았다. 각 사용자별로 스레드(thread)를 어떻게 관리할 것인가 등의 문제가 새롭게 대두되었지만 이는 MUD에서도 존재했던 문제였고, 서버의 로드밸런싱과 스레드간의 빠른 동기화를 제외하고는 MUD와 큰 차이는 없었다.

  • 로드 밸런싱(load balancing)

MUG에서는 차후의 확장 등을 대비해 서버를 클러스터링 구조로 설계하는 경우가 많다. 이렇게 하면 초기에 접속자가 적을 때는 저렴하게 서버를 한대만 놓고 운영하다가 나중에 접속자가 증가함에 따라 같은 서버를 내부 네트워크로 묶어 동일한 역할을 하게 하면 서버의 Capacity가 증가되므로 편리하다. 이때 데이터는 한곳의 DB 서버에서 모두 갖는 것이 동기화 작업에 유리하며, 각 클라이언트 접속 서버는 모두 같은 일을 하게 된다. 이런 경우 특정 서버에 부하가 집중되지 않도록 각 서버의 접속 인원 등을 파악해 각 서버에 골고루 부하를 분산시키는 기술을 로드 밸런싱(Load Balancing)이라 한다. 국내 통신망 업체들도 모두 하나 이상의 동일한 작업을 하는 서버를 갖고 있지만 접속할 때마다 부하의 정도를 따져 각 클라이언트를 다른 서버에 접속하도록 하고 있다. 이것 역시 로드밸런싱이다.

  • 배틀넷(Battle.net)의 등장

이런 가운데 1995년 “디아블로”라는 뛰어난 게임이 등장했다. 별도의 서버가 존재하지는 않았지만 게임을 실행한 피어가 게임 서버가 될 수 있는 방식은 매우 획기적이었다. 또한 블리자드의 배틀넷이라는 인터넷을 경유한 게임 서비스가 각광을 받아 대단한 히트를 기록했다. 현재는 소수의 인원이 서버와 클라이언트를 겸한 애플리케이션을 실행시켜 즐기는 게임의 형태를 대개 “네트워크 플레이” 혹은 “넷플”이라고 부른다. 이러한 게임과 MUG를 간단히 비교해 보자. 우선 전송되는 데이터의 용량 차이이다. MUG의 경우는 서버를 따로 두고 있으므로 좋은 환경과 빠른 전용선을 사용할 수 있어 전송되는 데이터가 다소 많아도 무리는 없다. 또한 서버는 항시 운용되고 있고 많은 사용자가 접속하므로 같은 데이터 양이라도 MUG의 서버에 유입되는 용량은 엄청나다. 반면 넷플에서는 각 피어가 하나의 서버 역할을 하므로 쓸데없이 데이터가 많이 전송되면 서버 역할을 하는 피어에 엄청난 병목을 일으켜 게임 자체가 불가능하게 된다. 아마 블리자드도 이에 대한 고민을 많이 했을 것이다. 즉 낮은 대역폭의 회선에 걸맞게 데이터를 적게 전송하는 방법이 없이는 디아블로와 같은 게임은 불가능하다. 데이터를 압축해 전송하는 방법이 있었지만 이 역시 한계가 있었고 결국 채택된 방식이 “치명적이지 않은 수준의 오차를 허용하는 것”과 “오브젝트에 대한 데이터를 각 피어가 분산 저장하는 것” 이었다. 특히 후자의 경우는 현재 군사용으로 많이 사용되는 DIS(Distributed Simulation)와 관련이 깊은데, DARPA에서 이를 연구하면서 발전된 것이 Dead Reckoning이다. CPU의 파워가 부족하다든지, 장비의 설치문제라든지, 데이터를 여러 대의 시스템이 분산해 저장해야 하는 경우는 의외로 많다. 이때 가장 문제가 되는 것은 각 시스템이 갖는 객체(Entity)들을 동기화하는 것이다. 냉전시대 군비경쟁이 심화되면서 급속히 발전한 DIS는 이렇게 피어 서버를 사용하기 때문에 데이터를 분산 저장해야 하는 시스템에 매우 이상적으로 적용될 수 있었다.

  • Latency Masking

디아블로에서 서버 역할을 하는 피어가 성능이 좋지 않을 경우 데이터를 몰아넣는 것은 불합리하다고 생각할 수 있다. 만약 MUG와 같이 한 서버에 데이터가 집중되면 매번 모든 클라이언트로부터 데이터를 전송 받아야 하고 (정확한 데이터는 서버만이 갖고 있으므로) 매번 요청이 있을 때마다 전송해 주어야 한다. 이렇게 되면 서버에 엄청난 부하가 걸릴 뿐 아니라 네트워크상의 병목 현상 때문에 게임 자체가 불가능해진다. 이런 방식은 별도의 서버를 운영하며 넓은 대역폭의 전용선을 제공할 수 있는 MUG에서나 가능한 방법이다. 이를 해결하기 위해서는 각각에 데이터를 분산시켜 저장할 수밖에 없다. 물론 이중에도 게임을 만든 클라이언트 즉, 다른 클라이언트와 구분되는 게임의 호스트는 존재한다. 호스트는 서버와 다르게 넷플에서 중요한 역할을 할 것이다. 그러나 호스트는 서버처럼 모든 데이터를 갖지 않으며 자신이 소유한 데이터와 소유자가 불분명한 데이터 즉, 모든 피어가 공통적으로 사용하는 데이터만을 저장하고 관리한다(예. 스타크에서의 중립생물). 각 피어는 자신이 소유한 데이터를 가지며 이를 저장하고 관리한다. 다시 말하면 각 피어가 소유한 데이터가 가장 정확한 데이터가 되는 것이다. 이 모델에서는 자신의 데이터가 변경되면 피어는 이 변경사실을 모든 피어에게 멀티캐스트한다. 호스트 역시 똑같은 하나의 피어로 참가하므로 다른 피어에게 데이터를 전송할 의무는 없다. CPU의 부하와 네트워크의 패킷이 각 클라이언트들에 거의 공평하게 나누어지는 것이다. 이때 만약 10Mbps의 LAN상에서 플레이한다면 실제로 한대에서 플레이하는 것처럼 보일 정도로 데이터 교환이 빠르고, 서로의 입력을 교환하면 이 모델에서도 간단히 넷플이 가능하다. 그러나 보통 전화접속이나 인터넷을 통한 게임을 시도하게 되므로 크든 작든 Latency가 생기며, 이는 게임의 중대한 방해요소가 된다. 따라서 치명적인 Latency를 처리하는 기술이 필요해졌고 이를 Latency Masking이라 부르게 되었다. Dead Reckoning은 바로 이러한 Latency Masking의 대표적인 기술이다.

  • Rendevouz Positioning

각각의 피어는 자신이 갖지 않은 데이터에 대한 사본을 항상 유지시킬 의무가 있다. 이를 ghost라는 표현으로 쓰자면 ghost는 Dead Reckoning을 적용해 부드러운 움직임을 보여주나 실제 PDU의 데이터와 차이를 가질 수 있다. 그러나 동기화시 PDU와 ghost의 데이터에 차이가 있다고 ghost의 데이터를 전송된 PDU의 것으로 바로 바꾸면 안 된다. 급격하게 움직이고 동기화가 늦는 경우일수록 ghost가 한 지점에서 다른 지점으로 점프하는 것처럼 보이는 현상이 많이 일어난다. 이를 저크(jerk), 혹은 지터(jitter)라고 한다. 저크를 막기 위해서 사용하는 방법은 여러 가지 있으나 Rendevouz Positioning이 가장 이해하기 쉬운 방법이다. 이는 ghost와 PDU를 당장 동기화하지 않고 다음 동기화 시간까지 값이 같아지도록 맞추는 것이다. 예를 들어 현재 ghost의 좌표와 속도가 (100, 100) (10/sec, 20/sec)이고 전송된 PDU의 값은 (120, 130) (30/sec, 10/sec), 동기화는 1초씩일 경우 당장 ghost를 PDU에 맞추면 여러분의 객체는 순식간에 가로 20, 세로 30포인트를 점프하는 것처럼 보일 것이다. Rendevouz Positioning에서는 이렇게 하지않고 먼저 PDU가 다음 동기화시에 도달할 좌표를 구한다. 좌표는 (150, 140)일 것이다. 그러면 현재 좌표인 (100, 100)에서 다음 동기화시에 이 좌표에 도달하도록 속도값을 변경해준다. 변경한 속도값은 (50/sec, 40/sec)이 된다. 결론적으로 현재 전달된 속도는 (30/sec, 10/sec)이므로 가로, 세로 속도가 상당히 늘었지만 (100, 100)에서 (150, 140)까지 점프하지 않고 부드럽게 움직이는 모습을 보여줄 수 있다. 다음 동기화시에도 역시 같은 작업이 이루어진다. 이는 간단하게 저크를 없애고 실제 객체와 ghost간의 차이를 줄일 수 있는 좋은 방법이지만 급격한 움직임은 표현되지 않고 항상 느리게 움직이는 것처럼 보인다. 하지만 duel과 같이 관성이 작용해 급가속이나 감속이 되지 않는 객체의 움직임에는 매우 좋은 효과를 줄 수 있다. 이 방법은 급격한 변화를 표현하지 못하고 속도의 변화가 크다는 점에서 개선의 여지가 있으며 이에 대한 해결방안은 뒤에서 소개하겠다.

  • Collision

자신의 데이터를 다른 피어에서 나타내려면 Rendevouz Positioning으로 간단히 해결할 수 있다. 그러나 이는 전혀 문제가 되지 않는다. 네트워크 게임에서 최대 문제는 바로 Collision이다. 만약 서버에 모든 데이터가 몰려 있다면 객체끼리의 Interaction 역시 서버에서 이루어지므로 이 결과에 대해서는 이의를 제기할 수 없다(MUG의 경우). 언제나 서버에 있는 데이터가 가장 정확하기 때문이다. 그런데 만약 자신이 소유한 어떤 객체와 소유하지 않은 객체간의 상호작용이 이루어졌다고 가정해 보자(배틀넷의 경우). 자신이 소유한 객체의 상태는 자신에게 있는 데이터가 가장 정확한 것이므로 이를 가지고 작업할 수 있다. 그런데 자신이 소유하지 않은(ghost만을 가지고 있는) 객체는 현재 상태를 정확하게 판단할 수 없다. 물론 정확히 알려면 이 객체의 소유주에게 질의를 보내 상태를 전달받으면 되지만, 문제는 데이터가 전달되는 동안 늦어져 이미 정확한 데이터가 아니다. 보여주는 정도라면 latency를 측정하고 부정확하나마 이 값을 더하여 예측치를 계산할 수 있지만 질롯의 움직임이나 시즈의 무빙샷 등 정확한 조작에 의해 성패가 좌우되는 경우는 latency에 의해 결과가 달라진다. 결국 이 정도의 차이는 무시할 수 있는 판정 시스템을 만들어야 하는데, 이 역시 경우에 따라 크게 달라지므로 딜레마가 아닐 수 없다. 레인보우 6나 퀘이크 등 순간에 승패가 결정되는 게임을 많이 해본 사람은 서버에서 자신의 컴퓨터까지의 latency도 게임 결과에 중대한 영향을 미치는 요소라는 사실을 알 것이다. 이런 종류의 넷플에서 대개 서버쪽에서 플레이하는 사람 혹은 ping이 낮은 사람이 유리해지는 것은 어쩔 수 없는 부분이다. 하지만 최대한 공평한 환경을 만들려고 노력은 해야되지 않을까? 이런 불리한 점을 어떻게 개선할 수 있을까 ? 네트워크 게임에서는 기본적으로는 플레이하는 상대끼리 계속 자신이 갖고 있는 PDU에 대한 정보를 전달하고 다른 클라이언트의 정보를 전달받는다. 문제는 전달받은 정보가 어떤 한 시점에 정확하다고 확신할 수 있는가이다. 어떤 이벤트가 발생해 PDU의 상태가 바뀌면 해당 PDU를 소유한 클라이언트는 최대한 빨리 정보를 다른 클라이언트들에게 보낸다.

  • 불확정성 원리 - 정확한 값은 알 수 없다

첫 번째, 지구에서만 통신하는 경우는 로컬 랜으로 연결해서 게임을 하는 경우에 비견할 수 있다. 이때 지연은 특별한 문제가 없는 한 10ms 이내이며 네트워크 게임도 초능력자가 아닌 보통 인간이 플레이하는 이상, 0.01초의 차이는 무의미하다고 단정해도 무리가 없다. 이때의 지연은 완전 무시된다. 두 번째, 태양과 지구가 교신하는 경우는 공중망(PSTN)을 거쳐 서로 접속한 상황에 비유된다. 이 경우 지연은 100ms 이상이며 동체 시력이 매우 좋은 사람은 미세한 차이점을 발견할 수 있을 정도로 증가한다. 만약 선로의 상태가 나쁘거나 별도의 서버를 경유해 접속한다면 지연은 400~500ms까지 증가한다. 이때는 필연적으로 실제 PDU의 데이터와 ghost 사이에 오차가 생기며 서로의 데이터에 차이가 없도록 여러 가지 예측시스템을 사용하게 된다. 그러나 오차는 피할 수 없다. 인터넷의 표준 프로토콜인 TCP/IP의 기본 특성상 라우팅을 많이 하고 여러 곳을 거치면 지연이 늘어나는 것은 당연하다. 결국 이 경우에 가장 유효한 것은 다소의 오차는 무시하고 각 클라이언트가 항상 맞는 데이터를 가지고 있다고 생각하는 것이다. 앞에서도 언급했듯이 태양에 있는 사람이 현재 지구의 상태를 정확하게 알 수 있는 방법은 없다. 최소한 8분은 기다려야 그 사람의 얘기를 들을 수 있다. 하지만 그래도 상대방이 내 얘기를 듣고 있다고 생각하고 계속 말을 하는 것이 가장 경제적인 방법인 것처럼, 네트워크 플레이어에서도 자신이 가장 올바른 데이터를 가지고 있다고 판단하는 것이 가장 좋은 방법이다.

  • 조정

latency masking하는 다른 방법을 생각해 보자. 스타크래프트에서는 자신의 유닛이 있는 곳만 fog가 걷히고 그 구역의 다른 유닛이나 지형을 볼 수 있도록 되어 있다. 만약 유닛들이 이렇게 각 클라이언트에서 서로 움직이고 있으나 거리가 멀어 상호작용의 가능성이 매우 낮다고 가정한다면, 이 유닛들의 위치를 정확하게 계산하기 위해서(사실은 이렇게 하는 것이 가장 좋지만) 동기화하는 부담을 질 필요는 없다. 왜냐하면 현재 유닛들은 너무 멀리 떨어져 있고 서로 간섭하지 않을 것이라고 판단되기 때문이다. 정확한 위치가 필요한 것은 서로간의 상호작용이 생겨서 판정이 요구될 때이지 이렇게 멀리 있을 때가 아니다. 이 경우는 어느 정도 제법 큰 오차까지도 허용될 수 있다. 동기화는 아주 러프하게 해도 좋으며 다만 저크가 발생하지 않도록 신경은 써야 한다. 이런 것을 Dead Reckoning과 같은 정확한 조정 (hard reconciliation)에 대해 대략적인 조정(soft reconciliation)이라 할 수 있다. 스타크래프트에서는 fog로 가려진 적 유닛은 그리지 않음으로써 네트워크에 대한 부하를 많이 줄일 수 있었을 것이다. 만약 서로의 유닛이 가까워져서 상호작용이 일어난다면 이때는 정확한 위치가 필요하다. 이때의 상호작용은 반드시 직접적인 공격이나 원조 등이 아니더라도 가까운 적의 위치는 눈으로 보고 공격하게 되므로 거리가 어느 정도 수준이 되면 정확하게 동기화하기 시작해야 한다. 객체를 부드럽게 움직이게 하기 위해서는 Dead Reckoning과 Rendevouz Positioning을 사용할 수 있지만 오차가 한계보다 커진 경우는 모든 클라이언트에게 메시지를 보내어 일시적으로 게임을 중단하고 정확한 위치로 이동시킨 후에 다시 모든 클라이언트에게 메시지를 보내 게임을 재 시작할 수 있다. 스타크래프트에서도 백병전시 유닛이 한꺼번에 많이 움직이면 게임이 멈칫멈칫하는 상황을 볼 수 있는데, 이 역시 동기화의 문제가 작용하고 있기 때문일 것이다. 어쨌든 많은 객체들을 한꺼번에 동기화 하는것은 어렵기 때문에 대략적인 중재는 여러 게임에서 빠르게 latency masking하는 방법으로 사용될 수 있다.

  • 지연 허용 범위와 Dead Reckoning

지연 허용 범위는 ? 유명한 스타크래프트를 보더라도 마린이나 시즈의 탄은 보이지 않으며(탄착점 만 알수 있다) 포토캐논의 폭발은 포탄보다 훨씬 크다. 커세어의 공격은 스플래쉬 데미지로 맞은 표적뿐만 아니라 주위 표적까지 피해를 준다. 이런 여러가지 방법들이 다소의 오차는 표시나지 않도록 커버해줄 수 있지 않겠는가! 가장 중요한 것은 항상 지연에 의한 오차가 허용할 수 있는 범위 내에 있도록 하는 것이다. 만약 직녀성과 지구가 교신하는 마지막 경우처럼 지연이 너무 길어지면 정상적인 플레이가 불가능해 게임이 성립되지 않는다. 배틀넷의 레드핑 한 개 짜리 아이디들은 ping값이 너무 높아 게임이 안 되는 경우를 많이 봤을 것이다. 이렇게 어느 정도의 지연이 허용될 수 있는가? 하는 점은 게임에 따라 다르다. 만약 네트워크 게임 상에서 상대방의 상태를 아주 정확하게 알려면 유일한 방법은 한 프레임마다 OK 사인을 교환해 돌아가며 패킷을 전달하는 방식뿐이다(Hand Shaking). 그러나 이 방법으로는 스타크래프트의 slowest 게임보다 10배 느린 게임조차도 불가능하다. 결론적으로 네트워크 게임 개발자는 상대방의 정확한 상태를 알겠다는 욕심을 버려야 한다. 이는 빛의 속도를 초월하겠다는 말과도 같은 얘기이며, 현재 기술로는 불가능하다. 마치 하이젠베르그의 불확정성 원리처럼 아무리 지연이 적더라도 현재의 상태를 전송하는 동안 시간은 흐르기 때문에 패킷이 도착했을 때 반대편의 상태가 현재 받은 패킷대로임을 확신할 수 없다. x0의 값은 절대로 t0시에 도착하지 않는다. 우리가 할 수 있는 일은 언제나 오차가 허용할 수 있는 범위 안에 있도록 하는 것이 최선이다.

  • Dead Reckoning

Dead Reckoning의 원리는 간단하다. 항해가 시작된 때부터 해도를 그리기 위해 사용되었던 기법이다. 이름도 오해하기 쉽지만 원래의 의미는 Deduced-Reckoning으로 “추론하여 계산한다” 라는 뜻이다. 즉, 위치예측이라는 의미를 가지고 있다. 실제로 배를 다루는 여러 기관(미 해군) 에서는 항해의 필수과목으로 이 Dead Reckoning Navigation을 다루고 있으며, US NAVY 사이트에 가보면 Dead Reckoning의 6가지 원칙에 대해 설명하고 있다. 원래 의미의 Dead Reckoning은 현재 위치에서 방향과 속도를 아는 것으로 미래의 위치를 예측한다는 매우 단순한 기능을 가지고 있기 때문이다. 거기에는 조류나 바람 등의 요소 외에 포함되어 있지 않지만 이들을 무시할 수 있다면 일정 시간마다 위치를 계산하고 위치가 목표한 코스에서 얼마나 벗어나는가를 아는 것이 가능하고 결과적으로 목적지까지 도달할 수 있기 때문이다. 이런 점에서는 네트워크 게임의 객체가 움직이는 것과 비슷하다. 대항해시대에 새로운 항로의 개척은 매우 중요한 일이었고, 항해 중에는 반드시 해도를 그려야 했다. 그러나 안개가 짙거나 폭풍우가 몰아쳐 주위의 지형지물을 사용할 수 없게 되면 현재의 위치와 방향, 그리고 속도를 명기함으로써 항로를 표시했던 것이다. 네트워크 게임에서라면 현재 위치와 방향, 그리고 속도를 가지고 다음 동기화때까지 이동경로를 예측할 수 있다. 즉 현재의 정보를 가지고 다음 동기화 때까지 움직임을 Interpolation(보간)하는 기술이 바로 Dead Reckoning이다. 이 이름에 상대의 움직임에 대한 정보를 매 프레임마다 전송받지 않고 “예측”한다는 의미가 있는 것만은 반드시 알아두어야 한다. 그리고 네트워크 게임에서 사용하는 Dead Reckoning은 원래 의미의 Dead Reckoning이 아니라 DARPA에서 개발한 DIS에서의 Dead Reckoning이라는 점도 기억해두자.

  • DIS에서의 확장

Dead Reckoning의 원래 의미는 이렇게 자신의 현재 위치를 알아내는데 사용되었지만, DIS에서는 한발 더 나아가 ghost의 위치를 같이 계산하여 필요한 경우가 아니라면 패킷을 전송하지 않아 네트워크상의 병목을 줄일 수 있었다. 이때는 한번씩 동기화를 한다는 것을 지정할 필요도 없이 Dead Reckon이 발생할 때마다 하면 된다. 그러나 여기에는 함정이 있다. 즉 개개의 클라이언트가 객체의 위치를 계속해 계산하고 이를 판정하지 않으면 안되는 비용이 있으며, 또한 가장 단순한 Dead Reckoning 모델에서는 latency에 대한 문제가 빠져있다. Dead Reckoning 자체가 latency를 masking하는 기술이지만 설명했듯이 동기화 패킷이 가는 동안 시간은 흐르기 때문에 전달된 패킷은 latency에 의해 오차를 항상 갖게 된다. 또한 역동적으로 모든 객체가 움직이는 상황이라면 Dead Reckoning은 별 효과를 보지 못한다. 그러나 DIS 분야에서 수년에 걸쳐 시뮬레이션(Simulation) 한 결과에서 Dead Reckoning은 큰 효율을 보여주었고 긍정적인 가치가 있는 솔루션임을 증명했다. 물론 앞서 언급한 여러 가지 문제에 대한 해결방안도 그동안 꾸준하게 제기되었다.

  • Dead Reckoning의 적용

그러면 Dead Reckoning으로 실제 프로그래밍할 때는 어떻게 할 수 있는가? 두 가지 방안이 있다. 첫 번째는 일정 기간 동안 정기적으로 동기화를 하고 동기화 되는 동안의 위치를 각 클라이언트에서 예측하는 방식이다. 이 방식에서는 일정 시간마다 현재 좌표와 속도를 전송해 동기화 한다. 받은 쪽에서는 이 값을 가지고 Dead Reckoning을 적용해 다음 동기화 때까지의 ghost의 위치를 예측한다. 이동궤적이 직선의 집합이 되기 때문에 동기화 시간이 길어지면 움직임이 부자연스러워지는 반면 동기화할 때마다 오차를 줄이려고 하기 때문에 오차가 누적되지 않는다는 장점이 있다. 이와 대조적으로 DIS에서 사용하는 Dead Reckoning은 자신이 소유한 객체의 위치를 매번 계산하고 오차가 DR Threshold보다 커지면 그때 전송해 동기화하는 방식이다. 네트워크의 객체들이 격렬하게 방향을 바꾸지 않으면 부하가 적어 좋으나, 반대인 경우는 효율이 크게 떨어진다. 이때는 급격한 가/감속을 방지할 수 있는 장치가 필요할 것이다. Dead Reckoning은 많이 사용되는 기법이고 또한 효율적이지만 만능은 아니다. 더구나 어떤 방향으로 이동하는 것처럼 지속적이고 예측 가능한 이벤트에 대해서만 사용 가능할 뿐이고 폭발이나 아이템의 등장, 같은 단발적이고 예측 불가능한 이벤트를 다룰 수는 없다. 단지 이동시의 부자연스러움을 다소 감소시켜주는 것뿐이다. 예측할 수 있는 것은 예측하고 그렇지 않은 것은 최대한 빨리 전송한다는 원칙에 입각한 기법인 것이다.

  • 객체의 위치 예측

Smoothing의 대상은 객체의 좌표가 되므로 대개 (x, y) 그리고 3차원 공간에서라면 z 좌표까지 모두 3개를 사용할 수 있다. 또한 각 좌표값에 대한 현재 속도와 가속도 역시 다음 위치를 결정하는 중요한 요인이 된다. 그러나 각 좌표를 다루는 방법은 모두 동일한만큼 여기서는 x 좌표 하나만 들어 설명하겠다. Dead Reckon이 발생해 전달된 객체의 좌표를 x0이라 하고 이 시점의 속도를 v0라 하자. 가속도는 a0로 정의한다. 저크를 무시할 수 있다면 전달된 시점에서 ghost의 위치는 x0에 동기화되며 다시 동기화되기 이전까지 객체는 등가속도 운동을 한다. 이때 객체의 위치는 일반물리학의 공식을 사용해 다음과 같이 표현할 수 있다. Xt=x0+v0t+a0t2/2

그러나 네트워크 게임에서는 대개 가속이 유지되는 경우는 드물어(a0=0), 위 공식은 다음과 같이 치환된다. 즉 일정 시간마다 일정하게 값이 증가하도록 한다. 이것이 가장 단순하게 Dead Reckoning을 적용하는 방법이다.

Xt=x0+v0t

  • Jerk가 발생했을 때

Dead Reckoning의 변형, 즉 일정 시간마다 동기화하는 방식에서는 Rendevouz Positioning을 사용해서 jerk를 처리하기 때문에 다소 오차가 커지더라도 부자연스럽게 움직이지는 않는다. 대신 급가속이나 급감속을 표현하기 어렵기 때문에 관성과 같은 요소를 도입해 발생하지 않도록 하고 있다. 반면 Dead Reckoning을 원래 의미대로 적용하려면 항상 객체를 갖는 클라이언트는 이 객체에 대한 ghost를 같이 유지하며 오차가 정해진 크기를 넘는 경우에 한해 동기화 데이터를 전송한다. 이때는 객체의 상태가 빠르게 변화하면 동기화 데이터가 자주 전달되므로 급가속이나 급감속도 무리없이 표현할 수 있다. 문제는 이 상태에서 jerk가 발생한 것을 어떻게 처리할 수 있느냐이다. 먼저 이렇게 사용하는 경우는 초기 지연(Initial Latency)의 측정이 매우 중요하다. 모든 클라이언트는 데이터를 전달받을 각 클라이언트에 대한 지연테이블을 유지할 필요가 있다. 5대의 클라이언트가 게임을 플레이한다면 각 클라이언트는 4개의 지연값을 측정해야 할 것이다. 그리고 호스트로부터 게임 시작 통보를 받는다. 호스트는 정해진 시간(예를 들면 5초) 후에 게임을 시작하라는 메시지를 모두에게 보낸다. 그러면 각 클라이언트는 5초에서 호스트까지의 지연을 뺀 시간을 기다린 후 게임을 시작하게 된다. 물론 이 5초 동안은 각 클라이언트가 갖는 객체들에 대한 정보를 게임에 참여하는 모든 다른 클라이언트에게 전달해 이후 ghost를 유지할 수 있도록 해야 할 것이다. 시작한 시간은 모든 게임 클라이언트의 공통시간이 되며 게임이 시작되면 0으로 초기화할 수 있다. 이제 각 클라이언트들은 플레이어의 입력에 의해 자신의 객체를 움직이며, 데이터를 전달할 때는 공통시간(timestamp)을 같이 보낸다. 만약 전달받은 데이터의 공통시간이 자신이 생각하는 시간, 즉 현재시간에서 지연을 뺀 값이라면 초기지연은 정확하다. 객체의 위치 기준으로 본다면 이때는 대략 (지연*속도)에서 어느 정도 가감한 만큼의 오차가 생기는데 이는 무시할 수 있는 값은 아니다. 급속한 변화를 그때그때 반영할 수 있는 반면, 동기화 때마다 어느 정도 jerk를 피할 수 없다는 단점이 있다.

  • Linear Smoothing

이에 대한 해결 방안은 원래의 경로와 새로운 경로를 외삽(extrapolate)하는 방법으로 이동하는 것이다. 다시 말하면 급격한 보정이 아닌 점진적인 보정(gradual correction)을 적용한다. 한 지점에서 다른 지점까지의 경로는 간단한 공식에 의해 표현될 수 있으며 실제 DIS에서는 곡선이 많이 사용되지만 네트워크 게임은 대부분 직선경로를 채택한다. 먼저 이동하던 경로, 즉 동기화 패킷이 전달되기 이전의 경로와 새로운 경로 모두를 그린 후에 현재 위치에서 가중치를 변경시켜 가면서 이동한다. 처음에는 이전 경로에 많은 가중치를 두지만 점점 스텝이 증가하면서 새로운 경로로 무게를 둔다. 이런 식으로 계속 이동하면 나중에 스텝이 여러 번 반복된 후에는 이전 경로의 가중치는 0이 되고 객체는 완전히 새로운 경로로 이동한다. 여기서 스텝은 시간 의존적인 요소로 작용하며, 얼마나 빠르게 가중치를 변화시켜야 하는지는 게임 성격에 따라 다르다. 만약 지나치게 스텝을 빠르게 하면 역시 저크가 나타날 것이며 너무 느리게 움직이면 격렬한 객체의 움직임을 따라가기 쉽지 않을 것이다. 이런 요소들은 어느 정도로 적용하는 것이 좋다라고 딱히 결론을 내릴 수는 없는 문제이며 수많은 테스트를 거쳐 각 시스템에 가장 잘 맞는 값들을 구해야 할 것이다. Dead Reckoning에서는 오차가 커질 경우 동기화하는 경우 외에도 일정 시간마다 “Keep-Alive” 를 체크하는 동기화 패킷을 보내는 것이 일반적이다. 대개 Rendevouz Positioning처럼 이 다음 동기화 시간에 같은 위치에 도달하도록 스텝을 분할하는 방식을 많이 사용한다. 이때는 현재의 위치와 다음 동기화시간의 위치를 연결하는 직선을 구하고 이 직선의 방정식을 이용해 객체를 이동시킬 수 있다. 이런 방식을 사용하고 싶지 않다면, 실제 객체의 이동궤적 중 언제 어느 지점에서 만날 것인지를 결정하고 외삽 중의 이동공식을 새로 주면 이 지점에 도달할 때까지는 이 공식을 사용하고 그후는 실제 객체의 공식을 사용하면 된다. 이때 실체와 ghost의 방향을 연장해 만나는 점을 xf라 하고, 여기까지 몇 번의 스텝을 거쳐 도달해야 하는가를(이것은 실제로는 시간으로 대치된다) p라는 값으로 나타내자. 그리고 현재의 스텝이 i번째라고 한다면 현재의 Smoothing된 ghost의 위치는 다음 공식으로 표현할 수 있다. Xi=x0+(xf-x0)/(i/p)

  • Enhanced Smoothing

Smoothing 방법을 적용하면 훨씬 객체가 부드럽게 움직인다. 이 방법을 사용한 객체의 궤적은 직선의 집합으로 나타나며 각 연결부위는 다소 날카롭게 돌출된다. 만약 사람의 걷는 모습을 시뮬레이션 하려면 이런 방식으로도 문제는 없다. 사람의 관절은 운동성이 좋아서 자동차나 비행기 등 다른 운동 객체가 구현하지 못하는 움직임도 거뜬하게 보여줄 수 있기 때문이다. 하지만 상대적으로 순간적인 움직임의 범위가 한정되어 있는 탱크나 미사일 등을 시뮬레이션 한다면 이는 곤란해진다. 똑바로 가다가 갑자기 오른쪽으로 90도 방향을 틀어서 날아가는 미사일을 상상할 수 있는가? 물론 원본을 가지고 있는 쪽에서도 이렇게 과격한 움직임을 할 수 없는 것은 당연한 일이다. 그러나 사본측에서는 원본과 일정오차가 생기지 않는 한 현 상태를 유지하려고 하기 때문에 상대적으로 움직임의 폭이 커지는 것이다. 이를 개선하기 위해서는 다소 복잡한 공식을써서 객체 움직임의 변화가 적도록 배려해야 한다. 결과적으로 Smoothing은 네 가지 요소에 대해 모두 적용되어야 한다.

- 위치(Position) - 속력(Velocity) - 가속력(Accelaration) - 방향(Orientation) 이 모든 요소에 대해서 Smoothing이 적용될 때 비로소 객체는 곡선을 그리면서 부드럽게 움직일 수 있다. 필요하다면 B-Spline의 공식을 적용하는 것도 고려해 볼만하다. Bezier는 곡선의 궤적이 컨트롤 포인트를 통과하지 않기 때문에 문제가 있지만, B-Spline은 곡선이 양쪽 끝단 한쌍을 제외한 모든 컨트롤 포인트를 통과하기 때문에 이런 용도로 충분히 사용할 수 있다. 시작한 점을 하나의 컨트롤 포인트로 보고, DR이 발생한 지점을 역시 하나의 컨트롤 포인트로, 그리고 최종 목적위치를 마지막 컨트롤 포인트로 생각하면 세 점을 갖는 B-Spline을 그릴 수 있다. 실제 적용시는 끝점과 중간점의 다시 그 중간, 중간점과 마지막 점의 중간을 컨트롤 포인트로 잡아 그리면, 선은 우리가 선택한 세 점을 부드럽게 지나는 궤적을 만들 것이다. 이 궤적의 공식을 객체의 움직임에 주면 객체는 DR이 발생했더라도 전혀 부자연스럽지 않은 움직임을 보여줄 수 있다. 다음 공식을 보라. 도달해야 할 위치를 xf로 보고 동기화패킷이 전달된 시점의 ghost의 위치는 x0으로 정의하자. 마찬가지로 간격을 p번으로 나누어 현재 어떤 위치에 있는가를 결정하는 값을 i로 한다. 이때 위와 같은 식을 사용하면 xi는 i에 대한 3차 방정식 곡선을 그리게 된다. 따라서 원래의 1차식보다 좀더 부드러운 곡선을 보여줄 수 있다. 이 공식은 하나의 예일 뿐이며 절대적인 신뢰도를 갖는 것은 아니다. 필요에의해 2차식이나 더 높은 차수의 방정식을 얼마든지 사용할 수 있다. 그러나 필요한 정도로 차수를 조절하는 것이 전체 성능 향상에 기여할 것이다.

  • 비표준적인 DIS 공식

표준 DIS에서는 동기화시 객체의 위치와 각 좌표계에 대한 속도와 가속도를 전달하도록 되어 있다. 보통 가속도까지 전달하지 않더라도 위치와 속도 정도는 전달한다. 상황에 따라 이런 값들이 전달되지 않거나 네트워크의 부하를 극도로 줄이려는 목적에서 위치만을 전달하는 경우가 있다. 이때는 가속도-속도에 의존한 DIS 표준공식을 사용할 수 없고 전달된 위치만으로 앞으로의 위치를 예측해야 한다. 이 경우 사용할 수 있는 비표준 DIS 공식을 살펴보자. 첫 번째 공식은 동기화 이전의 이동궤적중 한 구간만을 측정하여 그 기울기를 속도로 보고 이동시키는 t에 대한 1차식이다. 객체의 궤적은 직선이 될 것이다. 두 번째 공식은 이동구간 하나를 더 선택해 각 구간의 속도증감을 측정하여 속도와 가속도를 결정하고 이동궤적을 결정하는 방법으로, t에 대한 2차식이므로 곡선궤적을 보여준다. 이런 방법은 항공기나 미사일처럼 빠르며 동시에 속도 변환이 급격하지 않고 일정한 방향성을 갖는 객체의 위치를 시뮬레이션하거나 추적하는데 알맞다.

온라인 게임과 네트워크 게임의 종류

  • 일대일 게임(Head-To-Head)

- Round Based type : 한 사람이 자신의 행동을 취하고, 이어서 다른 사람이 움직이는 방식으로 턴(turn)제라고도 한다. 이 방식은 게임 진행이 실시간이지 않아도 되는 게임에서 이용된다. - Action Based type : 턴(turn)제와는 달리 리얼타임 방식으로 이루어 지는 것으로 양자 중 어떤 사람도 자신의 행동을 취할 수 있다.

  • 다수 사용자 게임(Multiplayer Game)

- Peer Server type : 이는 게임이 클라이언트로 접속하는 기능과 서버로 동작하 는 기능 두가지를 모두 갖도록 설계되는 방식으로 랜에서 적은 숫자의 사람들이 빠르게 게임을 즐기기에 알맞다. - Remote Server type : 이는 하나의 서버를 만들어서, 이 서버는 플레이에 참여하지 않고 플레이어들간의 메시지 전달과 조정을 담당하게 하는 것이 좋다. 이 형태는 시스템 성능이 아주 좋고 넓은 대역폭의 라인을 가지고 있어야 한다.


네트워크 게임제작 방법

  • Peer to Peer Network Game

이는 윈속(Winsock)을 사용하거나 또는 Direct Play를 이용해서 한 사람을 호스트 로 만들고, 다른 사람들은 여기에 연결해서 게임을 플레이한다. 호스트가 된 사람 에게 다소 부하가 집중되는 경향은 있지만 이때는 플레이어의 숫자가 많지 않으므로 별로 상관없다. 또한, 이때 어떤 프로토콜을 사용해서 접속하게 되는지를 잘 생각해야 한다.

  • Client to Server Game

이는 게임 프로그래밍이라고 특징 짓지 않고 전형적인 클라이언트-서버 프로그래밍이라고 생각해도 된다. - 클라이언트 사이드 프로그래밍 : 이는 보통의 윈도우 게임을 제작하는 것과 별 차이가 없다. 단, DX SDK를 써서 만들지만, Direct Play를 사용하지 않고 TCP/IP를 직접 쓰는 윈속 프로그래밍을 한다.

- 서버 사이드 프로그래밍 : 이 부분에선 소켓을 만드는 것과 많은 자료를 기록하고 읽어들이는 것과 실시간으로 변경하는 알고리즘 부분으로 나뉜다. 이 부분은 특성상 데이터를 정기적으로 파일에 쓰여지므로 오라클등의 프로그램을 사용하기도 하고 유닉스나 리눅스에서는 gcc등의 공개 컴파일러를 사용해서 서버측 프로그램을 처리한다.

위키설정/Wiki Configuration