분단史 ‘한맺힌 비극’
‘북파→남파→자수→사형’ 분단史 ‘한맺힌 비극’

[경향신문 2006-03-30 09:36]

‘일제 관동군→북한 인민군→육군 첩보부대원→북파→남파간첩→자수→사형선고.’ 영화라고 이보다 더 극적일까. 항간에 소문으로만 떠돌던 이른바 ‘역용공작’(逆用工作) 사례가 문서로 처음 확인됐다. 역용공작이란 북측이 북파공작원을 포섭해 다시 간첩으로 남파하는 것을 말한다.

주인공은 1955년 북파된 심모씨(북파당시 30세). 그의 이같은 행적은 40여년간 실종된 아버지의 행방을 추적한 아들 한운씨(57·사진)가 육군 고등검찰부로부터 지난해 4월 입수한 아버지의 육군고등군법회의(1960년 3월23일) 판결문을 통해 드러났다. 시시각각 다른 군복을 입고 전장을 누빈 심씨의 인생역정은 식민통치와 분단이라는 조국의 비극적 상황을 여실히 반영하고 있다.

경향신문이 단독입수한 이 판결문에 따르면 심씨는 강원 철원에서 태어나 1943년 일제 관동군에 입대한다. 그때 그의 나이는 18세. 당시 생계난 탓에 관동군에 입대하는 청년들은 흔했다.

해방과 함께 귀향한 그는 45년부터 인민보안대원으로 활동하면서 생계를 잇게 된다. 북위 38도선 이북에 위치한 그의 고향은 북한 점령지. 때문에 군출신인 심씨가 북한 당국에 활용됐을 것으로 보인다. 하지만 49년 ‘밀항방조죄’라는 죄목으로 인민재판에서 징역 6월형을 받아 축출당하면서 생계에 위협을 받는다. 당시 맏아들 한운씨는 첫돌도 지나지 않은 상태였다.

심씨는 50년 한국전쟁에 의해 다시 인생의 전환기를 맞는다. 심씨는 그해 10월 철원을 수복한 국군을 도와 치안대장으로 활약한다. 이후 그는 후퇴하는 국군을 따라 남하한 뒤 육군 첩보부대에 입대해 첩보업무를 수행한다. 심씨는 북한군을 생포하기도 하는 등 수많은 전공을 세운 것으로 전해졌다.

아들 한운씨는 “아버지는 총상을 입고서도 전장을 떠나지 않는 등 남달리 용맹했다는 얘기를 아버지 동료들로부터 들었다”고 전했다.

심씨는 55년 9월 부하 6명을 인솔한 채 북파됐다 ‘투항’한 것으로 기록돼 있다. 북측은 심씨를 그해 11월 남파간첩으로 선발해 약 2년간 교육을 시킨 뒤 57년 10월 육군첩보부대의 실태 보고, 정치요인 살해 등의 지령을 주고 남파시켰다.

심씨는 그해 10월6일 서울에 잠입했으나 이틀 만에 자수했다. 정황상 북측의 지령을 하나도 이행하지 않은 상태였지만 군법회의는 그에게 사형을 선고했다.

판결문은 이처럼 심씨의 행적을 기록하고 있지만 그의 행방은 여전히 오리무중이다.

아들 한운씨는 “지난해 45년 만에 아버지의 사형 판결문을 받고, 실제 집행됐다는 기록을 찾기 위해 곳곳에 문의를 했으나 관련 기관들은 ‘소관이 아니다’ ‘자료가 없다’며 사실을 확인해 주지 않고 있다”고 말했다.

그는 “아버지가 살아계신지, 돌아가셨으면 유골이라도 돌려줘야 할 것 아니냐”며 당국의 ‘무책임성’과 ‘모르쇠’에 분통을 터뜨렸다.


〈장관순기자 quansoon@kyunghyang.com〉
by 갈리프 | 2006/03/30 10:27 | [Concerns] | 트랙백 | 덧글(7)
더게임스 -한국 온라인게임에 영향을 준 거장들
"그들이 있었기에 우리가 있다"

우리나라는 현재 온라인게임 강국으로 세계적으로 인정 받고 있다. 그렇다고 이 많은 작품들이 어느날 갑자기 하늘에서 우수수 떨어진 것은 아니다. 오늘에 이르기까지 수많은 개발자들의 밤샘과 고통이 수반됐기 때문에 이뤄졌다.

그리고 한 가지 더. 국내 개발자들에게 영감과 아이디어를 불어 넣어 준 세계적인 거장들이 없었다면 지금의 한국산 온라인게임은 존재하지 못했을 것이다. 도대체 그들은 누구이며 어떤 작품을 만들었는가. 또 온라인게임 제작에 어떤 영향을 줬는가.

알렘 애드햄과 마크 모아헴, 프랭크 스피어스는 블리자드의 창업자이자 핵심 개발자다. 현재 대표 이사와 부사장을 맡고 있으며 개발도 함께 참여하고 있다. 블리자드 개발자들은 외부로 자신의 모습이 드러나는 것을 극도로 싫어한다.

