로그인

회원가입 | ID/PW 찾기

Structure design for games - 2

/sam/tboard/?n=98030&board=36 주소복사

안녕하세요. 전에는 업무 중 일이 안되서 잠시 들러보던 중에 글을 쓴지라 오랜만에 쓴 글을 제대로 맺지도 못하고 to be continued 선언을 해버렸습니다.

이 점 나름대로 양해를 구하고요. 일단 시작해버린 말, 맺음을 지어보도록 하겠습니다.

 

지난 시간의 말의 핵심은 '게임의 규모가 커진다는 것은 이처럼 'factor'가 많아진다는 것을 의미하고 그 개별 factor와 factor가 치밀하게 연결되면 될 수록 게임의 완성도가 높아진다.' 라는 말로 대변할 수 있겠군요. 이 역시 지난 시간에 썼던 문장입니다.

 

오늘 읽은 글 중에 꽤 흥미로운 글이 하나 있었습니다. Mindmap을 이용하여 요소들을 나열한 글이 있더군요. 그 마인드 맵의 퀄리티와 완성도를 떠나 그런 시도 자체는 굉장히 좋은 시도입니다. 일단 자신의 게임에 어떤 요소가 있는 지를 하나하나 생각해볼 수 있다는 장점을 가지고 있지요.

 

다만, 마인드 매핑의 장점은 때로는 단점이 되어버립니다. 왜냐면 마인드 매핑의 경우 카타고리에 factor들을 나열하는 방식으로 아이디어를 늘어놓게 되어버리는 데 자칫 잘못하면 그 양을 감당못하게 되는 케이스가 벌어질 가능성도 있습니다.

마인드 매핑의 단계 이전에 사실 각 큰 카타고리 별 연관성을 규정하는 단계가 필요하다고 저는 생각합니다. 마인드 매핑으로 생각해놓은 요소가 어떤 다른 카타고리에 어떤 요소에 연결될 것인지를 고민하기 위해서 그러하겠지요.

 

Structure라는 말은 사실은 건축 언어입니다. 때문에 위를 건축이라는 것에 맞게 설명을 해보겠습니다. 성의 윤곽을 결정짓는데에 '어떤 파츠에 어떤 부품이 필요하다'라라는 것을 늘어놓는 것이 마인드 매핑이라고 할 수 있습니다. 그러나 '어떤 성이 될 것인가?'는 그 파츠를 조립한 결과에 따라서 달라질 것입니다. 때론 그런 생각없이 파츠부터 만들고 조립한 성이 화려한 로코코 양식의 성이나 중후한 고딕의 성이 될 수도 있습니다만 '가고일과 천사상이 공존하는 기괴한 암흑성'이 될 가능성도 있습니다. 제작하려고 했던 의도와 벗어난다는 소리겠지요.

 

따라서 '어떤 모양의 어떤 양식의 성이 될 것인지'를 마인드 매핑 이전에 생각할 필요가 있습니다. 각 파츠의 연관성을 묶어주는 요소가 무엇인가? 그것이 아마 게임에 있어서는 메인 컨셉이 되겠지요. 미카미 신지가 바이오해저드를 만들 때 제일 먼저 강조했던 것이 '그것이 공포스러운가?'였다는 점이 이를 잘 말해주고 있습니다.

 

대충 개념의 설명은 여기까지로 하고 개발에 관련된 부분으로 넘어가 보겠습니다.

프로그램을 대충이나마 공부하신 분이나 개발에 관심이 많으신 분들은 아마도 EDP라는 단어를 들어보셨을 지도 모르겠습니다.

Event Driven Programming, 즉 이벤트 중심의 프로그래밍이란 단어인데 이 단어가 전 시간에도 이야기했던 factor와 factor의 연관성에 대해서 잘 설명해주고 있습니다.

 

흔히 프로그래밍에 본격적으로 들어가기 전에 flow chart에 대해 배우시고 들어갈 겁니다.

시작이 주어진 형태에서 조건들의 판별로 인해 결과를 판정하는 형태이지요. 그러나, 이 형태의 플로우 차트는 시스템 구성에 있어서 한계를 불러일으킵니다.

 

