성과주의에 관한... 아주 짧은 정리..

몰입형 성과 주의

기업의 비전을 공유하고, 책임과 권환의 확대, 고용안정등을 통해 임직원의 자발적 헌신을 중시(혁신, 창조적 기업에 적합)


통제형 성과 주의

기업의 양적 목표를 효과적으로 달성하기 위해 규정과 절차, 유여한 인력운영 등을 중시(비용절감 및 스피드 중시형 기업에 적합)

 

과거에는 선배가 신입사원에 대한 OJT (on the job training)을 성실히 진행 했으나, 최근에는 자신의 업무에만 쫓겨 후배를 가르칠 시간이 부족하고, 심지어 후배를 경쟁자로 인식하여 후배지도에 소흘하다.

by 언식 | 2008/05/15 09:54 | 3M(머니,매니지먼트, 마케팅) | 트랙백 | 덧글(0)

세계 No1 개발자, 미야모토 시게루는 누구?

많은 닌텐도 DS 유저들은 PSP와는 다른 의미로 구입해서 즐기고 있다. 그것은 바로 "쉽고 가볍게 할 수 있다."는 점이다. 가격적으로도 부담이 적고, 컨텐츠 또한 어렵지 않아, 코어 유저가 많이 찾는 PSP에 비해 닌텐도 DS은 게임에 그 전까지 관심이 없던 일반 사람들에게도 널리 퍼져있다.


물론 게임을 오래, 많이 한 사람들 중에는 닌텐도 DS의 가벼움을 참지 못하는 사람들도 있다. 최대 128Mb라는 제한 용량때문에 게임 대부분이 화려한 3D 그래픽 게임은 보기 힘들다. 또한 함께 사용하는 터치패드는 컴퓨터의 타블렛처럼 섬세하게 인식하지도 못한다. 하지만 그러한 단점을 최대한 보완하고, 자신들의 한계와 특성을 최대한 활용해 폭넓은 연령의 유저들이 즐길 수 있는 게임 타이틀을 대거 확보한 것 또한 닌텐도 DS만의 특징이라 할 수 있다.


이런 닌텐도 DS과 Wii를 기획하고, 마리오와 젤다라는 닌텐도 대표 게임을 만들어낸 사람이 바로 미야모토 시게루이다.