그래서 소위 말하는 얼굴 마담으로 빌 로퍼를 내세웠던 것인데 많은 사람들이 그를 핵심 개발자로 잘못 이해하고 있다. 이들이 처음 창업했을 때 사정은 그리 좋지 않았다. 재정 압박이 심해 직원들의 급료를 지불하기 위해 신용 카드를 이용했을 정도다. 상황이 반전된 것은 ‘워크래프트’가 성공하면서부터다.



국산 온라인 게임의 교과서 "마크 모아헴"

이들이 국내 온라인게임에 준 영향은 실로 막대하다. 바로 ‘스타크래프트’과 ‘디아블로’ 때문이다. ‘스타크래프트’는 더 이상 설명이 필요없는 전략시뮬레이션게임이다.

이 작품이 없었다면 PC방은 존재하지 않았을 것이고 설사 만들어져도 지금처럼 붐을 일으키지는 못했을 것이다. ‘스타크래프트’가 전국의 PC방을 만들었고 이 기반으로 ‘리니지’ 등 MMORPG가 자리잡을 수 있었다. 정부의 인프라 구축 정책보다 게임 하나의 영향이 더 컸던 셈이다. 그리고 프로게이머와 e스포츠가 탄생했고 게임의 대중화에 큰 역할을 담당했으며 게임 케이블 방송까지 만들었다.

‘디아블로’는 한술 더 뜬다. 이 게임은 원래 콘도르라는 회사에서 기획됐으나 블리자드로 인수된 후 게임이 대폭 변경됐기 때문에 블리자드에서 개발한 것으로 인정하는게 옳다. ‘디아블로’는 패키지 게임이었지만 오늘날 한국형 온라인게임의 기반을 제공한 주인공이다.

이 작품은 배틀넷을 통해 멀티플레이가 가능했는데 이것이 바로 온라인게임의 아이디어가 집약된 시스템이었다. 배틀넷은 현재의 ‘게임 로비’ 역할로 유저들은 여기서 다른 유저와 채팅을 하고 정보를 교환하거나 팀원을 모집할 수 있는 기능이 있었다. 매우 획기적인 아이디어였고 ‘스타크래프트’도 이 시스템을 도입했다.

또 ‘디아블로’는 턴제의 롤플레잉 장르를 실시간 전투로 변경시켜 빠르고 박진감 넘치는 것으로 바꿔 놓았다. 여기에 아이템 산정 방식을 서버당 몇 개로 만들어 희소성을 유지시켰다. 최초의 아이템 현금 거래도 ‘디아블로’ 아이템이었다. 국내 최고의 온라인게임 ‘리니지’가 ‘디아블로’의 여러 가지 면과 매우 유사한 것은 결코 우연이 아니다.

‘디아블로’가 없었으면 ‘리니지’도 없었다.

프랭크 스피어스는 자신들의 성공에 대해 다음과 같이 말했다.

“첫 번째로 유저가 만드는 게임이기 때문에 그렇다. 여기는 게임을 진정으로 좋아하는 사람들이 모여서 작품을 만든다. 그래서 자신들이 직접 플레이 할 때 재미있는 게임을 개발하기 위해 노력한다. 두 번째 이유는 게임이 재미있기 때문에 유저들이 깊이 매료된다는 점이고, 마지막으로 기술보다 게임 플레이에 집중해서 개발하기 때문이다. ‘스타크래프트’가 처음 출시됐을 때 사람들은 왜 3D로 개발하지 않고 2D로 방향을 잡았는지 의문을 제기했다. 하지만 이 게임은 엄청난 성공을 거뒀다. 그것은 우리가 기술에 집착하지 않고 뛰어난 게임 플레이에 전력투구하기 때문이다.”



FPS 게임의 전설 "존 카맥"

현재 국내 최고의 인기를 누리며 매번 온라인게임 순위 1위를 기록하고 있는 ‘스페셜 포스’. 공식적으로 동시접속자수가 항상 10만명 이상을 유지하고 있는 인기작이다. 이 게임도 갑자기 땅속에서 솟아 난 것이 아니다. 누군가 FPS(일인칭 액션 게임)라는 장르를 만들었고 기반을 다졌기 때문에 가능했다.

존 카맥이 처음 일인칭 액션 게임 ‘울펜슈타인 3D’를 만들었을 때 전세계 개발자들은 깜짝 놀랐다. 2D 기반의 그래픽이었지만 실제 사람의 눈으로 보는 듯한 시점을 구현했기 때문이었다. 더욱이 가장 효율성이 떨어지는 도스 언어로 만들었기 때문에 동시대의 프로그래머들은 좌절할 수 밖에 없었다.