1. 복잡한 시스템 구성이 필요할 때 다양한 조건문을 나열할 것을 요구한다.

2. 판단의 변동이 잦은 형태의 시스템 구성에 적합하지 않다.

3. LOOP, 즉 반복 순환이 필요한 구조를 설명하기에 적합하지 않다.

 

이를 해결해주는 개념 중에 하나를 공대에서 배울 수 있습니다.

예를 들자면 엘리베이터의 액션을 Flow chart로 구성한다고 생각합시다. 솔직히 저도 이걸 누가 시킨다면 손 놓고 포기하는 편이 빠르다고 생각합니다. 모 층수로 올라가고 있는데 다른 사람이 중간에 또 버튼을 누르거나 엘리베이터 안과 밖에서 '여기로 오세요~'라는 유혹의 호출이 떨어지는 판국을 if~ then~ else~로 설명하라니요.

 

이를 Event 중심적으로 설명해보겠습니다.

엘리베이터 자체가 가지는 '상태'정지하고 있다, 위로 이동 중이다(목표는 x층), 내려가고 있다(목표는 x층), 올라가기가 예약되었다(목표는 x층), 내려가기가 예약되었다(목표는 x층) 등이 있을 것이고 엘리베이터의 문이 열려야 엘리베이터에 사람이 타겠지요. 그러니 문이 가지는 상태는 열린다와 닫힌다가 존재할 것입니다.

상태를 변화시키기 위한 조건으로는 간단하게는 아시다시피 y층을 누른다가 되겠습니다.

그러나 y층을 누른다고 엘리베이터가 그 층으로 그냥 이동해버리면 y>x라는 가정하에 x층으로 내려가던 사람이 정지의 중력과 상승의 중력을 단시간에 경험해버리는 사태가 발생하겠지요.

거기에다가 여러 사람이 여러 층 수에서 버튼을 누를 수 있습니다. 때문에 '엘리베이터가 어떤 상태에 있을 때 y층이 입력되었다.' 라는 세부적인 조건이 필요하게 됩니다.

 

이런 식으로 예를 들어보겠습니다. 엘리베이터가 위로 이동 중인데 x층으로 이동 중인 상황에서 a층을 지날 때 y층의 호출이 떨어졌을 때 x>a, x>y, y>a 인 상황이라면 x층으로 이동 중이던 엘리베이터는 x층에 도착하기 전에 y층에 멈출 것이고 y층에 멈춘 뒤에야 x층을 다음 목표로 설정하게 될 겁니다.

Flow chart의 형식에 따르자면 이를 표현할 때 "y층이 눌렸는가?" "x>a를 만족하는가?" "x>y를 만족하는가?" "y>a"를 만족하는 가를 따져서 'y = x (y를 목표 x로 만들어라)'라 규정짓겠지요.

그러나 간단히 [ y가 입력되었을 때 "x>a, x>y, y>a"를 만족하면 "x층을 목표로 이동 중" 이라는 상태 → "y층을 목표로 이동 중"이란 상태로 교체 ] 라는 문장으로 바꿀 수 있습니다.

만약 동일 상황에서 y<a 라면? 상태를 변경시킬 수 없는 이벤트는 구성에서 제외할 수 있습니다.

 

이것이 바로 공대에서 수학하는 개념 중에 하나로 자동화 시스템을 구성할 때 쓰이는 FSM이라는 모델입니다. 위에서는 조금 복잡한 예를 들었는데 간단히 설명해볼까요?

Current State ->
Condition
State A State B State C
Condition X ... ... ...
Condition Y ... State C ...
Condition Z ... ... ...

위는 위키피디아에서 슬쩍 훔쳐온 표입니다. 이를 말로 설명하면 다음과 같습니다.

"State B인 상태에서 Condition Y가 발생하거나 입력되면 State C로 상태를 변경하라."

이때 컨디션 Y는 (event a & event b)가 될 수도 있고 (event a or event b)도 될 수 있습니다.

즉 하나의 상태 변화를 위해서 한개의 조건(condition)만 필요한 건 아니겠지요.