[ 이미지 출처 - Wii 일본 공식 홈페이지 http://wii.com/jp/ ]




미야모토 시게루 라고 하면 역시 대표작인 마리오와 젤다를 기억하지만 그에게 가장 특별한 게임이라고 하면 데뷔작인 동키콩이다. 당시 오일쇼크 등으로 인해 힘든 상황이었던 완구회사 닌텐도는 동키콩을 출시하면서 순식간에 해외에서 인정받는 게임 회사로 탈바꿈했다. 그 자신에게도 또한 그 전까지는 공예디자인 출신의 일개 기획부 직원에서 게임 기획자로 등용되며 새로운 경험을 많이 하게 되었다.


80년대 당시 그래픽의 한계 안에서 최대한 캐릭터의 개성을 드러내기 위해 고심끝에 만들어진 캐릭터 "마리오"는 이후 닌텐도의 대표 캐릭터가 되고, 엔지니어 위주로 개발하던 시기에 기획의 중요성을 보여주기도 했다. 또한 동키콩을 제작하며 프로그래밍을 제외한 대부분의 작업을 직접 소화해 냄으로써 그때의 경험은 고스란히 이후에 등장하는 게임을 개발하는데 초석이 되었다.


ㅁ 미야모토 시게루의 대표 게임 시리즈별 판매량

동키콩 : 휴대용 7개 타이틀, 가정용 10개 타이틀 발매, 총합 4,300만개
슈퍼마리오 : 휴대용 9개 타이틀, 가정용 10개 타이틀 발매, 총합 1억 7,400만개.
젤다의 전설 : 휴대용 5개 타이틀, 가정용 7개 타이틀 발매, 총합 4,200만개



[ 이미지 출처 - 네이버 이미지 검색 ]



그를 전 세계적으로 유명하게 만든 게임은 역시 1985년 처음 공개된 슈퍼마리오이다. 전세계에 걸쳐 시리즈 총합 1억 7천만개 이상 판매되어 기네스북에도 등록되어 있고, 게임 뿐만 아니라 만화, 애니메이션, 실사 드라마, 영화, 각종 캐릭터 상품 등 다양한 매체로 등장해 '미야모토 시게루를 몰라도 슈퍼마리오는 안다'라는 말이 생겼을 정도이다.


또한 마리오를 해 본 사람이라면 그 중독성과 예상외의 난이도에 푹 빠지게 된다. 인터넷에 "마리오 빠르게 완료" 라는 이름의 동영상도 있고, 게임을 하면서 계속 납치되는 공주를 구하기 싫다거나, 배불뚝이 아저씨인 마리오가 영웅이 되는 것에 대해 여러가지 재미있는 상상을 하게도 만들 정도로 같은 게임을 하면서도 사람마다 다르게 즐길 수 있다.


게다가 마리오가 등장한 85년까지만 해도 배경이 있는 횡스크롤 게임은 없었다. 그래픽이 게임 실행에 부하를 많이 주기 때문에 보통 배경은 단색, 그것도 검은색이 주류를 이루었고, 가정용 게임기보다 더 많이 판매되는 아케이드 게임기의 모니터 비율에 따라 횡스크롤 보다는 종스크롤 방식의 게임이 대부분이었다. 하지만 미야모토는 마리오를 파란 하늘 배경에 사람처럼 가로로 뛰고, 세로로 점프를 하는 게임으로 만들었다. 이런 시도는 개발 당시에 많은 반대에 부딪혔지만 그의 고집 결과 밀리언 셀러로 거듭났다.


이런 혁신적인 게임 마리오를 만든 미야모토 시게루는 그로 인해 게임을 오래, 많이 해왔다는 유저들에게는 "게임계의 신"으로 불리며, 그는 전세계의 유명 유저 뿐만 아니라 게임 개발자들에게도 존경의 대상이다. 마리오의 영향을 받은 게임은 셀 수 없이 많은데 그 중 대표적인 것이 세가의 소닉 시리즈이다. 마리오와 경쟁하기 위해 만든 타이틀이지만 개발자인 나카 유지는 미야모토 시게루의 추종자로 유명하다.





ㅁ 마리오 시리즈 판매량 베스트 5(일본 판매 기준)

1위 슈퍼 마리오 브라더스 - 패미콤. 680만장 판매
2위 슈퍼 마리오 랜드 - 게임보이. 590만장 판매
3위 슈퍼 마리오 브라더스 3 - 패미콤. 490만장 판매
4위 슈퍼 마리오 월드 - 슈퍼 패미콤. 355만장 판매
5위 슈퍼 마리오 64 - 닌텐도 64. 229만장 판매



그러나 그가 마리오 하나만 계속 만들어냈다면 지금까지 그의 명성을 유지할 수는 없었을 것이다. 물론 마리오도 액션 뿐만 아니라 여러가지 다양한 장르가 있지만, 전반적으로 단순한 패턴을 가진 캐주얼 게임이나 이전 시리즈를 답습한 내용이 주류를 이룬다.


하지만 그는 자신의 한계를 마리오에만 두지 않았다. 그의 또다른 대표작 "젤다의 전설"은 미야모토 시게루=마리오라는 이미지를 탈피하며 그 전까지의 게임에서는 만나기 힘들었던 스토리성 및 아름다운 그래픽, 그리고 게임성으로 매 발매시마다 각종 매체의 찬사를 받았다. 젤다의 전설:시간의 오카리나는 발매 직후 일본 내 유명 게임잡지인 패미통에서 만점을 받고, 게임으로서 일본 미디어 예술제에서 디지털 부분 대상을 받기도 하였다.


게다가 젤다는 시리즈마다 계속 새로운 재미를 주었다. 스토리는 계속 젤다를 구하러 가는 링크의 모험이라 하더라도, 매번 새로운 스토리와 재미요소를 집어넣었고, 발전된 시스템을 집어넣었다. 일례로 Wii로 발매된 황혼의 공주는 초기 발표부터 "3D 리얼 젤다"를 공개해 첫 발표 때 젤다 팬들의 환호성을 받기도 했고, 최근에 등장한 젤다의 전설:몽환의 모래시계는 이 게임을 위해 닌텐도 DS을 만든 것이 아닌가 착각하게 만들 정도로 기계의 기능을 게임에서 최대한 즐길 수 있게 되어있다.




[ 젤다의 전설:황혼의 공주 첫 발표 유튜브 영상. ]






이 두개의 히트작과 함께 미야모토 시게루는 이후에도 끊임없이 히트작을 만들어냈다. 2001년의 피크민과 우리에게도 잘 알려진 닌텐독스 역시 그의 작품이다. 그 외에 닌텐도의 대표이사역 전무 겸 정보개발 본부장으로 개발하는 게임 대부분에 그의 손길이 미치고 있다.


◆ 미야모토 시게루의 주요 작품
1981년 동키콩
1986년 젤다의 전설
1992년 별의 커비
1998년 젤다의 전설:시간의 오카리나
2001년 피크민
2005년 닌텐독스
1985년 슈퍼마리오 브라더스
1990년 슈퍼마리오 월드
1996년 슈퍼마리오 64
2001년 동물의 숲
2004년 매트로이드 프라임
2007년 젤다의 전설:황혼의 공주,Wii Fit



그의 감수는 단순 관리직으로 검토하는 수준이 아니라 그가 체크를 하면서 납득이 가지 않는 부분에 대해 그동안의 노력한 결과물들을 모두 뒤집어서버리는 일이 많아 그에 관련된 에피소드 또한 다양하다.


현재 공개된 내용으로는 92년 처음 등장한 별의 커비는 초기 발매 결정 및 선주문까지 받은 상태에서 '조금만 수정하면 더 재미있을 것'이라며 발매를 중지하고 재조정하기도 하였다, 젤다의 전설 시간의 오카리나는 계속 발매 연기를 하여 무려 2년 5개월 가량이 늦어져 이후 닌텐도에서는 발매 직전까지 가지 않으면 소프트웨어를 발표하지 않기도 했다.


작년 말 일본에 출시된 헬스 게임 Wii Fit역시 함께 판매되는 컨트롤러부 역시 다양한 시제품을 퇴짜놓았다는 이야기가 해외 웹진 인터뷰에 소개되기도 하였다. 하지만 그의 이런 감수를 받고 발매한 게임은 모두 히트하였고, 함께한 스태프들 또한 "미야모토씨가 지시한 변화들은 정말 게임을 개선시켰다" 라며 이것을 "미야모토 매직"이라고 부르기도 하였다.



[ 계속 바뀐 Wii Fit 컨트롤러 이미지. - Wii 일본 공식 홈페이지 http://wii.com/jp/ ]



그는 지난 GDC 2007 기조강연에서 "비록 큰 리스크가 있다 하더라도, 평범한 사람과 다른 것을 해본다"라는 의식으로 일을 해왔다고 했다. 실제로 그가 만들어낸 게임과 게임기들은 동시대에서 항상 새로운 것을 보여주기 위해 노력했다. 결과는 성공하기도 하고, 실패하기도 하였지만 그를 통해 더 나아지는 모습을 보여주었다.


또한 그는 자신의 게임 컨셉이 항상 자신의 과거 체험과 현재의 가족에서 나온다고 이야기 했다. 어릴 적 징검다리를 뛰어다니며 놀던 재미는 마리오로, 현재 가족과 개를 기르는 즐거움을 바탕으로 닌텐독스가 나왔다. GDC 2007 강연에서 유저층 확대에 대한 설명을 Wife Meta-부인의 게임 관심도 지표로 설명하기도 할 정도로 그는 현실에서의 가족을 중요시하며, 가족과의 체험은 새로운 아이디어를 창조해내기도 한다.



[ GDC 2007 기조 강연중의 미야모토 시게루]



처음 Wii를 설계할 때 미야모토 시게루 자신도 남을 설득함과 동시에 자신에게도 설득하기 위해 노력할 만큼 지금까지와는 비교할 수 없을 정도의 리스크를 갖고 도전했다고 하였다. 그리고 현재, Wii는 세계 각국에 빠른 속도로 보급되고 있으며 지난 14일 국내에도 Wii 한글판을 발매할 것이라는 발표가 있었다.


하지만 이와 같이 많은 것을 히트시켰음에도 성공에 안주하지 않는 모습은 개인적으로 게임계의 신이라기 보다는 게임의 한계에 도전하는 인간으로 보인건 기자만의 생각일까? 닌텐도의 사명이기도 한 게임을 플레이 하는 사람이 미소짓도록 하기 위해 그는 항상 새로운 도전을 계속 할 것이며 그 미래에 또 다른 즐거움이 있기를 한 사람의 유저로서 기대한다.



[ 개인적으로 관심이 많은 컨텐츠, Wii Fit ]


출처: ET뉴스

by 언식 | 2008/04/17 15:18 | Game industry | 트랙백 | 덧글(0)

높아진 개발비로 비롯된 총체적 난관, 이를 타파하기 위한 노력들

높아진 개발비로 비롯된 총체적 난관, 이를 타파하기 위한 노력들

 

세계의 게임업계는 위기감에 쌓여 있다. 지나치게 높아진 개발비가 다양한 문제를 야기하고 있다. 소위 말하는 '트리플A급' 게임을 제작하려면 개발자가 200명 가까이 모여 오랜 기간 동안(3년~5년) 게임을 제작해야 한다. 수십억 원으로 불어난 게임 개발비는 개발 시의 리스크를 급증시키고 있으며, 이를 감당할 만한 회사는 실제로 많지 않다. 비대해진 조직 관리 문제도 곳곳에서 터져 나오고 있다.

 

올해 초 샌프란시스코에서 진행됐던 '게임 개발자 컨퍼런스'(Game Developers Conference, 이하 GDC)에서도 이러한 '게임업계의 위기'가 주 논쟁의 타겟이 됐을 정도다. 게임동아에서는 랍스터 소프트의 김웅남 대표와 함께 세계의 게임 기업들이 어떻게 이를 해결해나가려 하고 있는지 알아봤다.

 

 

<게임업계의 주도적인 문제들>

'재미이론'이라는 책으로 게임업계의 유명인이 된 라프 코스터가 GDC2008에서 언급했듯이 게임 개발비는 너무 높아졌다. 온라인 게임의 경우 서버 구조의 복잡성이 나날이 증가하고 있으며, 수레바퀴 돌 듯이 끝없는 재발명이 이루어지고 있다. 서버를 재활용하기 힘들다는 점, 그리고 개발 수준을 블리자드의 '월드 오브 워크래프트'에 맞추어 달라는 퍼블리셔의 요구 등 더욱 시장을 어렵게 하는 요소도 많다.

 

패키지 게임도 자금회수가 어렵긴 마찬가지다. PC 패키지 게임으로 나온 '크라이시스'가 GDC2008에서 올해의 기술상을 수상하고 '현실과 같은 그래픽'으로 세계로부터 각광받았지만 실제 판매고가 8만 장 밖에 되지 않았다는 점도 이러한 게임 업계의 어려운 현실을 단적으로 말해준다.

 

 

<새 돌파구1 : 새 시장 개척 / 캐주얼 게이머를 주 타겟으로>

게임업계 위기 타파를 위해 게임업계가 실행한 것은 이용 층의 확대다. 즉, '캐주얼 게이머의 부상'이다. 어느 순간부터 게임업계 관계자들은 '마니아'들이 주 고객이 아니라 캐주얼 게이머들을 주 고객으로 목표를 바꾸고 있다. '가족게임' '게임의 세계로 오세요' 등이 게임 판매 수식어로 자주 붙는 걸 알 수 있다.

 

 

캐주얼 게이머들에게의 판매율을 높이기 위해 선행되는 것은 게임을 즐기기 위해 '배울 필요가 없는 수준'의 것을 만들어내는 것이다. '재스처 미믹'이라고 불리는 이러한 현상은 몇 백 년 동안 인간이 해온 자연스러운 동작을 게임으로 표현해내는 것을 일컫는다. 실제로 '기타히어로''싱스타' 등 '기존에 놀던 방식으로 그대로 즐기는' 방식의 게임들이 나오고 있으며 이는 하드웨어 판매 시장까지도 견인하고 있다. 닌텐도의 NDS나 Wii가 큰 성공을 거두는 것도 이러한 부분을 집요하게 연구해 내놓은 성과라 할 수 있다.

 

 

<새 돌파구2 : 사용자 제작 게임의 지원>

개발사들은 '사용자 제작 게임'을 적극적으로 지원하고 있다. 자신들이 직접 거액을 들여 게임을 개발하지 않고, 준 프로에 가까운 개발자들에게 '손쉬운 게임 제작 도구'를 제공하고 제작된 게임의 공유 기회를 제공하고 있다. 이렇게 공유한 후에 사용자간 평점 시스템을 이용해 인기 게임에게는 새로운 수익을 제공한다.

 

이렇게 개개인의 게이머들이 복잡한 절차없이 게임을 제작하고, 이를 공유한 후 옥석을 가리는 방식은 이미 MS와 소니에서도 진행되고 있다. MS는 엑스박스 라이브 커뮤니티를 통해 '게임을 올린 후 개발자가 돈을 벌 수 있다'고 밝히고 있으며 소니도 디버그 용 PS3 가격을 1천2백 달러까지 낮추면서 '누구나 PSN(플레이스테이션 네트워크) 라이센스를 취득할 수 있다'고 밝히고 있다. 또 '심즈 카니발' '메타 플레이스' 등 해외에서는 활성화된 사용자 제작 커뮤니티가 많이 나타나고 있다.

 

 

<새 돌파구3 : 소셜 네트워킹 연계>

위기 파타를 위해 세계의 게임업계는 이미 소셜 네트워킹 사이트와 많은 연계를 시도하고 있다. 소셜 네트워킹 사이트란 '누구나 자유롭게 콘텐츠를 올릴 수 있는' 사이트. 대표적으로 '유튜브'나 '마이 스페이스'를 예로 들 수 있다. 게임은 일종의 '버추얼 월드'라는 점에서 소셜 네트워킹 전반에 걸쳐 양 방향성이 활발하게 논의되고 있다. 대표적인 예로 '가이아 온라인(Gaia Online)'은 '세컨드 라이프' 등 다른 가상 세계처럼 소셜 네트워킹을 판타지 게임의 판타지 측면과 결합한 서비스를 제공함으로써 크게 효과를 봤고 북미 지역에서 이슈가 되고 있다.

 

이렇게 소셜 네트워킹 사이트들과의 연계가 많아지자 게임사들은 소셜 네트워크 사이트들에게 호환한 가능하도록 동일한 API를 쓰자고 제안하고 있다. 구글을 주축으로 한 이러한 움직임에 '마이 스페이스' 등 유력 사이트 들이 대거 동참하고 있는 상태다.

 

 

<새 돌파구4 : 새로운 배포 방식>

 

새로운 배포 방식도 개발되고 있다. 국내에서도 활발하게 이루어지고 있지만, 세계의 곳곳에서 '디지털 다운로드 서비스'가 점차 활발해지고 있다. 국내에서도 잘 알려져 있는 '카운터 스트라이크 스팀'도 전체 가입자 수가 150만 명을 돌파했으며, 해외 유명 게임 사이트(www.popcap.com)에서 'peggle'이란 게임은 1천만 건 이상의 다운로드 판매를 이루어냈다.

 

'쪼개 팔기'도 유행이다. 기존의 패키지 게임은 전체를 한 번에 비싼 가격을 주고 사는 방식이었지만 단일 패키지라도 60달러 이상되는 것을 쉽게 구입하기는 힘들다. 그래서 최근에는 에피소드 별로 쪼개서 저렴한 가격에 이용할 수 있도록 유도하는 경우가 많아졌다.

 

또 웹 브라우저 내장 게임도 생겨나고 있다. 이는 '설치 과정을 아예 없애는' 것이 게임 배포에 가장 좋다는 점 때문. 유럽 회사들 중에는 웹 브라우저 자체에서 별도의 클라이언트 없이  MMORPG를 즐길 수 있도록 시도하고 있기도 하다. 또 '아이폰'이나 PMP 등 다른 플랫폼까지 이런 추세가 확대되어 가고 있다.

 

 

<새 돌파구5 : 독립 게임 개발사 지원>

대형 게임 개발사들은 점차적으로 독립 게임 개발사를 지원에 나서고 있다. 저예산, 소규모 인력으로 구성된 이들이 '기존과 다른 시장', '다른 장르'에서 해법을 찾아 상당한 히트작을 내고 있기 때문이다. PSN에 올라와 히트작 반열에 오른 '에브리바디 슈터'는 대표적인 사례가 된다. GDC2008 인디게임 부문에서 대상을 받은 '크레용 피직스 디럭스'도 세계의 이목을 집중시킨 게임이다.

 

 

이런 독립 게임 개발사의 중요성은 세계적 추세다. GDC2008에서 '슈퍼 마리오 갤럭시', '콜오브 듀티4'도 아닌 '포탈' 이 대상을 받은 것도 세계의 게임업계들이 독립 게임 개발사들을 '게임산업 위기의 돌파구'로 보는 것을 입증하는 사례라 볼 수 있다.

by 언식 | 2008/04/17 15:11 | Game industry | 트랙백 | 덧글(0)

게임과 AI(Artificial Intelligence)

 

출처 : http://edu.hanyang.ac.kr/~deadwi/wakka.php?wakka=인공지능_12

AI의 등장과 목적

  • 대부분의 사람들이 동의하듯이 게임의 목적이 ‘재미’라는 그 자체만으로 목적이 되는 순간부터 AI는 필연적으로 발생
  • AI의 발생이 필연적이라 할 수 있는 이유는 게임의 “재미” 자체가 자신외의 객체와의 커뮤니케이션에 기반하고 있기 때문
  • 여기서 객체라 함은 자신 이외의 플레이어(사람일수도 있고 AI일수도 있다), 게임 속의 세계, 게임 속에서 인정되는 유효사물(게임 속에서 게임 플레이에 영향을 미칠 수 있는 모든 사물)을 포괄하는 개념
  • 게임 플레이어는 게임 내에서 유효사물을 이용하여 게임 속의 세계가 정의하는 룰에 따라서 자신 이외의 플레이어와 커뮤니케이션을 통하여 유발될 수 있는 다양한 “재미”를 경험하게 되는 것
  • 전통적인 보드 게임의 관점에서 게임을 플레이할 수 있는 방법은 3가지
    • 첫째는 같이 플레이를 하고 싶어할만한 가족이나 친구 혹은 손님을 기다리는 것
    • 둘째는 같이 플레이를 하고 싶어할 만한 친구나 손님을 방문하는 것
    • 셋째 방법은 혼자서 하는 것
  • 이러한 전통적인 게임들이 컴퓨터라는 새로운 매체와 결합하면서 나타난 가장 큰 특징은 게임을 혼자서 플레이하게 되었다는 점
  • 앞에서 예를 든 바와 같이 약간의 위험과 수고를 감수한다면 전통적인 게임들 또한 혼자하기가 불가능하지는 않았지만 컴퓨터와 결합한 초기 게임들은 몇 가지 이유들(기술적 문제와 같은..) 때문에 “혼자하기(Single Play)” 형태로 구현
  • 게임을 혼자 하게 되면서 본격적으로 게임 속에 AI라 불리는 요소들이 등장하게 되었던 것
  • 물론 아주 당연하게도, AI의 등장은 혼자하기에서 유발되었지만 지금의 “여럿이하기(Multi Play)” 전용 게임에서도 AI는 필수요소
  • 핵심은 AI가 없이는 게임 내에서 커뮤니케이션이 불가능하다는 것
  • 협의적인 측면으로 국한해서 앞의 세 가지 요소 중에 다른 플레이어들만으로 생각한다고 해도 그 플레이어(AI 플레이어)는 우리의 사용자를 즐겁게 하기 위해서 우리의 사용자와 경쟁하거나 협력하거나 심지어는 훼방을 놓을 수 있어야 하는 것
  • 앞에서 언급했듯이 게임에서의 AI의 역할은 여러 가지
    • 첫째, 가장 중요한 것은 게임의 상대 역할을 수행하는 것
      • AI는 게이머에게 무조건 이기는 것이 목적이 아니라 유사한 수준의 상대 역할을 수행하는 것
    • 둘째, AI는 게임의 보조 역할을 수행한
      • 게임 내에서 플레이어의 보조 역할을 하는 캐릭터를 AI가 담당
    • 셋째, NPC의 역할을 담당
      • NPC는 주인공과 상호 작용을 하여 실제로 NPC는 지능적인 객체라는 인식을 게이머에게 심어주어야 함
    • 끝으로, AI는 애니메이션 동작의 제어를 담당
  • 본질적으로 AI는 사용자가 재미있는 커뮤니케이션을 경험하기 위한 도구이며 영리한 AI를 만드는 것뿐만 아니라 재미나는 AI를 만드는 것이 중요

AI의 적용 분야와 최적화 전략

  • AI의 적용 분야
    • 길찾기
      • 여러 장르의 게임에서 가장 흔히 접할 수 있는 문제는 타일 혹은 3D기반의 게임 환경(world)에서 목적지까지 이동할 수 있는 길(path)을 찾는 것
      • 길찾기 시스템은 캐릭터 행동의 특정 측면들을 보장하는 역할
        • 예를 들어서 캐릭터가 장애물들 사이에 끼어서 움직이지 못하는 상황이 벌어져서는 안 될 것
        • 또한 플레이어가 보기에는 너무 명확한 길을 캐릭터가 쓸데없이 멀리 돌아가는 일도 일어나서는 안 될 것
      • 길찾기는 많은 게임들에서 AI의 기초적인 기능이며 특히 전략시뮬레이션(Blizzard의 스타크래프트 게임과 같은..)과 같은 장르에서 목적지를 마우스로 알려주면 가장 빠른 길을 찾아 해당 장소로 이동해야하는 문제로, 거의 모든 게임에서 필요
      • 이에 대한 해법으로 A*알고리즘을 주로 사용하는데, 이는 경로 찾기 문제에서 비교적 빠른 시간에 목적지까지의 최적 경로를 찾아줌
      • 목적지까지 가는 도중에 게임 진행 중 발생할 수 있는 게임 환경(world)의 변경( 예를 들어, 유일한 경로에 플레이어가 건축물을 건설하여 경로를 차단하는 경우)되는 경우는 A* 알고리즘만으로는 모든 경로 찾기 문제를 해결 할 수 없으며 추가적인 방법이 요구
      • 그러나 대부분의 경우 A* 알고리즘과 다른 해법을 병행하여 해결 가능하며 또한 현재 가장 AI 분야에서 가장 많은 연구가 진행된 분야
      • 다음은 바닥 격자 공간에서의 간단한 길찾기 방법 예
        • ㉠ 각 격자 단위로 A* 알고리즘을 이용하여 이용 가능한 노드를 찾음
        • ㉡ 직선 이동을 위해 시작점에서부터 직선으로 갈 수 있는 최대 지점까지 노드를 검색해서 그 노드까지 직선으로 이동
        • ㉢ 쉽게 인근 구역(region)들을 찾기 위해 각 구역들의 연결 상태들을 구성
      • 다음은 Dijkstra 알고리즘(그래프 이론)을 이용한 최단거리 길찾기의 예
        • Dijkstra 알고리즘은 각각의 선분에 명백한 가중치를 적용하고, 시작 위치와 다른 모든 노드들에게 갈 수 있는 최단 경로를 제공
        • 이 알고리즘에 나타나는 그래프의 각 노드는 부모 노드와 최적 비용값을 데이터로 갖음
        • 최초에 모든 노드들을 위한 보무 값들은 올바르지 않은 값을 가지며 최적 비용은 무한대(infinity)로 설정되며 시작 노드의 최적 비용은 0으로 설정
        • 최적의 경로를 찾기 위한 방법
          • 우선 반복적으로 노드를 대기 행렬로부터의 가장 낮은 최소 비용으로 대체
          • 그리고 그것들의 각 선분에 대해서 어느 선분에 대한 목표 노드를 위한 현재의 최적 비용이 현재 노드의 비용에 선분의 비용을 더한 것보다 크면 목표 노드를 향한 더 나은 경로를 찾아낸 것
          • 그리하여 목표 노드에 대한 비용을 갱신하고 부모 노드의 정보를 갱신하며, 그들을 현재 노드로 향하게 함
          • 다음은 Dijkstra 알고리즘을 위한 의사코드
    struct node	vector< edge > edges	node parent	real coststruct edge	node dest	real costwhile( priority_queue is not empty )	node curr = priority_queue.pop	for( all eges leaving curr )		if( edge.dest.cost > curr.cost + edge.cost )			edge.dest.cost = curr.cost + edge.cost			edge.dest .parent = curr

          • 세부 과정은 SKIP
    • 지적 행동
      • 게임에서 지적인 행동을 일일이 정의 할 수는 없음
      • 그러나 앞서 언급한 길찾기 역시 게임에 등장하는 플레이 가능한 유닛들의 지적인 움직임을 위해 반드시 요구되는 부분 중 하나
      • 만약 이동 가능한 경로가 있음에도 불구하고 게이머가 원하는 위치로 유닛이 제대로 이동하지 못한다면 게이머는 더 이상 게임을 진행하고 싶지 않을 것
      • 또한, 게이머는 게임에서 상대편과 시시한 플레이를 하기를 원치 않을 것
      • 따라서 게임의 상대편이 지능적인 행동을 하도록 게임을 제작하여 게임에서 큰 즐거움을 느끼도록 해야함
      • 예를 들어, 레이싱 게임의 경우 나와 함께달리는 차량이 너무 느리다거나 너무 앞서 달린다거나 해서는 플레이어의 흥미를 유발할 수 없게 됨
    • 계획
      • 게임이 복잡해지고 고도의 지능화된 캐릭터가 등장할수록 캐릭터는 현재의 행동이 앞으로 어떠한 영향을 주는지를 감안하여 전체적인 계획을 세우고 진행
      • 예를 들어 전략시뮬레이션 게임에서 상대편이 취할 수 있는 행동(상대편의 종족 형태, 주 병력의 공격 유형 등)이나 특징을 감안하여 전체적인 대응 전략(상대편 주 병력의 취약 유형 등을 파악)을 계획하여야 함

  • AI 최적화 전략
    • 복잡한 AI는 상당한 연산 능력을 요구하며 수많은 자동화 에이전트들이 지능적으로 게임 세계에서 활동하도록 하려면 더욱 더 많은 연산 능력이 필요
    • 원래 게임은 기본적으로 실시간에 병렬적인 기능이 크게 요구되는 응용프로그램이지만 AI의 분야는 특히 요구 됨
    • 모든 AI 에이전트들이 동시에 자신의 생각을 가지고 움직이는 것처럼 보이게 하는 것은 여전히 어려운 문제이며 이를 위한 AI 최적화는 비교적 미개척 분야
    • 그러나 거꾸로 생각하면 이러한 어려움은 병렬성을 AI 분야의 새로운 영역으로 만드는 요인이라 할 수 있음
    • 이러한 병렬성은 AI 에이전트들의 다른 고유 특성들과 마찬가지로 AI에서 요구되는 최적화 대상이 될 수 있음

    • 전략 #1 : 폴링 대신 이벤트 주도적 행동을 사용
      • 이론적으로, 자동화 에이전트는 자신의 세계를 끊임없이 관찰하고 그에 맞게 행동해야 함
      • 게임이 진행되는 매 프레임마다 에이전트들은 자신이 반응해야 할 사건 또는 객체들을 감지
      • 이러한 접근 방식은 엄청난 양의 중복된 계산이 발생한다는 점
      • 즉 이러한 개별적인 폴링(polling)은 자원 낭비가 심하다고 말할 수 있음
      • 이에 대한 대안은 “이벤트 주도적(event-driven) 기법‘을 사용하는 것
        • 예로 골프게임을 들어보자. 골퍼가 버디샷을 준비하고 있으며, 이를 수백명의 관중들이 지켜볼 경우, 만약 공이 홀컵에 들어갔을 때 공이 ”나 들어갔어“라는 메시지를 보낸다고 하자
        • 이는 모든 관중이 공이 움직이는 내내 공을 주시하도록 하는 것 보다 훨씬 더 효율적
        • 만약 이렇게 하나의 공이 아닌 정말 많은 수의 객체가 동시에 발생할 경우(전투에서 수많은 병력이 전쟁을 할 경우와 같은..)엔 더더욱 큰 도움이 될 것
    • 전략 #2 : 중복된 계산을 줄임
      • 게임에는 수많은 AI 에이전트들이 존재하며, 그들은 수시로 아주 많은 계산을 수행한다. 이러한 독특한 환경에서의 속도 및 효율적인 AI 처리를 위해서는 고가의 하드웨어 장비가 지원되지 않는 이상 하드코딩으로 극복하거나 지능적 처리 방식을 사용해야 함
      • 실제로 이 전략의 목적은 AI 에이전트들이 자신의 계산, 처리 결과를 공유하도록 만들어 불필요한 중복 계산을 줄이는데 그 목표
      • AI 에이전트들 각각이 가지고 있는 정보를 공유할 수 있다면 계산 시간을 상당히 줄일 수 있을 것
      • 간단한 예로 길찾기
        • 전략 시뮬레이션 게임(예 : BLIZZARD의 스타크래프트)에서는 수많은 유닛들이 존재하며 플레이어는 이를 마우스와키보드를 이용해 제어하게 되며 이때 한꺼번에 많은 수의 유닛을 맵의 다른 한쪽으로 이동하도록 명령
        • 각각의 유닛들은 해당 명령에 따라 길찾기 수행을 통해 이동하게 되며 이때 모든 유닛이 길찾기를 수행하는 것 보다 한 유닛이 길찾기를 수행하고 나머지는 그 유닛의 뒤를 따라가는 것이 훨씬 더 효율적일 것
        • 이럴 경우 길찾기 수행의 횟수가 급감하여 계산상의 시간을 상당히 줄일 수 있음
    • 전략 #3 : 관리자를 통한 협동의 집중화
      • AI를 좀더 빠르고 간단하게 만들기 위한 방법의 하나로 게임내의 AI 에이전트들을 하나의 집단(Group)으로 묘사하는 것
      • 하나의 집단에는 그 집단을 이끄는 역할을 가진 관리자 에이전트가 있을 수 있으며 게임 흐름상의 일부(특히 각 집단별 행동이 요구되는 경우..) 결정권을 관리자에게 위임하는 것
      • 실제로 지시된 역할을 수행하는 것은 관리자 역할을 맡고 있는 에이전트의 AI가 판단하게 됨
      • 예를 들어, 축구 게임에서 “3-5-2” 시스템으로 진형을 갖춘다고 했을 때, 공격수(3)와 미드필드(5), 그리고 수비수(2) 역할의 에이전트가 존재하며, 이들이 효과적인 공격과 수비를 펼치기 위해 진형별 관리자를 둘 수 있음
      • 이와 같은 방법은 공격수가 공격에만 전담하도록 할 수 있으며 이를 통해 수비수나 미드필드와의 역할 혼동을 피할 수 있고 자칫공만을 쫓아 몰려다니는 “동네 축구”를 탈피할 수 있는 축구 게임을 만들 수 있음
    • 전략 #4 : 처리 부담을 여러 프레임들로 분산
      • 이 전략은 길찾기와 같은 CPU의 자원을 많이 소비하는 AI 부분에 사용하면 적절
      • 길찾기의 대상이 되는 검색 공간은 몇 프레임만에 크게 변하는 것이 아니므로 계산을 여러 프레임으로 나누어 수행 가능
      • 이러한 접근방식은 프레임 당 처리 부담을 줄이는데 효과적
    • 전략 #5 : 힘든 일은 미리 처리
      • 고도의 물리학 엔진이 탑재된 게임들이 대거 등장
      • 이러한 게임의 특징은 아주 많은 계산이 요구되는 동작을 주로 수행한다는 것
      • 비행 시뮬레이션이 그 대표적인 예
        • 이러한 게임은 종종 실시간으로 처리하기엔 너무 어려운 문제에 직면하기도 한함
        • 이러한 문제를 해결하기 위해 복잡한 계산을 미리 수행하여 테이블에 담아주고 참조하는 방식을 사용하는 등의 기법을 사용하여 실행 시점에서 단 한순간의 조회만으로 의사 결정과 판단에 필요한 정보를 얻을 수 있게 만드는 것이 가능
        • 이러한 전략은, 단 몇킬로바이트의 데이터로 엄청난 CPU 자원을 절약할 수 있게 해준다는 점에서 매우 강력한 최적화 전략이라 할 수 있음
    • 이 외에도 AI의 최적화를 위한 전략들은 아주 많음
    • 실제로 AI 시스템에서 직면할 수 있는 문제들을 최적화하려면 좀 다른 시각에서 문제를 바라보는 것이 도움이 될 것

AI 구현 기술

  • FSM과 FuSM?
    • FSM(Finite State Machine)
      • FSM이라는 용어 그대로, 유한한 개수의 상태(state)들로 구성된 기계를 말하며, 가장 널리 사용되는 인공지능 처리 방식
      • 상태 기계(state machine) 즉, 정확히 말하면 유한 상태 머신(FSM)은 장치나 어떤 기술의 순차 로직 혹은 제어 기능에 단순하면서도 정확한 설계를 가능하게 함
      • FSM에 대한 아이디어는 유한한 상태(state)들을 가진 전자 제어 기계들로부터 얻어졌음
      • 여기서 상태(state)라는 말은 하나의 조건이라고 생각하면 됨
      • 놀라운 사실은, 그러한 대부분의 시스템(일종의 간단한 전등 스위치 혹은 게임 내의 지능적인 캐릭터들 등을 포함)들이 유한한 상태들로 표현 가능하다는 것
      • FSM의 알고리즘 자체는 간단하기는 하지만, 상태라는 말을 결코 간과해서는 안됨
      • 거의 모든 시스템들이 상태들로 표현될 수 있음
      • 그렇기 때문에 FSM은 시스템을 제어하는 알고리즘으로 간단하면서 가장 많이 사용됨
      • FSM은 하나의 입력(일반적으로 조건이 변화하는 것을 의미)을 받고 그에 의거해서 현재 상태로부터 다른 어떤 상태로 전이(transition)
      • 간단한 예로, 전등 스위치를 하나의 상태 기계라고 한다면, 스위치의 상태가 “ON"과 ”OFF" 상태가 있을 수 있으며, “Down" 또는 "Up" 이라는 입력이 들어가면 전등 스위치의 상태가 바뀌는 것
      • 게임에서 FSM을 사용할 경우
        • 우리가 알고있는 유명한 게임 중 퀘이크(Quake)도 NPC(Non Player Character)의 행동 제어에 FSM을 사용하였으며, 이와 같은 장르의 게임인 Half Life 역시 계층적 FSM(Hierachical FSM)을 사용한 것으로 알려져 있음
        • 일반적으로 게임 내에서 캐릭터의 행동이나 감정 상태등을 FSM으로 표현 가능
        • 여러 캐릭터 혹은 하나의 캐릭터에 대한 현재 상태가 주어지고 이후 외부의 자극등에 의하여 상태가 바뀔 경우 현재 상태에 따라 그에 대한 반응 방법이 결정
        • 자극과 같은 외부의 상황이 바뀌면 현재 상태가 다른 상태로 전이
        • 또한 전등 스위치에서와 같이 캐릭터는 특정 상태에 있을 경우에는 항상 같은 방식으로 행동
        • 여러 캐릭터가 몇 개의 상태로 주어질 때 캐릭터의 현재상태에 따라 외부에 대처하는 방식이 결정
        • 즉, 외부의 상황이 변화하게 되면 현재상태도 FSM에 의해 다른 상태로 전이
        • 또한, 캐릭터는 특정한 상태에 있을 경우 항상 같은 방식으로 행동
      • 결과적으로 FSM의 전반적인 아이디어는 매우 간단하고 단순하지만, 그 활용 범위와 용도는 너무나도 다양하다 할정도로 시스템 제어에 근본이 되는 알고리즘이라는 것을 알 수 있음
        • 실제로 단순히 switch() 구문 혹은 if 구문을 사용하여 프로그래밍되는 것이 전부
        • 그래서 FSM은 특별한 인공지능 기능을 요구하지 않는 게임에서 많이 사용하며 만약 설계/구현 과정에서 상태의 수가늘어나게 되면 switch() 구문을 사용하는 대신 배열을 사용하여 원하는 루틴에 빠르게 접근
        • FSM의 의사코드 구현
    Switch(creature_state)	case STATE_ATTACK :		플레이어 쪽으로 이동		20%의 확률로 포 발사	case STATE_RETREATE :		플레이어와 반대 방향으로 이동

      • FSM도 표현해야할 상태수가 늘어나게 되면 몇가지 단점
        • FSM이 나타낼 수 있는 상태 수는 어느 정도 제한적이지만 사실상 그 수에 대한 제한은 없기 때문에 복잡하고 많은 수의 상태 표현을 요구하는 경우 상태 다이어그램을 정리하기가 어렵고 상태 변화를 가능하게 하는 외부 자극 처리가 복잡해지게 됨
        • 게다가 FSM을 사용한 게임 혹은 게임내의 캐릭터는 그 행동의 예측이 쉬우며 그렇게 될 경우 게임의 재미가 떨어지고, 게임의 난이도를 높이기 위해 FSM을 새로 확장 구현해야하는 결과를 초래
        • 실제로 게임 개발 도중 FSM은 빈번하게 진화, 확장되거나 계층적 FSM으로 다시 설계

    • FuSM?(Fuzzy State Machine)
      • FuSM?은 FSM의 단점을 개선하기 위한 방법으로 퍼지 이론을 FSM의 상태 전이를 위한 조건 판단에 응용한 것
      • FuSM?은 상태의 입력과 출력에 퍼지 함수를 적용하여 랜덤 기능을 추가함으로써 동일한 입력에도 다른 상태로의 전이를 얻을 수 있는 방법
      • 따라서 퍼지 상태 기계는 “그렇다”와 “아니다”라는 이산적인 상태 대신 “매우 그렇다”, “그저 그렇다”, “다소 아니다”, “매우 아니다”와 같은 상태들을 표현
      • 이것은 하나의 (다분이 정량적이지만) 빛을 분산시키는 스팩트럼과 같은 원리라 보면 이해가 빠를 것
      • 실제로 FuSM?을 게임에 이용한다면, 예를 들어 하나의 NPC(여기서는 자연 유닛이라 본다면) 는 플레이어에 대해 단순히 “귀찮다”, “조금 귀찮다”, “매우 귀찮다”와 같은 상태로의 전이가 가능한 것
      • 이는 또한 게임 안의 상태들이 반드시 구체적이고 이산적일 필요가 없음을 뜻하기도 함
      • 일반적으로 FuSM?은 하나의 상태를 표현하기 위해 일정한 범위를 갖는 실수로 표현
      • 보통 실수의 범위는 0.0에서 1.0사이의 범위를 갖지만 이것이 퍼지 이론에서 말하는 퍼지의 값을 표현하기 위한 유일한 방법은 아님
      • 따라서 사용하고자 하는 수들을 퍼지 값이라고 규정짓고 사용할 수 있음
      • 그렇다면 왜 게임에서 FuSM?을 사용하는가? 우리는 게임에 퍼지 논리를 적용시킴으로써 좀더 추상적인 개념을 표현할 수 있으며 이를 통해 게임내의 객체(NPC와 같은..)들로부터 좀더 재미있는 반응을 만들고 좀더 예측하기 힘들게 만듦으로써 게임 전체의 재미를 향상 시킬 수 있기 때문
      • 실제로 게임 플레이어는 마주치는 같은 종류의 NPC 혹은 몬스터(monster)들의 각기 다른 행동 패턴을 느낄 수 있게 되며 이로써 게임은 더욱 더 흥미진진해지는 것
      • 실제로도 같은 케릭터가 다르게 보이기도 함
      • 다양한 게임 장르들에서 FuSM?은 유용하게 사용되고 있음
      • RPG 게임중 하나인 디아블(DIABLO)로에서 캐릭터는 적 유닛들로부터 입은 각종 공격 피해로 인해 행동이 느려진다거나 체력이 줄어든다거나 하는 변화를 수시로 겪음
      • 이는 상당히 많은 상태값을 요구하는데 실제로 적이 사용한 무기 혹은 마법의 능력치에 따라 피해의 크기와 지속 시간등이 다채롭게 변함
      • 레이싱 게임중 하나인 니드포스피드(Need for Speed)에선 경기 도중 코스 이탈을 하거나 차량이 부서지거나하면 피해 위치와 규모에 따라 게임의 속도와 핸들링 등에 다양한 영향을 주게 됨
      • 이는 게임의 진행을 좀더 신중하게 하게끔 유도하며 사실감을 더욱더 느끼는 효과까지 제공
      • 퍼지논리를 컴퓨터를 통해 게임에 적용하는 것은 그리 어려운 것이 아니며, 퍼지의 특성이 적용될 수 있는 다양한 상태의 결정이 요구되는 곳에서 퍼지 논리는 게임의 한 부분으로서 완벽하게 사용 가능

  • 결정 트리
    • 결정트리는 귀납적 학습을 위한 실용적인 방법으로 트리 모양의 구조로 결정의 셋을 나타냄
    • 이 결정트리는 데이터 셋의 분류를 위한 규칙을 생성
    • 또한 학습 과정을 거쳐 생성된 결정트리를 규칙의 집합으로 이해 가능
    • 앞서 설명한 FSM은 상태 수가 많아지면 여러 문제점이 나타남
    • 따라서 이를 극복하기 위한 간단하면서도 효과적인 방법이 요구되며, 이중 가장 널리 사용되는 방법이 결정트리
    • 결정트리는 현재 상태에 따라 수행할 기능을 트리 형태로 나누어 해당하는 행동을 처리하도록 하는 방법을 말함
    • 결정트리는 학습의 과정을 거쳐 트리를 생성하고 이를 규칙의 집합으로 사용하므로 미리 정해진 상태가 없기 때문에 매 프레임마다 게임 로직을 처리해야하는 부담이 있지만, 트리의 구조를 잘 선택하면 게임 로직에 사용되는 시간을 최소로 줄일 수 있기 때문에 널리 사용
    • 결정트리는 if then else 구문을 반복적으로 사용하므로 프로그래머의 이해가 빠르고 코딩의 어려움이 없음
    • 따라서 상태수의 제한이 없으나 비교적 적은 수의 환경변수를 사용할 때 편리
    • 또한 얻어진 결과가 하나 또는 아주 적은 수의 값만을 사용하는데 적합
    • 일반적으로, 결정트리는 FSM보다 많은 코딩을 요구하며 FSM 보다 CPU 점유율이 높음
    • 게다가 규칙을 만들기 위한 많은 사례를 미리 준비해야하는 단점이 있으며, 이후에 트리의 최적화 과정이 반드시 요구

  • 규칙 기반 시스템(Rule Based System)
    • 규칙 기반 시스템은 Allen Newell 과 Herb Simon의 기본 아이디어로부터 도출
    • 실제로 규칙기반 시스템은 전통적인 인공지능 학문에 기반을 둔 기법으로 전문가 시스템에 활용
    • 규칙 기반 시스템의 기본 개념은, 많은 규칙을 나열하고 현 상황에 해당하는 즉 현 상황에 가장 적합한 규칙을 골라 내어 이 규칙에 따른 결과를 얻는 것을 말함
    • 기본개념에서도 알 수 있듯이 어떠한 규칙이 가장 적합한 규칙인지 를 판단하는 것이 중요하며 또한 해당 규칙을 어떻게 생성하였느냐가 시스템의 중요 이슈
    • 규칙기반 시스템에서의 규칙 선택은 임의 함수를 조건으로 사용 시 Hashing 함수는 사용이 불가능하며 모든 규칙에 대해 차례로 테스트
    • 따라서, 가장 먼저 발견된 규칙을 선택하는 경우가 대부분이며 규칙을 매칭하기까지의 시간은 규칙의 수와 조건의 복잡도 그리고 매칭되지 않는 규칙의 수에 영향을 받음
    • 규칙기반 시스템은 FSM이나 결정트리에 비해 높은 지능을 구현할 수 있으며 인간의 사고방식을 그대로 적용 가능 하나 규칙의 수가 늘어날수록 해당 규칙을 찾아내는 매칭 기능에 많은 시간이 소요되므로 단순한 지능만으로 구현 가능한 게임보다는 복잡한 조합으로 이루어진 RPG 게임과 같은 장르에 필요한 시스템
    • 실제로 규칙 기반 시스템은 “Baldur‘s Gate"라는 게임의 Infinity 엔진에 처음 사용된 것으로 알려져 있음

  • 스크립트 언어
    • 게임 디자이너는 해당되는 인공지능 로직을 프로그래머에게 전달하여 이를 C/C++ 프로그램 언어를 이용하여 프로그램 코드에 포함
    • 이때 전체 프로그램 로직에 변화를 주지 않고 해당 캐릭터의 행동만을 바꾸고자할 경우가 생기며 이는 자칫 전체 프로그램을 다시 컴파일해야 할 필요성이 생김
    • 따라서 인공지능 구현 기능을 메인게임 프로그램에서 분리하여 스크립트 언어로 표현하는 방식이 등장
    • 앞서 설명한 바와 같이 UnrealScript?라는 언어를 사용하여 엔진 이외의 코드를 프로그램 할 수 있도록 하였음
    • Quake-C는 단순화시킨 C언어와 같은 느낌인데 반하여 UnrealScript? 언어는 Java 언어의 분위기를 풍김
    • 엔진 코드 개발에 사용한 C++ 언어는 인공지능 처리가 어렵다는 것
    • 인공지능 처리를 위한 코드는 한 프레임 진행시간에 처리할 수 없기 때문에 이러한 문제를 해결하기 위해서는 스파게티 같은 코딩을 하지 않을 수 없음
    • UnrealScript?에서는 상태(state)라는 개념을 두어 특정 상태에서 처리해야 하는 루틴을 해당 상태에서 코딩 처리함
    • 이 코드는 하나의 프레임 진행시간 이상 수행할 수 있는 별도의 스레드를 사용하여 처리
    • 일반적인 스크립 언어는 기능을 단순하게 하기 위해 객체지향에서의 가장 큰 장점인 상속기능을 지원하지 않으나 UnrealScript?는 상속 기능을 지원하여 여러 가지 인공지능이나 게임로직의 문제를 해결
    • 등장하는 캐릭터의 행동과 네트워크 프로토콜의 연결은 대부분 UnrealScript? 언어를 사용
    • 특히 캐릭터의 특성을 상속할 수 있도록 하여 저급 수준의 캐릭터 코드를 보스급 몬스터가 상속하며 필요시 이를 오버라이드(Override) 할 수 있도록 하여 전체 코드 개발에 생산성을 높이고 에러 발생의 가능성을 줄이고 있음
    • 매우 발전된 수준의 Creature 나 Bots의인공지능을 처리하기 위해 스크립 언어가 설계되어 있어 Bots의 움직임과 무기 그리고 인벤토리를 어떻게 이용하는지 알고 있음
    • 그러나 Quake와 Unreal의 스크립트는 인공지능만을 위한 언어는 아니며 네트웍 지원을 기본 기능으로 하고 있어 엄밀한 의미의 인공지능 스크립언어로 보기는 어려움
    • 인공지능 기능만을 위한 스크립트 언어는 “Baldur‘s Gate"에서 사용된 스크립트 언어와 ”Age of Kings"에 사용된 스크립트 언어를 들 수 있음

  • 영향력 분포도(influence map) 기법
    • 영향력 분포도 기법은 전략적 판단을 내리는데 꼭 필요한 게임 AI 기법으로, 많은 게임들에서 유용함이 입증
    • 영향력 분포도는 주로 전략 게임에 쓰이나, 전술적 분석이 필요한 다른 종류의 게임들에서도 유용하게 쓰일 수 있음
    • 영향력 분포도란 AI 에이전트가 세계에 대해 지니고 있는 지식을 공간적으로 표한 것
    • 실제로 게임 환경의 물리적/지형적 표현과 현재의 게임 상태(유닛 및 조형물의 배치등)에 기반해서 전략적 결정에 필요한 정보만을 적절히 추출한 것이라 할 수 있음
    • 컴퓨터 플레이어는 영향력 분포도를 통해 자신의 유닛 배치와 적의 위치, 그리고 적과의 전선 및 전투하기 가장 적절한 곳이 어디인지 등을 파악할 수 있음
    • 영향력 분포도를 만들어 내는 방법은 여러 가지가 있으며 적용 방법 역시도 여러 가지가 있음
    • 여기서는 가장 간단한 수준에서 개념을 알아볼 것
    • 2차원 공간에서의 영향력 분포도
      • 영향력 분포도는 대부분의 게임 구조에 대해서도 적용 가능
      • 여러 가지 타일 기반의 격자(직사각형, 정사각형,육각형 등) 형태를 갖출 수 있으며 3D에서도 적용 가능
      • 여기서는 2차원 공간의 간단한 구조를 통해 이해를 돕겠음
        • 게임 세계는 사격형 칸들로 덮음
        • 그리고 각 칸들의 모든 영향력은 0으로 초기화
        • 그리고 각 칸이 가질 수 있는 영향력 값이 배정
        • 이때 영향력의 값의 기준은 전투 능력등으로 볼 수 있으며 아군은 양수, 적군은 음수의 값을 갖음
        • 하나의 타일로 이루어진 게인 세계에는 고유의 영향력을 갖는 아군과 적군이 공존하며, 이들의 영향력 값을 적절히 더하고 뺌으로써 각 타일에서의 유닛 전투 능력을 평가
        • 일단 각 유닛이 1이라는 전투 능력을 가진다고 하자.
        • 이제 각 칸의 영향력을 인접 칸들로 전파시켜야 함
        • 인접한 칸으로 전파될 때마다 세력(영향력)은 반으로 준다고 가정
        • 두 적군 유닛(비행기)들의 영향력 역시 동일하게 전파되며, 적 유닛의 영향력은 음의 값으로 나타나게 됨
        • 아군 유닛과 적 유닛의 의 영향력을 결합한 분포도를 통해 우리는 아군과 적군의 역관계를 확실히 알 수 있으며 타일 내의 영향력(양의 값과 음의값)을 이용하여 적들의 진형과 전선 형성등을 파악
        • 실제 게임에 쓰이는 분포도의 형태는 좀더 복잡
    • 실제 게임에서는 단지 각 칸에 영향력 값만이 아닌 게임의 세계에 대한 또 다른 정보( 전투능력, 지역 가시성, 전사자 수, 자원, 통행성 등)들을 함께 담는 경우가 많음
    • 이렇게 구성된 영향력 분포도는 하나의 데이터베이스가 되기도 함
    • 일반적으로, 게임에 참여한 플레이어들에게 각자에 해당하는 영향력 분포도가 주어지게 되고 이를 처리하기 위해 분포도를 병렬적으로 처리해야 함
    • 물론 모든 플레이어들에 대해 하나의 단일한 영향력분포도를 갱신하고 모든 AI플레이어들이 그것에 접근하게 만들 수도 있음
    • 이것은 치팅(cheating) 수단이 될 수 있음

  • 자원 배정 트리
    • 영향력 분포도기는 지형 차원의 전술적 자산(asset)을 얻기 위한 수단이라 할 수 있으나 앞으로 살펴볼 자원 배정 트리는 전략적 차원의 결정을 내리는데 사용되는 기법 중 하나라 볼 수 있음
    • 자원 배정트리는 플레이어의 제어 하에 있는 모든 자산들의 특정한 기능적 목적을 표현하는 하나의 트리 구조
    • 이 트리는 현재 플레이되고 있는 모든 유닛들과 자원들을 기능적 범주들의 계통구조로 조직화한 형태
    • 자원 배정 트리를 이용해 플레이어는 자신을 포함한 게임안의 모든 플레이어들의 전략적 강점과 약점을 알아내는 데 사용될 수 있음
    • 또한 이 트리는 다양한 범위의 경제적 생산 및 자원 배분 결정을 위해 사용 가능
    • 예를 들어 전투 유형에 따라 생산할 유닛을 결정한다든지, 그리고 어떠한 기능적 역할을 맡길 것인지를 판단하는데 사용
    • 자원 배정 트리는 기본적으로 어떤 새 유닛들을 생산할 것이며 기존 유닛들에게 어떤 역할을 맡길 것인지를 결정하는데 유용
    • 또한 플레이어의 독특한 개성을 창조하는 수단이 될 수도 있음
    • 즉 개성적인 AI 플레이어들을 만들어내는데 사용 가능
    • 개성적인 AI 플레이어들을 만들어내는 문제는 단지 트리 각 노드의 배분 비율등을 조절하여 해결 가능하며, 또한 각 노드들을 적절히 조절하므로써 전략적 비중을 변경하는 것 또한 가능

응용 사례

  • 게임 장르
    • 게임의 장르 분류에 있어서 현재 많은 혼동과 어려움이 뒤따르고 있음
    • 왜 그런지에 대한 타당한 이유와 근거를 제시하기엔 어려운 점이 많은 것도 사실
    • 현재 개발중인 대부분의 게임은 그 특징들이 너무나도 다양하며 어느 특정한 룰을 지키려는 의지 또한 부족한 것이 사실
    • 그렇다면 우리는 대략 어떠한 특징들을 가지고 게임의 장르를 분류할 수 있을까?
    • 게임의 장르는 대략 슈팅, 아케이드, 퍼즐, 어드벤처, 롤플레잉, 전략시뮬레이션, 조종시뮬레이션, 온라인 게임, MMORPG등으로 나눌 수 있음
    • 이것은 사전적인 분류는 아님
      • 슈팅 슈팅 게임
        • 말 그대로 플레이어의 민첩성에 기반한 회피, 그리고 막대한 화력에 기반한 대량 파괴에 플레이 초점이 맞춰져 있음
        • 목표물을 쏴서(shoot) 맞추는 게임 형태에서 그 명칭이 기원한 것으로 보임
        • 실제로 제비우스, 갤러그와 같은 쏴서 맞추는 형태의 게임에 대한 명칭에서 굳어진 것으로 보임
        • 이러한 슈팅 게임은 플레이어가 한번에 하나의 유닛만 조종해야 하거나, 일반적인 성취도를 점수(score)형태로 계산하여 순위를 부여하고 일반적으로 사냥과 같은 것이 주된 목적
      • 아케이드
        • 민첩성과 순발력에 기반한 캐릭터 조종과 약간의 퍼즐이 가미된 게임으로서 사실상 아케이드란 말은 올바른 명칭은 아님
        • 아케이드는 가정용 비디오 게임이나 PC 기반 게임과 구분이 되는 ‘업소용 게임“을 가리키는 용어
        • 그러나 모든 업소용 게임을 아케이드 게임이라고 칭하기엔 억지가 있음
        • 그래서 생긴 말이 ”액션 아케이드“
        • 그러나 현재는 ”액션“이라는 말이 많이 모호해져 있으며 그 장르를 구분 짓기 어려운 형편
        • 실제로 슈팅 게임의 기원과 같은 게임인 제비우스와 갤러그도 아케이드용 게임
      • 퍼즐
        • 컴퓨터 게임 이전부터 있던 게임의 명칭이 그대로 사용된 형태로 논리적 사고에 기반한 문제 해결이 플레이의 초점
        • 실제로 컴퓨터가 제시하는 문제를 풀이해 나가며 좀더 난이도 있는 문제(게임 진행 속도나 문제 자체의 난이도, 해결을 위한 제한 시간등의 변화를 통한 난이도 조절)를 해결하는 것이 목적
      • 어드벤처
        • 퍼즐에 기반한 스토리 진행형 게임
        • 게임의 진행 및 해결해야할 문제가 주어지는데 이는 모두 스토리에 기반
        • 보통 스토리에 따라서 게임의 목표가 있고, 그 목표를 달성하면 엔딩과 같은 결과물이 주어짐
        • 스토리르 진행해가며 다양한 아이템을 사용할 수 있으며 이러한 진행은 퍼즐과는 또 다른 플레이어의 판단력과 분석력을 요구
      • 롤플레잉
        • 어쩌면 어드벤처와 너무나도 유사한 특징을 가진 장르가 롤플레잉
        • 롤플레잉 역시 스토리와 캐릭터의 성장에 기반한 퀘스트(문제와는 조금 다름) 해결 또는 해결을 통한 캐릭터 성장을 초점
        • 일반적으로 캐릭터를 중심으로 게임이 진행되며 캐릭터를 성장시키는 과정에서 우리가 흔히 알고 있는 경험치나 아이템을 사용할 수 있음
        • 시나리오 중심적인 게임이라는 점에서 어드벤처와 유사하나 자유도의 보장이라는 측면이 강조된 형태를 띄고 있음
        • 롤플레잉 게임에서의 자유도는 “이동의 자유도”, “행동의 자유도”, “캐릭터 성장의 자유도”, “스토리 진행의 자유”, “문제 해결의 자유도”, “게임 진행의 자유도”등으로 대략적인 분류
        • 롤플레잉 게임에는 울티마온라인, 파이널판타지, 드래곤퀘스트등
      • 전략 시뮬레이션
        • 제한된 자원의 효율적 관리와 유닛 제어를 통해 전쟁등과 같은 상황을 재현/가정한 게임이
        • 우리가 흔히 알고 있는 스타크래프트, 워크래프트등이 전략 시뮬레이션의 대표적인 게임
        • 전략 시뮬레이션은 한쪽이 승리하거나 포기할 경우, 혹은 일정한 목표가 달성되면 게임이 종료
        • 대부분의 전략 시뮬레이션 게임은 리얼타임방식(실시간 전략시뮬레이tus : RTS)으로 진행
        • 리얼타임 방식은 턴 방식과 대조적인 것으로 순서에 관계없이 실시간으로 진행
      • 조종 시뮬레이션
        • 실존하는 기계적 시스템에 대한 가상 체험과도 같음
        • 플레이어는 조종 가능한 기체의 조작을 하게 되는데 이 기체는 실제 세계혹은 가상 세계에 이미 존재하는 탈 것을 그대로 재현한 것
        • 시뮬레이션의 가장 큰 특징은 사실적인 세계의 표현과 그리고 그를 위한 운용 역학, 동역학과 같은 자연적 물리적 법칙이 적용되거나 수정되어 구현된다는 것
    • 장르별 인공지능의 특징
      • 액션
        • 대상 캐릭터 : 플레이어
        • 처리 기능 : 공격 방어
        • 엔진 구현 : 스키립트
      • RPG
        • 대상 캐릭터 : 플레이어, 종속멤버, NPC
        • 처리 기능 : 그룹내의 개별 공격/방 대화 기능
        • 엔진 구현 : 규칙 기반 시스템
      • 실시간 전략
        • 대상 캐릭터 : 플레이어 그룹 유닛
        • 처리 기능 : 전략 목표 설정, 그룹 경로 계산 및 이동, 유닛 공격 및 방어
        • 엔진 구현 : 규칙 기반 시스템
    • 효율적인 인공지능을 구현하기 위해서 ADU 개념을 도입하여 인공지능의 기능을 확장
    • 여기서 ADU(Artificial Decision Unit)란 앞서 최적화 전략에서 언급했던 일종의 관리자 역할을 수행하는 유닛
    • RTS 게임의 경우 Master ADU는 전체적인 전략차원의 인공지능을 담당하도록 하며, 특정시간에 그룹으로 선택된 여러 가지의 유닛은 Group Commander ADU가 담당
    • 반면, 그룹내의 유닛이나 이 그룹에 속하지 않는 일반 유닛은 유닛별 ADU가 인공지능 기능을 담당
    • 다음은 인공지능 엔진의 장르별 ADU를 설명한 표
    • 인공지능 엔진의 장르별 ADU
      • 기본 모듈
        • FSM의 생성
        • State와 Transition의 추가 기능
      • 장르별 모듈
        • 액션
          • Master 기능 ADU
        • RPG
          • Master 기능 ADU
          • Slave 기능 ADU
          • NPC 기능 ADU
        • RTS
          • Master 기능 ADU
          • Group Commander 기능 ADU
          • Unit 기능 ADU
    • 예를 들어, FSM 모듈의 경우, 상태(State)의 수가 10개 미만의 경우에는 Switch 구문을 사용하여 현재의 상태를 검색한 후 이에 해당하는 코드를 수행하면 되지만, 상태의 수가 10개 이상 증가하면 처리속도 면에서 느려질 수 있으므로 ADU 클래스(Class)를 정의하고 여기에 상태나 전이Transition)를 추가하는 방식을 사용하여 문제점을 개선

  • 장르별 응용 사례
    • RPG 게임의 사례
      • RPG 게임에서 사용되는 대표적인 게임 엔진으로 Infinity 엔진
      • Infinity 엔진은 Bioware 사에서 개발한 RPG 전용엔진이며 Baldur's Gate 시리즈, Icewind Dale과 같은 게임에서 사용
      • Infinity 엔진은 대표적인 AI 기능만을 다루는 엔진 중 하나로서 AICompile 스크립트 언어를 이용하는 규칙 기반 시스템 구조를 갖고 있음
      • AICompile 언어는 IF<condition> THEN <response> END 로 표현되는 규칙 중 하나를 선택하도록 되어 있음
      • 규칙기반 시스템 구조
    IF	Condition1THEN	RESPONSE # weight		Response1	RESPONSE # weight		Response2ENDIF	Condition2THEN	RESPONSE # weight		Response1	RESPONSE # weight		Response2END

      • weight는 1에서 100사이의 정수이며 모든 Response의 Weight 합에서 해당되는 비율만큼의 확률로 Response가 이루어짐
      • 또한 Response는 Action의 OR 조합으로 이루어짐
      • 규칙기반 시스템 구조의 예
    IF	Class(LastAttackerOf(Myself().MAGE)	HPGT(Myself.50)THEN	RESPONSE # 80		Attack(LastAttackerOf(Myself).MELEE)	RESPONSE # 40		Help()		RunAway()END

      • 위 예에서 자신을 공격한 적의 Class가 MAGE이고 자신의 건강(HP : Health Power)가 50 이하일 경우 80/(80+40)의 확률로 MELEE 방식으로 적을 공격(Attack)하거나 40/(80+40)의 확률로 도움(Help)을 요청하고 도피(RunAway?)하는 것을 나타냄
      • 이는 원하는 상황에서의 캐릭터의 동작을 쉽게 표현할 수 있는 장점
    • RTS(Real-Time Strategy : 실시간 전략게임)의 사례
      • RTS 장르의 대표적 게임인 AOK(Age of Kings : Ensemble Studio 사)는 인공지능 처리를 위해 스크립트 언어를 사용
      • 앞서 살펴본 Infinity 엔진의 스크립트 언어와 유사하지만 다른 표현 방식을 사용
      • AOK 인공지능 처리 스크립트 언어
    (def_rule(current-age == castle-age)(building-type-count castle == 1)=>(set-goal GOTO_NEXT_AGE TRUE)(chat-local-to-self "Trying to get to the Imperial Age*)(set-goal CAN_ATTACKFALSE)(disable-self)(def_rule(food-amount<=400)(can-buy-commodity food)(goal GOING_FOR_WONDER FALSE)(goal GOTO_NEXT_AGE FALSE)=>(set-goal RESOURCE_STATERESOURCE_STATE_NEEDFOOD)(chat-local-to-self *Need Food!*)

      • 위 스크립트 언어에서 사용되는 예약어 중 goal은 게임의 전략 목표를 지정하는 boolean 형 변수값이며, 이를 지정하기 위해 set-goal이라는 예약어를 사용
      • 위 스크립트 중 두 번째 규칙 정의에서 food의 양이 400보다 작거나 같을 경우 생필품으로 음식을 살 수 있으며 goal은 ONDER 상태로 가거나 다음 AGE로 가는 것을 FALSE로 처리하고 set-goal을 통해 “Need Food!" 메시지를 보내는 것을 나타낸 것

    • 기타 장르
      • 사실상 어떤 게임은 그 장르를 명확히 구분 지을 수 없음
      • 그 대표적인 예로 B&W(Black and White)를 들 수 있음
      • 이 게임에 등장하는 캐릭터는 에이전트 기능이 포함되어 있으며 이 에이전트는 어떠한 원인에 의해 특정한 행동을하도록 함
      • 대부분의 RPG 게임에 등장하는 캐릭터가 이유 없이 주인공을 해치려 하는 것과 같은 무의미한 행동은 없어야 함
      • 다음은 B&W의 에이전트가 갖고 있는 학습기능의 특징
        • 플레이어의 피드백으로부터 학습
        • 플레이어로부터 주어진 직접 명령을 학습
        • 다른 캐릭터로부터 학습
        • 외부의 반응으로부터 캐릭터 자체가 학습
      • B&W에서는 믿음(Belief), 욕망(Desire), 의도(Intention)와의 관계를 설정하고 캐릭터의 계획된 행동을 얻음
      • 또한 아키택쳐의 구현을 위해 동적인 결정트리를 사용
      • 외부로부터의 반응에 따라 얻어지는 피드백을 보관하고 이러한 데이터를 바탕으로 결정트리를 게임 도중에 변경하는 방법을 사용하여 학습 기능을 구현

최신 기술의 전망

  • 신경망(NN : Neural Network)
    • 신경망은 인간의 신경세포 동작을 모방해서 외부 입력에 따른 결과를 출력하는 방법으로, 여러 입력에 적당한 가중치를 주어 얻어진 결과에 따라 행동을 결정하는 방법
    • 신경망은 위 그림에서와 같이 외부 입력을 입력단에 있는 퍼셉트론에서 받아 출력단에 있는 퍼셉트론에 적당한 가중치를 주어 전달하는 방식으로 진행되며 결과가 촉발되는 경우에 이를 사용하는 방식
    • 신경망은 완전한 하나의 연산 시스템
    • 이것은 충분한 노드와 선분만 주어진다면 그것들이 컴퓨터가 할 수 있는 어떠한 계산도 할 수 있다는 것
    • 신경망의 가장 중요하고 흥미로운 기능중의 하나는 망을 훈련받을 수 있고 자율적으로 학습
    • 그러나 자율적으로 학습할 경우 우리는 그것이 이용하고 있는 결과들을 검사할 방법이 없으며 이러한 유형의 망은 훈련받은 망보다 훨씬 더 느리게 학습
    • 게임에서의 신경망은 다음과 같은 경우에 이용 가능
    • 우리가 어떠한 상태에 이르면 개체는 에너지를 찾아 지금의 위치로부터 이동하게 하는 어떤 상태를 가지고 있다고 할 경우, 우리는 근처에 강한 적이 있을 때 에너지를 찾아 지금의 이동하기를 원할 것
    • 아니면 적당히 강한 적이 근처에 있고 나의 에너지가 적을 경우도 마찬가지 일 것
    • 이러한 경우는 아주 많이 존재 할 수 있으며 우리는 이것을 다른 기법을 이용하여 작성할 수 있지만 신경망을 이용하여 작성 가능
    • 신경망으로의 입력 값이 되는 입력 상태 값으로 가지고 있다가 촉발되었을 때 우리의 개체를 에너지를 향해 움직이게 할 수 있는 어떠한 결과 값을 가질 수 있음
    • 이 경우, 행동은 입력에 대한 수백만의 조합 중에서 나오게 됨
    • 충분한 요인들이 목표 상태를 이끈다면 그것은 촉발 할 것
    • 신경망을 사용하고자 하는 아이디어 및 연구는 많이 진행되고 있지만 그 진행 과정상 처리 속도가 느리며 앞서 제시하였던 방법보다 눈에 띄는 결과를 얻기 어렵기 때문에 아직은 연구 대상으로서 남아 있는 부분이 많음

  • 인공 생명 (AI-Life)
    • 인공생명의 아이디어는 2001년부터 GDC(Game Developers Conference)에서 시도되고 있음을 알 수 있음
    • 이전의 여러 다른 인공지능 기법이 시도되었으나 성공하지 못한 것에 비해 인공생명 기술은 가능성이 있는 것으로 판정받고 있음
    • Half-Life와 Unreal과 같은 게임에서 Flocking 이론을 사용하여 게임에 등장하는 몬스터의 움직임을 구현한 것으로 발표되고 있음
    • Flocking 기법은 네가지의 간단한 규칙을 이용하여 실제 생물체와 유사한 결과를 얻어낼 수 있다는 장점을 가지고 있음
      • 분리(Separation) : 주변 보이드들과 충돌하지 않도록 방향을 돌림
      • 정렬(Alignment) : 주변 보이드들과 같은 방향을 가리키도록 함
      • 응집(Cohesion) : 주변 보이드들과의 평균 위치 쪽으로 방향을 돌림
      • 회피(Avoidance) : 주변의 장애물이나 적과 충돌하는 것을 피함
    • 크레이그 레이놀즈가 만든 보이드(Boid)는 새떼나 물고기떼, 또는 벌떼와 비슷한 집단 행동처럼 보이도록 1987년 SIGGRAPH에 제출된 논문에서 처음 등장한 기법
    • 각각의 보이드는 매 순간마다 자신의 주변을 다시 평가할 뿐, 무리에 대한 정보는 가지고 있지 않음
    • 무리의 보이드들은 어디로 가는지에 대해서 전혀 알지 못하지만, 모든 보이드들은 하나의 무리로서 움직이고, 장애물과 적들을 피하며, 다른 보이드들과 보조를 맞춰서 유동적으로 이동하게 됨

  • 인공 감정 (Artificial Emotion)
    • 인공 감정 AE : 감정과 성격의 모방
      • 진짜 같은 환경을 구현하는 데 있어서 감정이 살아있는 캐릭터는 결정적인 역할
      • 특히 그 캐릭터가 실제로 정을 가지고 있는 사람들과 상호작용을 할 때에는 더욱 그렇다
      • 감정은 로봇같이 기계적인 행동과 살아있는 사람같은 행동의 차이를 가져오는 필수적인 요소
      • 전통적으로 애니메이터들은 이미 정해진 룰에 따른 행동을 어렵게 구현
      • 이러한 접근으로 각각 고유한 성격과 감정을 가진 자율적이고 인터액티브한 캐릭터를 만들어 내는 것은 불가능
      • 진정으로 인터액티브한 캐릭터는 인공 감정(AE) 이라고 부르는 것에 기반한 기술을 이용하여 자율적인 행동이 이루어지게 할 수있어야 함
      • 몇몇 작품을 제외하고는 현재의 게임 산업에서 유의미한 정도의 깊이를 지닌 자율적인 AE를 거의 찾아볼 수가 없음
      • 현재 게임 산업은 플레이어가 게임을 하는 과정에서 모든 것을 죽이거나 정복해야 하는 장르들이 압도적인 우세에 있음
      • 상대방은 감정이 거의 필요 없으며, 단지 어느 정도의 공포나 단순한 이동 패턴을 드러내는 공격만이 요구
      • 인터액티브 게임에서 감정은 사회적인 기능을 수행
      • 정서적인 반응은 우리가 만나게 될 캐릭터들을 실제같고 매력적이게 하기 위해 쓰임
      • 예를 들어, 만약 우리가 가상의 술집에 들어갔고, 술집 안에 있는 모든 캐릭터들이 분명한 성격을 가진다면, 그 장면은 매우 매력적이고 실제 같은 사회적인 상황이 연출 될 것
      • 만약 캐릭터들이 아무런 감정을 보이지 않는다면, 허구에 대한 우리의 몰입은 깨지게 되고, 우리는 우리만의 환상적인 세상이 아닌 컴퓨터로 생성된 가상의 세계에 있다는 것을 상기하게 될 것
      • 인공 감정의 결과로는 두 가지
        • 행동
          • 일반적인 범주에 속하며 캐릭터가 존재하는 상황의 맥락에 의존
          • 시뮬레이션의 행동 시스템에서 AE는 행동을 선택하고 (또는 선택하거나) 수정하기 위해 사용
          • 행동을 선택할 때, AE는 어떠한 행동이 캐릭터의 성격과 현재의 기분에 적합한 행동인지를 지시해 줌
          • 예를 들어 겁이 많은 캐릭터는 공격적인 행동은 전혀 하지 않으려고 하게 됨
          • 행동을 수정할 때 AE는 행동을 어떻게 이행하는지에 도움이 됨
          • 아주 내성적인 캐릭터라면 그러지 않겠지만, 사교적이고 외향적인 캐릭터라면 행동을 아주 적극적으로 표현할 것
        • 그러나 1차적인 AE의 사용은 손짓과 몸짓, 그리고 얼굴 표현 등의 활발한 제스처
        • 제스처
          • 우리의 감정을 바깥 세상에 알리는 하나의 방법
          • 제스처 없이 우리는 차갑고 단조롭고 감정이 없어 보일 것
          • AE에 의한 제스처들은 우리의 캐릭터들의 성격과 정서에 직접적으로 연결되어 있고, 일정한 패턴을 따르기 마련
          • 이러한 몸동작(또는 Body Language)은 캐릭터의 행동에 또 다른 입체감을 주며, 독특한 성격을 가진 자율적인 캐릭터의 창조에 생기와 깊이를 불어넣어 줄 것

  • 유전자 알고리즘(Genetic Algorithm)
    • 많은 게임 인공지능 담당자들은 유전자 이론의 가능성은 있으나, 아직은 게임에 사용할 수 없다는 생각지 지배적
    • 여러 유전자 관련 기법들은 다음과 같은 핵심 내용을 다룸
      • 첫 번째로는 표현형을 어떠한 압축적이고 간결한 '코드'들로 기술한다는 것
        • 즉, 체력(HP : Health Power), 마법력(MP : Magic Power), 속도, 크기, 모습 등등을 보통은 클래스나 구조체의 어떤 변수들로 저장하지만, 유전자 기법에서는 그것들을 어떠한 일련의 바이트 배열이나 숫자 배열로 표현
        • 또한 그 배열들을 적절히 복사, 교환, 변형(돌연변이)함으로써 새로운 표현형을 얻게 됨
        • 유전자 관련 기법들은 대부분 유전자 코드의 그러한 조작 방법에 기반
      • 두번째는 유전자들의 교환, 변형을 반복함으로써 개발자도 놀라게 할만한(즉 미리 구현되지 않은) 새로운 어떠한 특성이나 해법이 생겨난다는 점이 '진화'라는 관점에서 본 유전자 기법의 강점
        • 게임 프로그래밍에 유전자 기법을 도입할 때, 첫 번째 부분은 별 무리가 없으나, 두 번째 부분은 다음과 같은 이유로 문제가 발생
        • 학술적 측면의 유전자 알고리즘은 사용자와 상호 작용하는 실시간 애플리케이션을 만드는 것이 아니기 때문에 진화의 세대수가 그리 중요하지 않음
        • 따라서, 연구 목적의 GA에서는 수천 수만 세대가 지나서야 원하는 해답을 얻었다고 해도, 그것이 기존 알고리즘으로 해답을 얻는 것보다 효율적이기만 하면 됨
        • 그러나 게임에서는 그것이 불가능
        • 간단히 말하면, 어떤 몬스터의 진화를 뚜렷이 느낄 수 있으려면 게임을 엄청나게 반복해야 하는 문제점이 발생하기 때문
        • 그렇다면 '신의 손'을 개입시키거나 하는등의 진화를 촉진시키는 과정을 적용한다면 가능할까?
        • 이것은 GA의 원래 의도를 지키면서 진화를 촉진시키는 것은 매우 어려운 문제
        • 자칫 GA의 적용 보다는 그냥 시간이 지날 수록 HP나 공격력이 증가하는 것뿐일 수도 있게 되어 버리기 때문
        • 유전자 알고리즘의 원래 의미는 작은 알고리즘 조각(유전자)들이 서로 교배하면서 세대를 거듭하고, 그 과정 동안 효율적인 알고리즘은 살아남고 효율적이지 못한 알고리즘은 대가 끊기고, 그럼으로써 가장 효율적인 알고리즘이 '튀어 나오게' 하는 것일 것
        • 이것을 게임에 적용시킨다면, 예를 들어 유전자는 빌드오더(Build Order : RTS에서의 빌딩 건설 순서로 봐도 무관)를 의미하고, 싸움에 이긴 빌드오더만이 대를 잇게 함으로써 효율적인 빌드오더를 찾는 것이 될 수도 있겠음
        • 그러나 얼마나 반복해야 뚜렷한 진화가 나타나는가 라는 문제를 해결하지 않는 한 게임 플레이에 적용하기란 한계가 있음
        • 그래서 유전자 알고리즘을 게임 플레이에 적용하기보다는 게임 개발 도중 게임의 밸런스를 조정하는데 적용하는 시도 있으나 큰 성과는 없는 것으로 알려지고 있음

  • LOD(Level-Of-Detail)
    • LOD이라는 개념은 그래픽 이외의 분야에서도 많이 쓰이는 최적화 방법
    • LOD는 3D 그래픽의 랜더링 관련 기술로서 현재 대부분의 게임 엔진들이 멀리 떨어져 있는 객체를 빠르게 랜더링하는데 사용되고 있음
    • LOD의 개념은 생각보다 간단하여, 카메라로부터 멀리 떨어져 있는 객체는 다각형 수가 적은 모델을 사용(다각형의 수를 줄이는 등의 과정을 거쳐)하고, 객체가 카메라와 가까울수록 다각형 개수가 많은 모델을 사용한다는 것
    • 이는 게임의 시각적 품질을 유지하면서 랜더링 속도를 개선함으로써 게임 전체의 퍼포먼스를 향상시키는 결과를 얻을 수 있음
    • 최근 들어 이러한 개념을 AI 분야에서도 적용할 수 있다는 사실이 인식되고 있음
    • AI를 위한 LOD 기법의 전략
      • 에이전트와 카메라나 플레이어와의 거리 또는 연관성에 따라 AI의 처리 빈도 변화
      • 연관성에 따라 에이전트 알고리즘의 복잡성의 변경
      • 여러 에이전트들의 개별적 특성이 플레이어에게 미치는 영향에 따른 알고리즘 선택
    • 결과적으로 플레이어의 주목을 끌지 못하는(화면상에 보이지 않거나 전혀 다른 세계에 있는 경우) 부분에 대한 부담을 줄여 작업을 최소화하는 것
parent.ContentViewer.parseScript('b_13956877');

by 언식 | 2008/04/14 22:40 | Game AI | 트랙백 | 덧글(2)

E-sport게임 분석에 관한 개요랄까..

애초 개인적으로 하려고 했던 분석의 내용을 스터디 팀에서의 깊이 있는 발표의 필요성, 또 그에 따른 소모임 활성화 안에 따라, 어떻게 하면 팀으로 발표할 수 있을까 고민해보고 간단히 안을 적은 페이지.
우측에 XXtime으로 적은 것은  1명의 발표자가 30~1시간 발표하는 것을 기준으로 잡은 것이다 예를 들자면,

소모임 구성이 결정되고, 발표, 분석 내용을,  1. E-sports각국 현황(1time),  2. E-sports성공요인 (1time), 3.스타크래프트 게임자체의 재미 (4time) 4, 스타크래프트 게임이외의 요소 (2time)로 결정했다면.

총 1+1+4+2=8time이 필요하고, 소모임 인원이 2명이면 4번의 발표,(1달에 1번 발표를 유지하면 4달동안!), 3명이면 3번의 발표가 필요하다.

by 언식 | 2008/04/11 02:05 | Game Design | 트랙백 | 덧글(0)

e스포츠, 축구에 이어 가장 즐겨보는 스포츠 2위

한국e스포츠협회(회장 김신배, www.e-sports.or.kr)가 실시한 온라인 설문조사 결과 e스포츠는 가장 즐겨 시청하는 스포츠 프로그램에서 축구에 이어 2위를 차지했다. 또, 프로리그를 후원하고 있는 신한은행이 e스포츠리그 스폰서 기업 가운데 가장 높은 인지도를 보였으며, 공군은 프로게임단 ACE 창설을 통해 높은 이미지 개선효과를 거둔 것으로 조사되었다.

이 같은 내용은 한국e스포츠협회가 전문 리서치업체와 함께 전국 13-39세 남녀 800명을 대상으로 3월 14일에서 20일까지 온라인을 통해 실시한 설문조사 결과로 나타났다.

일반인을 대상으로 e스포츠에 대한 인식 및 이용행태를 분석하고 리그 스폰서십에 대한 효과를 파악하기 위한 목적에서 실시된 이번 조사 결과, e스포츠에 대한 인지와 위상 강화, e스포츠의 높은 기업이미지 제고효과 및 스폰서십 효과 그리고 여전한 스타크래프트의 높은 인지도를 확인할 수 있었다. 이번 조사는 여가생활에서 e스포츠의 위상, 스포츠활동으로서의 e스포츠에 대한 인식 및 향후 가능성, e스포츠 이용실태, e스포츠의 기업이미지 제고 효과 그리고 리그 스폰서활동에 대한 반응 등 총 5가지 항목에서 실행해졌다.

신한은행, e스포츠리그 스폰서 기업 인지율 1위
e스포츠리그를 후원하는 여러 스폰서들 가운데 ‘프로리그’를 후원하고 있는 신한은행이 34.2%로 KTF(26.8%), 박카스(21.1%), 곰TV(20.6%), 스카이(16.7%) 등을 제치고 '스타크래프트' 리그 스폰서 가운데 가장 높은 인지율을 가지고 있는 것으로 조사되었다. 신한은행의 프로리그 스폰서에 대해서는 전반적으로 어울린다는 반응(긍정 53.1%, 보통 36%)이었으며, 특히 20-24세 남성층에서 매우 높은 긍정적 반응(70%)이 나타났다.

신한은행이 스폰서로 어울리는 이유에 대해서는 '대기업으로서 재정적 도움'이 가능하다는 응답이 가장 많았으며, 기업인지도 향상에 좋고 서로 이미지가 잘 어울린다는 답변이 뒤를 이었다. 신한은행의 스폰서 이후 이미지 변화로는 ‘젊은’, ‘활동적인’ 이미지가 증가했다는 답변이 가장 많았으며, '새로운', '현대적인', '자유로운' 등의 이미지 형성 역시 상대적으로 높은 비율로 조사되었다.

e스포츠, 축구에 이어 가장 즐겨보는 스포츠 2위
한편, 이번 조사에서는 가장 즐겨 시청하는 스포츠 프로그램(복수응답)에서 e스포츠(33.7%)가 축구(57.3%)에 이어 2위를 차지하며 대중적으로 인기 있는 컨텐츠로 자리 잡았음이 증명되었다. 특히 이는 야구(31.8%), 이종격투기(20%), 농구(19.4%) 등 기존 대중 스포츠를 제쳤다는 점에서 e스포츠의 성장을 단적으로 증명하는 예라 할 수 있다.

조사에 임한 응답자의 약 80% 정도가 방송 매체를 통해 e스포츠 경기를 시청한 경험이 있다고 응답했으며, 주로 시청하는 종목으로는 스타크래프트가 86%로 2위를 차지한 카트라이더 4.4%에 비해 압도적인 비율을 차지했다. e스포츠 현장 관전 경험은 12.8%로 나타났으며, 현장 관전 경험자 대부분이 역시 스타크래프트 경기를 관람한 것(94.1%)으로 조사되었다.

e스포츠 인지율 68.8%로 집계, e스포츠 정보습득 경로는 TV/CATV 비중 압도적
전체 응답자 가운데 ‘e스포츠’ 용어를 듣고 이 말을 바로 이해할 수 있는 순수 인지율은 68.8%로 나타났으며, 특히 남자의 경우 인지도가 80% 이상으로 집계되어 e스포츠라는 용어가 주요 수용자 층에 잘 알려져 있음이 확인되었다. 또한, ‘e스포츠’에 대한 순수 인지자의 42%가 e스포츠에서 스타크래프트를 연상하는 것으로 나타나 ‘e스포츠=스타크래프트’라는 등식이 성립할 만큼 스타크래프트의 높은 인지도가 드러났다. e스포츠 인지경로와 e스포츠 정보습득 경로에서는 모두 TV/CATV의 비중이 가장 높은 것으로 조사되었으며 주위 사람의 권유 등 구전효과는 상대적으로 낮았다.

'e스포츠가 스포츠라고 생각하십니까'를 묻는 질문에는 44%의 사람들이 긍정을 표했으며, 32.8%의 사람들이 보통이라고 답했다. e스포츠가 스포츠라고 생각하는 이유에 대해서는 선수간 경쟁을 통해 승패를 가리는 경기라는 점이 가장 높은 지지(42.1%)를 받았으나 신체적인 활동이 적다(61.6%)는 점이 이러한 인식을 위협하는 가장 큰 장애요소로 나타났다. 응답자들은 전반적으로 e스포츠가 심리적 발전 부분에서는 일반 스포츠와 어느 정도 유사성이 있으나 신체적 발전에 있어서 그 유사성이 낮다고 평가해 이러한 인식을 변화시키는 것이 시급한 과제로 조사되었다.

81.6%의 응답자, e스포츠 경험했다
총 조사 응답자 가운데 무려 81.6%의 사람들이 e스포츠 종목을 해 본 경험이 있다고 답변해 e스포츠의 높은 대중적 인기를 증명했다. 주 이용 e스포츠 종목으로는 스타크래프트가 68.9%로 역시 압도적인 우위를 차지했으며, 카트라이더와 서든어택이 뒤를 이었다. 대부분의 응답자들은 친구의 소개 및 권유로 해당 종목을 시작했다는 답변(72.9%)이 많았으나, 스타크래프트 주 이용자의 경우 해당 종목의 대회나 방송 리그를 보고 시작하게 된 비율이 상대적으로 높게 나타나(12.8%, 전체 종목 평균은 7.8%) 실제 경기 시청이나 관람을 통한 간접 학습의 유입 효과가 확인되었다.

SKT T1과 공군 ACE, 높은 인지도와 이미지 제고 효과 거둬
스타크래프트 리그에 대한 인지도는 68%로 높은 인지율을 보였으며, 특히 남성의 경우는 전체 80%, 20대 남성 85% 이상의 인지율을 보여 젊은 남성층에게 매우 대중적인 것으로 나타났다. 스타크래프트 프로게임단에 대한 인지도 조사에서는 SKT T1이 50.6%로 가장 높은 인지율을 지닌 것으로 조사되었으며, 그 다음으로는 KTF MagicNs, 삼성전자 KHAN, 공군 ACE의 순으로 나타났다. 인지율 조사의 경우 최근 성적 보다는 오래되고 인기 있는 선수가 있는 팀이 보다 높은 인지율을 지니는 경향을 보였다.

e스포츠 각 프로게임단의 모기업 이미지 변화에 대해서는 프로게임단 운영을 통해 모기업에 대한 이미지가 긍정적이 되었다는 반응이 전반적으로 높게 나타났으며, 모기업 이미지가 상대적으로 많이 긍정적으로 변한 팀은 '공군 ACE', 'MBC게임 HERO', 'SKT T1'으로 조사되었다. 특히, 공군 ACE의 경우 기업은 아니지만 젊은 층에게 공군의 이미지 개선에 크게 영향을 미친 것(이미지 개선에 대한 긍정적 답변 41.2%)으로 드러났다.


출처: 베타뉴스

by 언식 | 2008/04/08 09:00 | Game industry | 트랙백 | 덧글(0)

GD_study 개선 방향 고민...


GD_study 개선 방향 고민해본 것...

첨부파일(프리 마인드맵)
GDStudy_improvement.mm




by 언식 | 2008/04/03 20:58 | Fragrance of Life | 트랙백 | 덧글(1)

오카모토의 프로듀서론 ”개조와 창조”

오카모토의 프로듀서론 ”개조와 창조”


최근에는 『GENJI』시리즈를 다루고
캡콤 시대에는 수많은 명작의 탄생에 참여해 온 게임 리퍼블릭의 오카모토 요시키가
2008년 2월 21일에 GDC 2008의 강연을 행했다.
보통 농담을 섞은 토크를 자주 하는 오카모토이지만
이번 세션은 ”개조라고 하는 창조”라는 보통의 이미지와는 다른 극히 성실한 제목으로.
서두에서도
「모여 준 여러분에게는 기쁘지 않은, 즐겁지 않은 이야기가 될지도 모릅니다.
새롭지 않은 이야기일지도 모릅니다.
이번은 여러분이 가진 지식을 체계화해 정리할 수 있는 이야기를 하고 싶습니다」
라고 지금까지의 오카모토와는 다른 낮은 톤으로 강연은 시작되었다.




▲ 게임 리퍼블릭의 오카모토 요시키가 ”개조라고 하는 창조”라는 테마의 세션을 실시.
「새로운 최첨단의 기술을 뒤쫓는 것은 담보도 크지만 리스크도 크다」라고.



우선 오카모토는 자기 자신을 새로운 최첨단 기술을 추구하는 타입은 아닌 것을 밝히고
「기존의 컨텐츠나 오락 작품의 가능성을 간파해 맘에 드는 부분을 뽑아내고 개조하는 구조를 설명합니다」라고.
「이정도만 들으면 비겁한 느낌이 들지도 모릅니다」라고 하면서 세계적으로 유명한 작품을 ”개조”의 일례로서 들었다.




▲ 영화 『스타 워즈』를 「개조에 의해서 창조된 최대의 오락 작품」이라고.


그 일례로 거론된 것은 영화 『스타 워즈』.
일본이 자랑하는 영화 감독, 쿠로사와 아키라의 영화 『숨겨진 요새의 세 악인』에서
영감을 얻은 캐릭터가 R2D2와 C3PO인 것은 일본의 올드 영화 팬에게는 유명한 이야기이지만
『스타 워즈』는 다른 영화나 소설 등을 기초로 하면서도 참신한 영상에 의해서
완전히 새로운 컨텐츠로서 전 세계의 사람들에게 받아 들여진 것을 소개.
오카모토는 「흉내내기에 자신있는 일본인인 내가 (스타 워즈의 아버지)
죠지 루카스의 흉내를 내지 않을 이유는 없다」라고 하며
이 샘플을 살려 어떻게 게임 업계에서 히트작품을 만들어 냈는지 말했다.

오카모토가 『스타 워즈』를 참고로 해 만들었다고 하는 것이 『바이오해저드』 시리즈.
첫번째 작품은 오카모토가 「마지막에 밖에 관련되지 않았다」라고
두번째 작품은 기획 스타트 때부터 종사해 시나리오의 프로듀스에 주력 했다고 한다.
히트한 시리즈 첫번째 작품을 이후에도 계속해 가기 위해서
오카모토는 「이후 시리즈가 계속 되기 위해서도 제대로 된 이야기를 만들 필요가 있었다」라고 해
극작가, 故 스기무라 노보루를 기용한 에피소드를 말했다.
故 스기무라의 강력한 시나리오에 의해서
「시리즈 작품으로서 속편이나 파생 작품을 만들 수 있었다」라고
오카모토는 최대급의 찬사를 보냈다.




▲ 영화 『좀비』나 PC게임 『어둠 속에 나 홀로』등에서 힌트를 얻었다고 하는 초대 『바이오해저드』.
그것이 많은 명작으로 연결되었다.



그 후 『바이오해저드』 시리즈는
액션성을 추구한 『귀무자』나 상쾌감을 추구한 『데빌 메이 크라이』로 모습을 바꾸었다고 오카모토는 말한다.
「게임성이 다른 타이틀에도 불구하고 조작 감각은 비슷하고
새로운 조작을 생각하는 코스트 삭감을 실현할 수 있었고
동시에 유저의 ”새롭게 조작을 익힌다”라는 부담을 경감할 수 있었다」라고
게임성은 새로워도 단순한 오리지널 게임과는 다른 것을 소개했다.

오카모토의 실례는 계속 되어 이야기는 『스트리트 파이터 Ⅱ』 탄생 비화에.
본작은 원래 오카모토가 관여하지 않은 아케이드 게임 초대 『스트리트 파이터』의 속편으로서 발매된 타이틀.
속편이라고는 해도 「초대 『스트리트 파이터』를 만든 사람들이 회사를 그만둬서
처음부터 검토할 수 있었다」라고 오카모토는 당시를 되돌아 본다.
초대 『스트리트 파이터』는 압력 감지 버튼을 사용해 기술을 내는 방식으로
유저로부터도 받아 들여지고 있었지만
「코스트 삭감이나 직감적인 조작을 실현하기 위해」 레버와 6개의 버튼에 의한 조작으로 바꾼 것이나
캐릭터의 재검토, 혼자서 즐길 때 적 캐릭터를 랜덤하게 출현시킨다고 하는
세세한 ”개조”가 한 시대를 쌓아 올린 요인이라고 오카모토는 분석했다.




▲ 히트 했었던 아케이드 게임의 초대 『스트리트 파이터』를 한층 더 개조하는 것으로
대전 격투라고 하는 장르로 시대를 쌓아 올린 『스트리트 파이터 Ⅱ』.



그 외에도 오카모토는 캐릭터 디자인이나 스태프의 이미지 공유, 스태프 편성에 이르러까지
”개조”가 키워드가 되는 말을 했다.
캐릭터 디자인은 「만화나 영화 등을 참고로 해 주인공 이외에 몰개성적이었던
초대 『스트리트 파이터』의 캐릭터들을 주인공보다 개성적으로 했다」라고 하고
「가상 세계에서 그래픽은 유저의 눈을 끌어당기는데 중요한 요소」라고 역설했다.
또 이미지 공유에 관해서는 개조하는 원 재료를 토대로 해 스태프들이 이미지화 하면
작품의 방향성이 정해지기 쉽다고 이점을 말하고
「유저도 인터페이스 등의 이미지가 하기 쉬워져 안심하고 구입하는 동기부여로도 된다」라고 했다.




▲ 『스트리트 파이터 Ⅱ』 제작 스태프의 역할 등을 설명한 것.
스태프의 구성에 대해 오카모토는「뛰어난 재능을 가진 사람 만으로는 잘 되지 않는다.
그것을 지지하는 실무적인 사람이 필요하게 된다」라고 말했다.





▲ 그림의 A로부터 개조가 시작되어 C가 가장 밸런스가 좋은 상태(노란 사각형은 유저의 수).
오카모토는「복잡화 한 것을 단순화 하는 것은 어렵다.
요소를 뽑은 것 뿐이라면 유저가 손해 본다는 감각에 빠지기 때문에.
단순화 하기 위해서는 뽑은 요소를 보완하는 부가가치가 필요」라고 설명했다.



「저는 아이디어를 내는 것보다도 관찰이나 조정에 자신있는 사람입니다.
그리고 항상 유저와 스태프의 기분을 헤아리고 있습니다.
스태프가 느긋하게 일할 수 있도록, 작품에 결점이 생기지 않게, ”개조”의 작업을 계속한다.
그리고 너무 힘차게 달리지 않게, 각각의 스태프가 스스로 눈치채도록 유도하는 것이 저의 일 입니다」

「게임 리퍼블릭은 유능한 사원이나 파트너를 찾고 있습니다!
저의 강연을 듣고 흥미를 가진 사람은 꼭 저를 찾아 주세요 (웃음)」
이라고 최후는 오카모토답게 농담으로 회장을 들끓게 했다.



[ファミ通.com]

by 언식 | 2008/03/13 02:03 | Game Design | 트랙백 | 덧글(1)

Pro Game Dev Tips: Play Testing

 Play testing video games is similar to focus testing other products. The basic goal of play testing is to improve the game by watching new users play it and recording data about what works and doesn't. Play testing is not the same as bug testing or functional testing, as its known in software development. If anything, it's closer to usability testing. [For a thorough explanation of play testing, see "Beyond Psychological Theory: Getting Data that Improve Games"(Word document download) or visit the Games User Researchweb site.]

I was first introduced to play testing while working on David Douillet Judo, a mid-sized combat sports game developed at 10Tacle Studios Belgium, where I am a game designer. The development cycle was only one year, and play testing started six months before release. We planned to have about 200 testers for approximately 40 sessions.

Using David Douillet Judo as my point of reference, I've come up with 10 tips to help you -- less experienced game designers and student game-makers -- achieve greats play testing results while learning how to organize play test sessions at the same time. The tips are based on my empirical data and experiences, and may diverge from usual playtesting methods but I assume you can figure out what's relevant to you and your game project.

At small studios, the job of arranging for and managing play testing often falls on the designer. I learned most of what I know about play test management from Pascal Luban, the play test manager on Splinter Cell Chaos Theory (multiplayer) for Ubisoft, who helped me set up small in-house sessions.

Play tests are a matter of people and psychology. Every manager has his or her own way to drive play test sessions, and there is no good or a bad way to do it, taking into consideration a few simple rules and tips.

1. Know the Game
"Knowing the game" means being 100 percent clear in your understanding of all aspects of the game, from the target audience to the experience the game designer is trying to convey. Because I was both the game designer and play test manager on David Douillet Judo, the goals for the game were very clear to me.

Even if you aren't the designer, the better you know the game, the more useful your feedback to the development team will be once the play test data are collected. Part of your job as play test coordinator is to solicit recommendations from players, and to sort them out efficiently, you have to understand all the needs of the project and what will make it successful.<