‘울펜슈타인 3D’는 최초의 FPS였으며 이후 그는 ‘둠’ ‘퀘이크’ 등을 만들어 진정한 의미의 3D 그래픽과 FPS를 완성했다. 또 게임 소스를 공개해 누구나 자신의 엔진을 기반으로 FPS를 만들 수 있도록 배려했다. 정보는 공유돼야 한다는 해커 정신에 입각해서였다. 존 카멕이 없었다면 ‘엑스틸’ ‘헉슬리’ ‘서든 어택’ 등은 존재할 수 없는 작품들이다.

존 카맥은 누구나 다 인정하는 천재였다. 중학교 시절 ‘울티마’를 처음 플레이하고 큰 충격을 받아 게임을 만들기로 결심한 그는 애플 컴퓨터에만 매달렸다. 오로지 독학으로 프로그래밍을 익혔고 고등학교에 올라서자 아르바이트로 프로그램을 만들었다. 대학에 진학했지만 배울 것이 없다고 판단해 2년만에 자퇴해 버렸다.

존 카맥은 피자 가게 점원으로 일하며 프로그래밍 아르바이트만 계속했다. 그러다 존 로메오를 만나 의기투합해 id소프트를 설립했고 여기서 전설이 시작됐다. 그가 만든 작품들은 하나같이 시대를 앞서가는 기술이었고 수많은 아류작을 양산시켰다. 또 ‘둠’에는 인터넷 멀티플레이를 지원하도록 만들어 유저들이 서로 상대방을 찾아 사살하는 방식을 선보는데 바로 배틀넷의 초기 아이디어였다.

실제 미국에서 존 카맥을 만나 봤을 때 그는 이런 말을 했다.

“게임 기술은 무한히 발전됩니다. 현실같은 그래픽도 곧 구현될 것입니다. 제가 만든 게임들은 그 시작을 알린 것 뿐입니다. FPS는 단순히 게임에 국한되지 않고 다양한 방면으로 활용되면서 그 진가가 발휘될 것입니다.”



MMORPG의 처음과 끝을 만든 사나이 "리차드 게리엇"

리차드 게리엇은 자타가 공인하는 세계 게임 개발자 가운데 정상의 사나이다. PC게임을 개발한 인물이라면 누구도 그의 영향을 벗어나지 못하며 그 어떤 작품도 리차드 게리엇의 이름 밑에 있다.

그는 어린 시절 팬터지 소설 ‘반지의 제왕’을 읽고 환상의 세계에 빠져 들었다. 또 이를 토대로 만든 주사위 보드 게임 ‘던전 앤 드래곤스’에 몰두했다. 그리고 고등학교로 진학해 애플컴퓨터를 처음 보곤 곧바로 자신의 할일이 컴퓨터 게임을 만드는 것이라는 걸 직감했다.

리차드는 교장선생님에게 컴퓨터 프로그래밍 과목을 만들어 달라고 졸랐다. 당시에는 프로그래밍 조차 생소했고 담당할 선생이 전혀 없었기 때문에 거절됐지만 리차드는 독학이라도 하겠다며 떼를 썼다. 결국 학교의 허락을 얻어 그는 아무도 신경쓰지 않았던 컴퓨터 언어를 홀로 익혔다.

졸업하고 대학에 입학한 후 컴퓨터 랜드에서 아르바이트를 했다. 그러다 틈틈히 만들었던 ‘아카레베스’를 별 생각없이 유통업자에게 넘겼는데 막대한 판매가 이뤄지면서 돈방석에 앉았다. 엄청난 성공을 거둔 리차드 게리엇은 본격적으로 개발자의 길을 걸었다.

그는 1982년 오리진 시스템을 설립해 드디어 ‘울티마’를 공개했다. 그리고 9탄까지 매번 시리즈를 선보였다. 여기서 주목할 것은 ‘울티마 온라인’이다. 당시만해도 온라인게임 개념 조차 극히 희박했을 때였고 MMORPG는 상상도 하지 못했던 시기였다. 이 게임은 세계적인 반향을 불러 일으켰고 MMORPG의 대중화를 선도했다.

‘울티마 온라인’은 MMORPG의 잠재능력을 모두 구현했다. 극한의 자유도와 전투, 마법과 환상의 세계, 커뮤니티 등을 고스란히 온라인게임으로 옮긴 불멸의 명작이다. 이 작품을 모르고 MMORPG를 개발하는 것은 마치 지도도 없이 무작정 세계여행을 떠나는 것과 같다고 할 수 있다.



캐주얼 게임의 '일인자' "미야모토 시게루"

최근 국내 온라인게임 시장은 캐주얼게임과 MMORPG가 치열한 경쟁을 펼치고 있다. 몇년 전에는 온라인게임의 주인을 MMORPG로 인정하고 있었으나 ‘카트라이더’가 급부상하면서 이러한 공식은 깨졌다.