이제 위의 엘리베이터 설명이 좀 더 이해하기 쉬워졌을까요? 그랬기를 빕니다.

아, 물론 FSM이 Flow chart보다 우위의 개념이라는 것은 아닙니다. 다만 사용처가 조금 다를 뿐이지요. 시작과 끝이 매우 명확한 구조라면 굳이 FSM을 쓸 필요는 없습니다. 오히려 이럴 때는 Flow chart가 나을 때가 있지요.

 

실제로 위와 같은 Event나 Conditon으로 구동되는 형태의 구조는 개별 System(=object)간의 의존도를 줄이면서 구성할 수 있다는 잇점이 있습니다. 개별 시스템을 구성한 뒤 나중에 모아보면 되니까요. 프로그램적으로도 객체 지향 프로그래밍, 즉 OOP에 비해서 EDP가 가질 수 있는 장점이지요.

(물론 OOP의 모듈에 대해서 이해하지 못하는 상황에서 EDP를 논한다는 건 좀 에러겠지만요. 프로그래머라면 모를까 기획자가 깊게 파들어가면 좋지만 그러지 않아도 괜찮겠지요. 거기까지 할 수 있으면 프로그래머하는 게 더 잘 먹고 잘 살 수 있으니까요.ㄷㄷ)

 

지난 시간에 추신으로 가방끈이 나름 중요하게 될 수 있다고 했는데 그렇습니다. 바로 저런 이유 때문이지요. 고등학교에서는 저 개념을 좀더 수식화하기 위해 미분 적분을 가르치지만 저 개념 자체를 가르쳐주지 않습니다. 오로지 대학교에서만 만날 수 있는 것이지요.

부끄럽게도 저도 역시 대학을 다닐 때 그다지 성적에 관심이 없는 사람이었고 그런 상태에서 업계에 들어왔습니다만 설마 저게 필요해지는 상황이 올 줄 어찌 알았겠습니까?

그런 점에서 공부 좀 더 해둘껄이란 후회도 드는 때가 많습니다.

업계에 들어와서 사부 한 명 모시고 새로 배웠으니 더욱 후회 막심이랄까요.

 

위와 같이 State들이 conditon으로 엮이고 엮여서 하나의 요소 Factor를 만들어내고 이 Factor와 Factor가 엮여서 하나의 System을 구성합니다. 그 System과 System이 묶이면 하나의 게임이 탄생하게 되지요. 거기까지 거쳐오는 길은 결코 쉬운 길은 아닙니다만 조금 더 철저해지려고 노력한다면 못 걸을 길은 아닙니다.

 

앞서 이야기했듯이 이 글을 쓰는 사람은 크리에이터라기엔 좀 부끄러운 사람입니다. 때문에 게임을 어떻게 재미있게 만들까라는 주제에 대해서는 할 이야기 거리가 참 부족해서 이런 이야기 밖에 드리질 못하겠군요.

사실 저도 기획을 하면서 늘상 느끼는 것 중에 하나가 '좀 더 나은 무언가가 내게 있다면'이란 것이지요. 이런 부족한 사람이 쓰는 글입니다만 기획을 지망하는 사람들에게 '좀 더 나은 무언가'가 되었다면 이런 글을 올렸다는 것에 의미를 부여할 수 있을 겁니다.

 

이미 FSM은 1970년대에 래슬리 램포트 박사가 직접 프로그래밍에 응용한 이래 계속해서 쓰이고 있는 개념입니다. 따라서 이 역시 어떻게보면 '구시대의 지식'이라고 볼 수도 있겠지요.

게임 업계의 역사는 짧지만 빠른 발전 속도를 보여주고 있습니다. 이는 다양한 방면에서의 지식이 쌓여있는 가운데서 게임이 그것들을 '응용'하여 개발되었기 때문에 가능하지 않았을까요?

 

그런 면에서 제가 짧은 지식이나마 좋은 지식을 여러분께 선사했기를 빕니다. 더 좋은 사람들이 이 업계에서 활약하고 제 다음 사람이 더 빨리 지식을 익히고 그 다음 사람은 그보다 더 빠른 시간 안에 그 사람의 수준이 될 수 있다면 게임 산업의 발전을 가속시킬 수 있을 거라 생각합니다.