이 작품은 쉽고 간단한 조작과 재미있는 플레이로 남녀노소 누구나 즐겼다. 흔히 ‘카트라이더’는 ‘마리오 카트’와 유사하다는 논란이 있는데 ‘마리오 카트’는 미야모토 시게루라는 사람이 만들었다. 단순히 국내 인기 게임과 유사한 작품을 먼저 만들었다는 것에 불과할까. 그건 그를 몰라서 하는 소리다.

그는 일본 게임 산업을 일으킨 주인공이며 수많은 히트작으로 게임을 예술로 승화시켰다. 북미에서는 콘솔게임과 닌텐도를 거의 동일한 단어로 사용하는데 미야모토 시게루가 없었으면 불가능한 일이다. 그는 ‘슈퍼 마리오’ 시리즈와 ‘젤다의 전설’로 게임이란 무엇이며 나가야할 방향을 제시했고 지금까지 그 영향력은 막강하다.

게임은 재미가 있어야 하고 그 재미란 어디서 솟아 나는지 세계에서 가장 정확하게 아는 사람이 바로 미야모토 시게루다. 온라인 캐주얼게임으로 승부하고 싶다면 가장 먼저 이 사람의 작품을 플레이하는게 순서다.



롤플레잉에 생명을 준 남자 "사카구치 히로노부"

MMORPG는 RPG 즉 롤플레잉에 기반을 두고 있다. 국내 게임사에서 기념비적인 작품인 이원술 사장의 ‘어스토니시아 스토리’나 김학규 사장의 ‘악튜러스’ ‘라그나로크’ 등은 모두 일본식 롤플레잉이 기반이다.

또 국내의 많은 개발자와 유저들은 북미의 롤플레잉보다 일본식 롤플레잉을 더 선호하는 경향이 있는데 그 시작은 사카구치 히로노부에 의해서 비롯됐다. 이 사람은 그 유명한 ‘파이날 판타지’를 만든 인물이다. 이 작품은 스토리에 중심을 둔 게임으로 가치가 높다.

눈물나도록 감동적인 드라마틱한 이야기와 실감나는 그래픽, 심금을 울리는 사운드에 심혈을 기울였다. 또 최고 수준의 동영상을 플레이를 사이사이에 집어 넣었다. 그래서 그가 만든 작품은 한편의 장편 영화를 보는 듯한 착각을 불러 일으킨다. 여기에 가장 많은 영향을 받은 사람이 소프트맥스의 최연규 실장이다. ‘창세기전’ 시리즈로 국내 롤플레잉의 대중화를 선도한 그도 ‘파이날 판타지’를 벗어나긴 힘들다.

사카구치 히로노부의 ‘파이날 판타지’는 자신의 모든 것을 걸고 마지막으로 만든 게임이었다. 그래서 제목에 ‘파이날’이 붙어 있는 것이다. 이 작품은 시리즈가 출시될 때마다 판매 신기록을 작성했고 PS2의 대중화에도 큰 몫을 담당했다.

그가 창조한 롤플레잉의 새로운 면모는 고스란히 국내 MMORPG들과 연결돼 있다. 특히 최근 온라인게임들의 추세가 탄탄한 시나리오와 화려한 그래픽, 웅장한 사운드를 추구하고 있다는 점에서 그가 남긴 업적을 짐작할 수 있다
by 갈리프 | 2006/03/23 17:46 | [Contents] | 트랙백 | 덧글(0)
왜 페인트는 깡통에 담겨 있을까

왜 페인트는 깡통에 담겨 있을까  
[패션으로 본 세상]발전적인 의심은 세상을 바꾼다  
김소희 말콤브릿지 대표 :: 11/29 12:37 :: 조회 5739
  

"더치보이(Dutch boy)라는 회사가 어떻게 페인트 업계를 뒤흔들었는지 아는가? 이건 너무 간단해서 무서울 정도다. 그들은 깡통을 바꿨다."

세스 고딘(seth godin)은 자신의 책 '퍼플 카우'(purple cow)에서 더치보이의 성공에 대해 이렇게 평가했다.

더치보이는 흰색의 플라스틱 주전자형 용기에 페인트를 담아 판매한다. 그리고 이 방법으로 단숨에 업계를 석권했다. 기존의 페인트 용기는 철깡통으로 만들어진 것들로, 들거나 뚜껑을 여닫는 것이 불편했음에도 불구하고 오랫동안 그런 식으로 존재해왔었다.

더치보이는 바로 여기에 의문을 품었다. 그들이 그렇게 존재하는데 과연 특별한 이유가 있는가. 놀랍게도 거기엔 관습이외의 이유는 존재하지 않았다. 이 사례가 진정으로 놀라운 점은, 아무도 의심하지 않는 것을 의심했다는 것이다. 즉, 관습의 허를 찔렀다는 사실이다. 우리는 관습의 테두리 안에서는 이에 대해 의심을 품거나 오류를 발견해내는데 익숙하지 못하다.

둥근 지구 위에 서서 지구가 둥글다는 것을 깨닫는 데에 인류는 얼마나 오랜 시간이 걸렸던가. '의심의 자질'은 순수하고 진취적이며 창의적인 사람들이 가지는 공통적 특성 중 하나이다. 이들은 기존의 시스템에 의문을 품고 새로운 시스템을 창조하며, 종종 이같은 뉴 시스템은 세상을 주도적으로 변화시킨다.

그런데 우리 사회에서는 종종 '의심의 자질'에 관한 몇가지 오해들이 발견된다.특히 문제가 되는 것은 의심이라는 것 자체가 '나쁜 자질'로 여겨지는 경우다. '의심없이 믿을 줄 알아야 한다'라는 인식, '조건없이 믿는 것이 순수하다'라는 인식은 과연 모든 경우에 타당한 것일까.

어떤 사람들은 자신이 믿어왔던 것, 혹은 자신이 생각해보지 않은 의문들이 제기되는 것 자체를 두려워한다. '내가 보지 못한 것'을 보는 사람은 그에겐 위협적이며, 자신을 두렵게 하는 사람의 자질은 위험하고 나쁜 자질로 쉽게 오인된다.

새로운 의문에 대한 두려움이 극에 달한 사람들은 벼랑 끝에 선 것처럼 행동하기도 한다. 이들은 평범한 사람들이 이해하지 못할 정도의 극단적인 면모를 보여주기도 하는데 이들이 '의심하는 것은 나쁘다'라고 말할 때의 속뜻은 '나는 의심많은 사람이 무섭다' 정도로 해석되는 것이 맞다.

베르톨트 브레히트(Bertolt Brecht)는 그의 시에서 이같은 사람들에 대해 다음과 같이 썼다.

"절대로 의심할 줄 모르는 생각없는 사람들도 있다.
그런 사람들의 소화능력은 놀라웁고, 그들의 판단은 틀릴수도 있다는 것을 모른다.
그들은 사실을 믿지 않고 오직 자기 자신만을 믿는다.
필요한 경우에는 사실이 그들을 믿어야만 한다."

그러나 실제로 '나쁜 의심'들도 존재하기는 한다. 여기선 의처증과 같은 병적인 의심을 얘기하고자 하는 것은 아니다. 정확히 말하자면 나쁘다기 보다는 '한심하다' 는 말이 맞을 것이다. 이같은 의심은 귀가 얇은 사람과 우유부단한 사람들에게서 발견된다.

귀가 얇다는 것은 본질적으로, 스스로의 결단에 대해 확신이 없음을 의미한다. 이들은 우유부단한 사람들과는 달리 결정은 내릴 줄 알지만 이를 자주 바꾼다. 이들은 진실에 접근하기 위해 의심하는 것이 아니라 속지 않으려고 의심한다.

따라서 의심을 명확히 짚고 넘어가는데 사용하지 않고, 속았다는 가정하에 대비책을 마련해두는데 사용한다.그러나 그들이 세운 갖가지 대비책은 전제된 가정이 곧잘 빗맞아 버림으로써 쓸모없는 일이 되기 십상이다.

또 우유부단한 사람들의 의심 역시 참기 힘든 고역이다. 이들의 의심은 때론 빽빽한 논리로 비춰지기 때문에 더더욱 반감을 산다. 가끔 이같은 종류의 의심을 늘어놓다가 고객에게 면박을 당하는 컨설턴트들도 보게 된다.

이들은 고객의 비즈니스가 너무도 많은 근거를 결여하고 있어 위험에 노출되어 있음을 지적하고, 자신이 귀하의 사업에서 얼마나 많은 것들을 의심해내었는지를 늘어놓는다.

그러나 구체적이고 세세한 방법론에 대해서는 아무런 결론도, 심지어 개인적 소견까지도 제시하지 못한다.

그리고 자신이 그런 결론을 내리지 못하는 이유는 자신이 함부로 결론을 내렸을 때 이러저러한 위험이 있기 때문이라고 또다시 설명한다.

순수하고 창의적인 사람들이 '왜 페인트 통은 불편한데도 저렇게 생겼을까'라는 것에 의문을 던지는 동안 이들은 아무 의심도 품지 않고 있다가 '우리 페인트 통을 이렇게 바꿉시다'라고 말하는 순간에 근심스런 표정으로 등장하기 시작한다.

그리곤 '페인트통을 과연 그렇게 바꾸는 것이 과연 적합한 일입니까' 를 두고 끊임없이 근거를 요구하는 것이다. 이들은 본질적으로 모든 결단이란 불가피한 리스크의 여지를 감수하거나 각오해야 한다는 사실을 모른다.

베르톨트 브레히트(Bertolt Brecht)는 '의심을 찬양함'(Lob des Zweifels)이라는 시를 통해 의심의 위대함과 오해, 우유부단한 이들의 오류를 날카롭게 꼬집은 바 있다. 이 한 편의 멋진 시는 오늘날 우리에게 '발전적인 의심'과 '부정적인 의심'의 차이를 속시원히 알려준다.