저를 가르치신 분들이 저를 가르치셨을 때 아마 그런 마음으로 가르치셨을 겁니다.

아직은 그 마음에 제가 부응하고 있을런지는 잘 모르겠지만 말이지요.

 

저도 좀 더 공부하면서 서로 지식을 교환할 수 있는 장을 마련하도록 노력해보겠습니다.

다음에 뵙지요.

더 많은 사람이 게임이라는 악의 구렁텅이에 빠지길 기원하며 여기서 줄입니다.

 

P.S:

쓰다보니 나름대로 공대생은 게임 기획자하기 좋다라는 식이 되어버렸는데 그렇지 않습니다.

말 그대로 저같은 어중간한 사람이 있는 반면 반짝이는 아이디어로 도배한 크리에이터들도 있습니다.

사실 그쪽이야말로 좀 더 기획자스럽달까요. ㅎㅎ. 저는 그 쪽이 좀 더 부럽습니다.

구조를 설계하는 건 사실 코디네이트나 서포트에 가깝습니다. 완전히 자기 게임을 만들면 모를까 게임에 대한 욕심은 약간 죽이고 들어가야지요. 솔직히 기획자이기 때문에 그건 좀 쉽지 않습니다. ㅎㅎ. 반성 중.

 

한가지 더 이야기하자면 FSM은 좋은 도구입니다만 정형화된 스탠다드는 아닙니다. 그저 도구 중에 하나일 뿐이지요. 개별 기획의 목적에 맞는 다양한 도구들을 찾아내고 활용하는 것도 사실 기획자의 업무 중 하나입니다. 기획의 도구 중에 맥가이버 칼이란 건 없다고 생각하세요.

다만 기획자가 맥가이버 칼이 될 수는 있습니다. 체력만 잘 받쳐준다면 말이지요. ㅎㅎ