자신에게 세상을 주도할 가능성이 과연 얼마나 있는지 확인하고 싶다면, 이 시를 꼭 한 번 읽어보길 바란다. 그의 시가 가져다 주는 폭넓은 깊이와 날카로움에 만족한다면 당신은 적어도 통찰력을 지닌 사람, 발전적인 의심의 자질을 지닌 사람이다.

그러나 그의 시에서, '도대체 의심을 하라는 거야, 말라는 거야'라는 생각이 든다면 불행히도 당신은 세상을 주도할 기회가 별로 없을 것이다. 로또와 같은 행운이 어쩌다 찾아와 당신에게 충분한 돈과 권력이 저절로 떨어지는 일이 생기기 전까지는 말이다.

by 갈리프 | 2006/03/16 11:57 | [Concerns] | 트랙백 | 덧글(0)
이미지 사이즈는 꼭 2의 승수로 만들어야 하는가?

그래픽 카드에 따라 다른 2의 승수가 아닌 실사이즈 이미지의 지원여부에 대해 조금 알아봤는데 미약하나마 알아본대로 정리해서 올립니다. 더불어 이미지 사이즈를 2의 승수로 했을때의 이점도 함께 얘기해 볼까 합니다.

밉맵이 없는 2D 텍스쳐의 경우, 예전 부두계열 그래픽 카드에서 최대크기 256*256 의 제한과 정방형(ex.32*32, 64*64, 128*128...) 이미지의 제한이 있었는데 최근의 그래픽카드(DirectX8.0 이상을 지원하는 카드 : GeForce 2MX 이상)는 실사이즈를 대부분 지원한다고 합니다. 밉맵이 있는 경우의 2의 n승이 아닌 텍스쳐를 지원하는 그래픽 카드는 지포스 6000시리즈 정도가 가능하다고 합니다.  그러나 2MX보다 상위기종이지만 FX5700의 경우는 2의 승수가 아니면 지원이 안된다고 하네요.

나름대로 최신의 그래픽 카드라도 2의 승수에 대한 제약, 정방형에 대한 제약, 최대 이미지 사이즈에 대한 제약이 더러 있어서 실제 게임개발에 있어서 이미지를 실사이즈로 사용하는 것은 상당한 무리가 있는 것으로 보입니다. 구린 카드를 갖고 있는 유저는 우리게임 하지도 말라는 식이 아니라면 말이죠.

그러면 최근 출시한 게임들을 즐기는 유저들이 보유한 그래픽 카드가 DX8.0 이상을 모두 지원한다고 가정할때, 실사이즈로 이미지를 잘라 쓰는 것이 과연 좋은 방법일까요? 실사이즈 이미지로 제작하게 되면 제작노력과 시간이 단축될 것이 분명합니다. 그러나 게임의 성능면에서 역시 비추입니다.

DirectX 9.0c SDK October 2005 버전에 있는 도움말 중에 Performance Optimizations > Texture Size 부분의 글을 잠깐 보겠습니다.

-------------------------------------------------------------------------------------------------------------------------

There are a number of ways to maximize the cache performance of your application's textures.
Keep the textures small.
The smaller the textures are, the better chance they have of being maintained in the main CPU's secondary cache.
Do not change the textures on a per-primitive basis.
Try to keep polygons grouped in order of the textures they use.
Use square textures whenever possible.
Textures whose dimensions are 256x256 are the fastest.
If your application uses four 128x128 textures, for example, try to ensure that they use the same palette and place them all into one 256x256 texture.
This technique also reduces the amount of texture swapping.
Of course, you should not use 256x256 textures unless your application requires that much texturing because, as mentioned, textures should be kept as small as possible.

-------------------------------------------------------------------------------------------------------------------------

텍스쳐의 사이즈는 최대한 작게 유지하고 될 수 있으면 정방형을 유지하고 256*256 사이즈가 가장 빠르니까 128*128 이미지 4장의 경우, 같은 팔레트를 사용해서 한 이미지로 붙여 256*256으로 만들면 텍스쳐 전송의 양이 줄어들어 빠르다는 내용입니다. 필수는 아니지만 강력히 권고하는 인상입니다.

머리아픈 얘기지만 2의 승수가 될 경우 또하나의 이점은 텍스쳐의 어드레스 연산시 쉬프트 연산을 써서 이미지 처리가 굉장히 빨라집니다. 2의 승수가 아니라면 이런 식의 처리는 불가능해져서 복잡한 과정을 거치게 됩니다. 이런 것들이 한둘씩 모이면 전체적인 성능의 저하를 가져오는 요인이 되는 것입니다.

하드웨어적 측면이나 게임의 퍼포먼스 측면에서나 2의 승수는 선택이 아닌 필수라고 생각됩니다.

아래는 가마수트라에 올라온 '3D 월드에서의 2D 프로그래밍: DirectX 8의 Direct3D를 이용한 2D 게임엔진 개발(저자 : George Geczy) 에 관한 내용입니다. 참고하시기 바랍니다. (출처 : http://www.gpgstudy.com/gpgiki/DX82Din3D)

원문 : http://www.gamasutra.com/features/20010629/geczy_pfv.htm

----------------------------------------------------------------------------------------------------------------------
There is, however, one more big difference between surfaces and textures, and you actually have to pay some attention to this one: size restrictions. The width and height of a texture is restricted in most hardware to being a power of two for each dimension, and some hardware imposes maximums and other rules on these sizes. For the width and height, power-of-two sizing means that sizes like 128, 256, 512 and 1024 are acceptable numbers. So a texture of 256 pixels wide by 256 pixels high is acceptable, and most cards will allow different width/height values such as 256x128 or 64x16. This power-of-two limitation shouldn't be a major concern, because your bitmap doesn't need to fill the available space of the texture. If you have a 96x80 pixel graphic, put it in a 128x128 texture and just specify the location of your graphic when you use the texture. If you have two 60x60 images, template them together into a single graphic and load it into a 128x64 texture. There will be some wasted space, but in the future you'll start thinking about creating graphics in sizes that will work well with texture limits.

그러나 여러분이 알아 두어야 할 텍스쳐와 서피스의 큰 차이점이 있다. 그것은 텍스쳐의 크기 에 관한 것으로, 텍스쳐의 가로와 세로 폭은 대부분의 하드웨어에서 2의 승수가 되도록 제한한다. 또 어떤 하드웨어에서는 최대 크기의 제한과 다른 제약 조건 (역주 - 부두 계열에서의 정방형 제한 등)을 갖는다. 가로와 세로의 2의 승수 제한이라는 것은 가로와 세로에 128이나, 256, 512, 1024 등을 텍스쳐의 크기로 사용할 수 있다는 의미이다. 그러므로 가로 256 픽셀 x 세로 256 픽셀 크기의 텍스쳐는 사용할 수 있으며, 대부분의 카드에서는 256 x 128, 64 x 16처럼 가로 세로가 같지 않아도 텍스쳐로 사용할 수 있다. 2의 승수 제약 조건에 대해서 특별히 큰 신경을 쓸 필요는 없는데, 여러분이 사용하는 이미지bitmap가 반드시 전체 텍스쳐를 가득 메워야 하는 것은 아니기 때문이다. 만약 96 x 80 픽셀의 이미지를 갖고 있다면, 그것을 (역주 - 96과 80보다 큰 최소의 2의 승수 폭인) 128 x 128 텍스쳐에 채워 넣고, 텍스쳐 상에서의 위치에만 신경쓰면 된다. 만약 두 60 x 60 이미지를 사용해야 한다면 그것을 한 장의 이미지로 만들어 128 x 64 텍스쳐에 넣으면 된다. 텍스쳐에 낭비되는 공간이 생기겠지만, 차근차근 텍스쳐의 크기 제한에 맞추어 이미지를 작성하는 방법에 대해서 생각하게 될 것이다

The maximum-size restriction is a bigger issue. Modern hardware allows textures of 1024x1024 or larger, even as big as 4096x4096 (which takes 64MB of video memory in 32-bit color), but some older hardware -- particularly 3dfx Voodoo products -- have a maximum texture size of 256x256. If you currently load larger images, either as a background image or as a larger templated file of small sprites, then you'll have to chop these into smaller images to be compatible. Most game designs today no longer load a large background image, since maps are usually made up of a collection of individual tiles and smaller images. There are CAPS details you can get from Direct3D 8 that will report the maximum texture sizes and other restrictions (see D3DPTEXTURECAPS_POW2, D3DPTEXTURECAPS_SQUAREONLY, MaxTextureWidth / MaxTextureHeight, and MaxTextureAspectRatio in the SDK docs).

최대 크기 제약이 가장 큰 쟁점이다. 최신 하드웨어는 1024x1024 혹은 그 이상의, 심지어는 4096x4096의(32비트 컬러에서 64MB의 메모리를 차지한다) 텍스처를 지원한다. 하지만 오래된 하드웨어-특히 3fdx Voodoo 제품-는 최대 텍스처 크기가 256x256이다. 만약 배경 그림이나 스프라이트가 들어있는 커다란 파일 같은 커다란 그림을 읽어온다면, 적절한 크기의 작은 이미지로 쪼개야 한다. 현재 대부분의 게임들은 각각의 타일과 작은 그림들이 모여서 만들어지는 맵이 일반적으로 사용되면서 더이상 커다란 배경으로 디자인되지 않는다. Direct3D 8으로부터 최대 텍스처 크기나 다른 제약을 보고 받을 수 있는 CAPS(capabilities) 항목들이 있다. ( SDK 문서에서 D3DPTEXTURECAPS_POW2, D3DPTEXTURECAPS_SQUAREONLY, MaxTextureWidth / MaxTextureHeight, and MaxTextureAspectRatio를 보라 ).