4 0
베스트 댓글
에러 BEST 11.12.19 10:39 삭제 공감5
[비밀글] 누구누구님께 삭제된 글입니다 블라인드된 게시물입니다 [내용 보기] 댓글을 로딩중이거나 로딩에 실패하였습니다.
댓글달기
등록된 댓글이 없습니다.
제목 작성자 등록일 조회 공감
- 우리는언제부턴가..설정한것일까? [2] 무임승차대상05-3035290
- FPS 밀리터리 온라인게임에 스킬을 쓸수있다면 어떤가요? [14] 콜옵405-2939510
- 우리가 태어나기전에 즐기던 게임들 [이미지] [6] Xatra05-2999731
- [법으로 금지시켜야합니다]1.저능아용 모드를 [이미지] [21] 로드오브메룽05-2975661
- 실시간 전쟁 온라인 게임에 대한 개인적인 생각... [이미지] [4] 헨젤05-2855912
- 온라인 리듬게임의 성공과 유료화에 대한 개인적인 생각입니다. [34] 닐스05-2641364
- [마비욕]3.아르바이트를 이용해서 라이프를 살려보자. [이미지] [2] 로드오브메룽05-2548710
- 당신이 그리워하는 추억의 온라인 게임은 어떤 것인가요? [37] lks757305-2349877
- [마비욕]2.판타지라이프? 알았으니깐 알바나 좀... [이미지] [9] 로드오브메룽05-2373625
- 스파+킹오파+사무라이스피리츠+아랑전설+길티기어+드퀘=궁극의 게임!! [이미지] [7] 멘디그롤낭아05-2271491
- [메룽에이레]4.석양을 바라보는 관청직원 [이미지] [3] 로드오브메룽05-2243452
- MMO를 하려면 꼭 생활이 없어야합니까? [28] 다프!05-2244110
- 로스트사가 재밌던데 [8] 아트픽쳐05-2149492
- 현거래에 대한 짧은 생각 [10] ioshm05-2126540
- 인터넷 예절을 지킵시다 [2] 과니~*05-2127261
- 우리나라를 진정한 온라인 게임 선진국으로 만들려면..? [10] 달빛뮤05-2132240
- [토론]Ubi 소프트, 캐쥬얼 게임 제작비는 결코 싸지않다 [이미지] [4] 히카군05-2038170
- 국내 최고의 게임소프트웨어 개발업체는 누구라고 생각하십니까? [33] 콜옵405-1965662
- 게임내 콘텐츠의 확보를 위한 단상+ [14] 테르네05-1931731
- 언제쯤 결론이 날려나.....끝없는 현거래(RMT)... [28] 똘끼만땅05-1928840
- 언제부턴가 우리는.. [15] 무임승차대상05-1937400
- MMORPG플레이시간은 캐쥬얼게임화 하여야한다 [70] 미르젤린05-1844660
- 게임내 콘텐츠의 확보를 위한 단상. [14] 테르네05-1725811
- 전투! [이미지] [2] 노레그05-1735030
- 게임 아이템과 골드의 현금거래는 없어야 합니다. [11] 진서림05-1772181
- Rock Band를 향한 코나미의 카운터펀치, Rock Revolution [이미지] [2] N.com05-1754720
- 승리의 길드워, 승리의 nc소프트 [8] 잡담인간05-1748520
- MMORPG 요금제의 딜레마 [34] 알테어05-1635810
- nc가 아닌 nw... [9] 대협이05-1440870
- 리니지2 서비스 비교 분석 2탄 [31] maycloak05-1494034
- 현거래 개인적인 막장의견을 내 봅니다. [4] Cogito05-1332160
- 갑자기 재미있는 생각이.. 마법 [37] 오징어구워먹자05-1259270
- 현거래, 지겹겠지만 하나만 물어봅니다 [33] Cogito05-1036831
- 내가 생각하고 있는 최고의 게임은... [20] 호시노루리05-0966560
- 현거래 합법화에 대한 오해. [67] 金敬來05-0940260
- 게임속 기념일 이벤트 선호도에 대해. [15] 아스파05-0738532
- 씁쓸한 그들의 궁색한 변명 [17] 오보에05-0645276
- 게임 현거래, 무엇이 문제? [98] 오보에05-0640920
- 세컨드라이프가 아이템 현거래의 근거가 될 수 없는 이유 [50] 아스파05-0649422
- 현거래는 합법화 됩니다. [23] 金敬來05-0638620
- RMT의 합법화는 절대 불가능. [5] 사차원세계05-0347262
- 스타2 와 국산 RTS 의 방향... [14] 홍양05-0380614
- 자신의 마음에 안든다고 무조건 반대만 들수 있나. [10] Lain05-0372010
- RMT 합법화는 거스를 수 없는 흐름과 같다. [12] Lain05-0247351
- RMT 합법화, 꼭 필요가 있을까요? [5] 루터05-0134840
- RTM => RMT 로 정정하는 것이 좋지 않을까 [1] 점돌군04-3033970
- RMT 합법화는 작업장,오토를 규제하기 위한 방법입니다. [10] Lain04-304791-1
- 온라인 게임의 부분유료화 시장이 발생한 이유와 파급효과 [4] 기획이힘이다!04-3033752
- 게임 시장에 대한 개인적인 생각입니다. [43] 닐스04-3043653
- 진짜 게임업계 가장 큰 문제는 ★게임=공짜★ [11] Xivvo04-3041040
- 게임 아이템 현거래... 불법? 합법? [20] 대협이04-2850372
- [사이프로젝트] 노동력을 교환하는 장소인 '작업장' [이미지] [14] pidesa04-2732632
- ▶T3엔터테인먼트 [오르카온라인] 요즘 왜 이러나 [9] 발언하기04-2785360
- 한국게임계가 어려운 이유에 대한 개인적인 생각 [52] 잡담인간04-2562971
- INCA의 nProtect 게임가드! 너 뭐야? [이미지] [24] 진서림04-25204212
- 던파 시즌2. 프롤로그 - 마도학개론 만족하십니까?? [이미지] [17] nicekimssi04-25103852
- TPS 게임에 대한 이해 [이미지] [10] 헨젤04-25247251
- 진정한 무료게임이 실현될까? 그라나도 에스파다의 제 3화폐 ‘페소’ 등장으.. [이미지] [25] 해피레라04-24101386
- T3의 오르카 라는 게임을 가지고 하는 행태. [12] 구름따르기04-2443501
- 한국테스터의 분노, 미소스 비영어권 접속불가 [이미지] [15] 히카군04-2469732
- 게임의 혁신성은 어느 정도가 적당한가. [7] 지천사04-2331422
- 게임의 진정한 위험 요소 [5] 히카군04-2235002
- 자유도가 높은 게임? [이미지] [20] 생각탈피04-2252391
- 만약 아이온이 실패한다면 [31] 콜옵404-2274101
- 최근 WoW의 계정 관련 소란를 바라보며... [5] 키즈04-2144852
- [사이프로젝트] 건설♥ [16] pidesa04-2037235
- 국내 게임업계의 보안 개념은? [7] 진서림04-2081472
- 자유도 그것은 무엇인가 [6] 검은낙엽04-1935963
- 음식점과 게임 자유도에 대한 생각 [5] Blackfox04-1952732
- 모바일 FPS '워존', 텍스쳐 도용? [이미지] [5] loopy04-18155260
- 캐주얼 게임 새로운 도전의 기대를 걸어본다. [이미지] 또랑또랑04-1836890
- MMORPG의 자유도? [6] 고혁진04-1841222
- 추억이 많은 게임이 좋더라.. [7] 구떽04-1733561
- 요구르팅이 좌초한 이유? [31] 오보에04-17124711
- Aion외모논란에 대한 질문과 답글 [17] 검은낙엽04-1758475
- 반복 가능과 스토리 텔링 [25] apple04-1641495
- 비겁한 변명입니다~!![아이온 지용찬팀장의 인터뷰를 보고] [84] 제퓌로스04-167853-2
- 몬스터 랜덤 리젠 관련 게시물 [4] ioshm04-1636471
- 아이온이 싫은 이유. [73] 노레그04-166873-2
- 몹 사냥터 문제에 대한 역발상... [10] 아스파04-1540092
- 인구불균형과 아이온의 외모..2 [46] 지천사04-1551450
- 자라나는 머리카락 [20] 오징어구워먹자04-1433831
- 인구불균형과 아이온의 외모.. [38] 지천사04-1458540
- 몬스터 리젠에 대해서 [16] apple04-1437514
- [마비욕]1.똥을 먹어서 다시 끼니를 때웁니다. [13] 로드오브메룽04-1339830
- [게임D.I.Y] 게임 포맷 제안서 [이미지] [7] 마기숍04-1347581
- 게임메카 방문할 의욕이 나질 않는다. [23] feely04-1247443
- [칼럼] 시리즈11 : 자유도를 통한 자아실현 [4] 지천사04-1233902
- 인터넷 포탈 업계 1위 네이버의 단상. [10] Lain04-1137240
- [메룽에이레]3.추운곳에서 사는 드루이드들 [이미지] [6] 로드오브메룽04-1140891
- 온라인 게임의 커뮤니티? - 1# 길드 [15] 라이산더04-1132414
- 마비노기의 캠프파이어는 유저에 의한 마을설립시스템이 보여주어야 할 것을.. [이미지] [31] pidesa04-11170425
- 두근두근마녀신판이 문제일까? [19] 조던04-1064261
- ... 게임 회사 입사하기~ #03. 1년 뒤... [8] Zero-Device04-1044873
- 게임기획자 포트폴리오 Tip [4] 생각탈피04-0983732
- [게임D.I.Y]기존 3d mmorpg 사냥의 문제점 [이미지] [71] 마기숍04-0959251
- 스타크래프트2 신종족 넣는 방법 연구 外 [3] 쿠와아앙04-0847591
- [칼럼] 시리즈10 : 커뮤니케이션을 위한 자유, 공백도 컨텐츠다. [3] 지천사04-0833152
- [사이프로젝트] 혼자 하다 보면 팀워크가 그립습니다 ㅠㅠ [이미지] [17] pidesa04-0838062
- 마우스를 활용한 검술 시스템. [18] 테르네04-0753612
최신목록 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100