The D3DX utility library also lets you get a bit lazy and will automatically calculate acceptable sizes for you, so if you call D3DXCreateTexture() and ask for a 100x60 texture, the function will check the hardware capabilities and create a legal size behind your back. Same with the functions that load an image into a texture from a file. And should you have a large source image that you can't or don't want to break up into smaller parts, you can load the large file into a surface with D3DXLoadSurfaceFromFile(), and then use CopyRects() to move partial correctly-sized sections of the image to the surface of smaller textures, which you then draw with.

D3DX 유틸리티 라이브러리 또한 약간의 게으음을 제공하며 이것은 자동으로 적당한 크기를 계산해준다. 만약 D3DXCreateTexture()를 호출하면서 100x60 텍스처를 요구하면 이 함수는 하드웨어 검사를 해서 적합한 텍스처를 생성한다. 마찬가지로 파일에서 텍스처를 읽어오는 함수도 있다. 커다란 원본 이미지를 작은 조각으로 나누는 걸 할 수 없거나 원치 않는다면, D3DXLoadSurfaceFromFile()을 이용해서 서피스에 커다란 파일을 읽어올 수 있고, CopyRects()를 이용해서 화면에 그려줄 작은 텍스처의 서피스에 정확한 크기로 절단해서 옮길 수 있다.

A final warning before we get to the code for all this is that you should be careful of the amount of video memory you are using. If you have a 1024x1024 image template of sprites that you are loading, 32 bits per pixel, and an 800x600 screen resolution, then you will need almost 6MB of video memory (room for the front buffer, back buffer, and the texture). However if you use a number of the smaller 256x256 textures, then DirectX will automatically remove (flush) textures from video memory if the space is required to load new textures. Note that if this happens multiple times each frame you will take a performance hit.

코드를 작성하기 전 마지막 주의점은 사용중인 비디오 메모리의 크기에 주의해야 한다는 점이다. 만약 스프라이트가 들어있는 1024x1024 이미지를 읽어온다면, 32비트 컬러에 800x600 해상도에서 거의 6MB를 필요로 한다. ( 전면과 후면, 텍스처를 위한 공간 ) 하지만 작은 256x256 텍스처들을 사용한다면, DirectX는 새로운 텍스처를 읽기 위한 공간이 요구될 때 저절로 비디오 메모리로부터 텍스처를 제거(flush)한다. 매 프레임마다 이런 일이 여러번 일어난다면 퍼포먼스에 영향을 주는 것을 기억하라.

by 갈리프 | 2006/03/16 11:53 | [Dev. Exp] | 트랙백(3) | 덧글(0)
블리자드 마인드
아이템을 위한 화면 속의 광원 연출

와우의 비주얼 컨셉이 다소 동화적이고 회화적인 아트워크에 기반을 두고 있기 때문에 사실적인 재질(Material) 표현에 제약이 있죠.  그래서 게임 속의 전사/성기사가 판금을 입고 있어도 금속성인지 잘 구분이 안되죠.  그냥 그렇다고 하니까 그런가 보다 하지...

아래 그림에서 처럼 얼핏 보면 투구와 도끼 모두 철/판금으로 되어 있지만 투구는 금속성인지 종이로 되어 있는지 구분이 안되죠. --;    하지만 도끼는 어느 순간 금속성임을 알 수 있습니다.  바로 아이템 장착 후 캐릭터가 움직일 때.

무서운 몬스터를 잡고 얻는 귀한 도끼나 방패는 항상 유저의 눈 앞 위치해 있습니다. 

(↑만렙의 손에 이끌려 렙30에 냅다 줏은 소용돌이 도끼;  본인 아님)

중요한 아이템의 "반짝~반짝~" 을 위해 등에 얹은 도구들의 '각'을 설정. 

각 잡아라~

환타지 RPG 세계관이나 와우 같은 게임에서 캐릭터의 방패나 무기가 가지는 비중이나 의미를 개발자들이 고민했는 지를 알 수 있죠.  특히 사회성이 있는 온라인 게임에서 유저에게 아이템은 전부죠. 

금속에 의해 반사되는 광원을 '스펙큘럼(Speculum Light)' 라고 하는데, 장착된 아이템의 각도와 엔진에서 제공되는 광원의 각도를 카메라의 연출각에 맞추어 최적화된 상황을 만들어 놓은 것이죠.  이런 방식으로 블리자드 개발자들은 부족한 재질표현을 보강하게 됩니다.

센스가 있는 분은 10년전에 출시된 2디 방식의 디아블로(1편)에서도 주인공이 검을 내려칠때 검이 빤짝이던 것을 떠올릴 수 있을 겁니다.   일반적인 검날의 두깨로는 그냥 손 쥐어서 그냥 휘둘러도 그러한 두터운 형태가 나오지도 않고 그정도로 반짝일 일도 없죠.

by 갈리프 | 2006/03/09 17:15 | [Dev. Exp] | 트랙백 | 덧글(0)


< 이전페이지 다음페이지 >