게임기획자는 프로그래밍 공부를 얼만큼 어떻게 해야 하나 (4) by storm


지난 3편에서 하던 이야기를 계속 이어가 봅시다. 프로그래밍 지식이 없는 기획자가 시스템을 기획할때 발생할 수 있는 문제점 가운데 두 번째로, 개발의 효율성과 생산성이 떨어진다는 점을 지적했었죠. 그러면서 과거에 작성했던 스킬 시스템의 역기획서를 예로 들었었습니다.

예시를 보면 스킬 시전이라는 명령이 서버에 전송되었을 때 서버가 처리해야 할 사항들이 요소별로 분류돼 있습니다. 언뜻 보면 그럴듯 해보이죠. 스킬의 형태가 몇 가지 안 되고 게임의 스케일이 작다면, 이 정도의 기획서로도 충분할 수 있습니다. 하지만 요즘 MMORPG 쯤 되면, 스킬의 형태도 매우 다양하고 게다가 개발 도중, 또는 상용화 이후에도 많은 요소들이 추가되거나 예외상황이 발생하기 때문에 시스템에 크고 작은 수정과 추가요소가 들어가기 마련입니다. 더 자세한 설명을 위해서 전편에 예로 들었던 WoW 스킬 시스템의 역기획서를 다시 한 번 보도록 하죠.


실무에서 이런식의 기획서를 프로그래머에게 제시했다고 가정해봅시다. 그러면 프로그래머는 바로 개발을 시작할 수 있을까요? 물론 바로 시작하는 것이 전혀 불가능하지는 않습니다. 아니, '전혀 불가능하지는 않다니!' 그렇다면 할 수는 있는데 뭔가 문제의 소지가 있다는 뜻일까요?

그렇습니다. 이 글이 프로그래밍 지식이 거의 없는 사람을 위한 것이므로 아주 쉽게 이유를 설명하자면, 이와 같은 기획서를 바탕으로 바로 구현을 할 경우에는 이것과 조금만 방식이 다른 스킬이 기획되면 기존의 코드를 다시 뜯어고치거나, 아니면 스킬의 형태가 조금만 달라져도 그 스킬은 새로 만드는 기분으로 작업을 해야 합니다. (프로그래머이 말하는 유지보수가 어렵다라든지 코드의 재사용성이 떨어진다는 말이 바로 이런 뜻입니다)

그런데 이런식으로 구현을 해나가다보면 작업의 속도도 문제지만, 이미 만들어놓은 시스템에 수정이나 변경이 있을 때에도 대응하기가 무척 어려워집니다. 게다가 초기 기획단계에서 예상하지 못했던 예외상황이 발생했을 때에도 바로잡기가 곤란한 경우가 대부분이죠.

간단한 예를 들면, 모든 스킬을 시전시간이 있는 것과 없는 것(즉시 시전)으로 분류해서 개발을 했는데, 나중에 기획이 변경되어, 일부 스킬의 경우 특성을 찍으면 시전시간이 단계적으로 줄어들고 즉시 시전으로 변경될 수도 있다면, 이렇게 변경된 기획내용을 반영하는데에 시간과 노력이 많이 들어가고 예기치 못한 버그가 발생할 가능성이 높아집니다.

또 다른 예를 들면, 원래는 주문 시전 중에 공격을 받아 데미지를 입으면 주문 시전이 중단되도록 설정했는데, 무적이나 특정 버프를 받은 상태와 같이 특수한 경우에는 중단이 되지 않는다고 예외처리를 넣는다든지 할 때에도 곤란할 수가 있는 것이죠.

바로 이러한 문제 때문에 프로그래밍에 대한 지식이 있고 개발 경험이 충분한 시스템 기획자들은 위와 같은 '요소의 분류' 수준을 뛰어넘어 요소들을 추상화하고 모델링하는 과정을 거치는 것입니다.

뭔가... 추상화와 모델링을 할 줄 알아야 하는 이유를 쓰다보니 출근을 위해 잠자리에 들 시간이 됐군요. 여러분이 괜찮은 기획자가 될 자질을 갖추고 있다면 이미 추상화와 모델링이 무슨 뜻인지 검색해보셨으리라 믿어 의심치 않습니다. 지금까지의 글이 이 두가지 개념을 설명하기 위한 밑밥이었다면, 이어지는 5편부터 알짜배기가 들어있을 거라 생각합니다. 이제 주말이니까 5편도 빨리 올릴 수 있기를 기대하며...

To be continued...




핑백

덧글

  • gump 2011/09/02 10:00 # 삭제 답글

    게임기힉은 참 어려운 것이였군염~
    많이 배우고 갑니다.
    하지만 현실은 기획자는 가자미 -_-
  • storm 2011/09/02 10:01 #

    검프님은 넙치, 전 광어임
  • 세이지준 2011/09/02 10:55 # 삭제 답글

    진흙탕 ㅠ_ㅠ
  • storm 2011/09/03 10:51 #

    철퍽철퍽~
  • zeprid 2011/09/02 21:03 # 답글

    10편정도로 쓰실거라면 25.7%를 넘는 분량을 올리셨으니 뒤내용을 더 안올려도 사실상 다올린것과 마찬가지..;;
  • storm 2011/09/04 00:38 #

    33%를 못넘기면 게임개발자 협회장에 출마하지 않겠습니다
  • SSx 2011/09/03 21:21 # 삭제 답글

    현재 상용화 되고있는 게임기획서파일을 좀 얻을수는 없을까요?

    백문이불여일견이라구... 좀보고싶은데 스톰님의 POWER로 좀 안될까욤?

  • storm 2011/09/04 00:27 #

    회사에서 작성한 기획서의 저작권, 소유권은 회사에 있기 때문에 그건 불가능합니다.
  • 아트리아 2011/09/04 01:42 # 삭제 답글

    잘 읽고갑니다.

    이걸읽고 스킬시스템만을 가지고도 꼬일 여건이 많은데 다른... 것들은...

    적힌대로 해주는거니....

    열심히 공부해야겠다는 생각이드네요

    그 본문과는 벗어난 질문이지만...

    로제카이와의 놀이와인간과 비슷한

    게임 과 관련된 서적을 소개해주실수있는가요..

  • storm 2011/09/14 23:21 #

    <놀이와 인간>과 비슷한 책이라면 어떤 걸 원하시는지 잘 모르겠네요.
    굳이 말하자면 <호모 루덴스>를 한 번 보세요.
    뭐 라프 코스터의 <재미이론>도 볼만 합니다.
  • 마이즈 2011/09/04 14:30 # 답글

    으아 가자미.. 가자미라도 되고 싶네요!
  • gump 2011/09/05 20:34 # 삭제

    이미 왕 가자미 정도는 되심
  • gump 2011/09/05 20:34 # 삭제

    어쩌면 특대 왕가자미 일지도 ㅋㅋ
  • storm 2011/09/14 22:38 #

    마이즈님은 가자미는 아니고 기름치 정도 되실듯,
    쫌 더 노력하시면 황새치가 될 수 있을 것 같아요
  • 표표 2011/09/05 14:21 # 삭제 답글

    역시 스톰님...언제나 눈팅만 했었는데 멋지십니다~!추천!!
  • storm 2011/09/14 22:37 #

    추천 ㄳㄳ
  • Shinyung 2011/09/07 19:25 # 삭제 답글

    알고리즘 형식으로 진행상황만 정리하면 되는 건줄 알았는데.. 아니군요..;;

    관련된 것끼리 묶어 놓아 표형식으로도 만들고.. 일반적으로 기획서에 들어가는 형식은 몇가지나 되는거죠..;;
  • storm 2011/09/14 22:39 #

    진행상황만 정리해도 만들어지긴 합니다.
    다만 더 좋은 기획을 위해서 노력하자는 거지요
  • 2011/09/14 21:52 # 답글 비공개

    비공개 덧글입니다.
  • storm 2011/09/14 22:37 #

    >w < 어머나~!
  • 허민구 2011/09/14 22:28 # 삭제 답글

    안녕하세요 게임기획을 공부하는 학생입니다. 일단 추상화의 개념에 대해서는
    프로그래밍 공부를 통해서 알고 있고 최근 프로젝트에서 플머가 유한상태기계를 원하고 있어서
    유한상태기계를 이용해서 기획서를 작성하고 있는데요, 이 유한 상태기계가
    규칙을 상태라는 것에 묶고 상태마다 조건을 통해서 예외처리가 되고 있어서
    추상화가 되고 있는 것인지에 대한 궁금증이 있네요
    (만약 플머가 원하지 않는다면 다른 방법을 사용하여 문서를 써야 되기 때문에 궁금하네요)
  • storm 2011/09/14 22:42 #

    유한상태기계(FSM)라는 개념 자체가 어떤 객체가 가질 수 있는 상태를 추상화해서 모델링 한 것이죠.

    예를 들어 몬스터의 상태를
    - stand
    - move
    - attack
    - guard

    의 4개 상태로 한정했다면
    이미 저 4개의 상태 자체가 추상화가 된 것입니다.
  • storm 2011/09/14 22:50 #

    그런데 지나치게 많은 예외처리가 나온다면, 추상화가 잘못 되었다는 신호입니다.
    바로 윗 댓글과 같이 추상화 했다면
    attack과 guard 에서 분명히 중복되는 처리가 나올 것이며 예외처리도 많아지겠죠.

    FSM에서 잊지 말아야 할 것은,
    객체는 FSM에서 설정한 여러가지 상태 가운데 동시에 단 하나의 상태만 활성화 된다는 점입니다.

    그러므로 attack 과 guard 의 상태를 구분한 경우, 객체는 두 상태를 동시에 취할 수는 없는 것이죠.
    즉 공격을 하던지 방어를 하던지 둘 중 하나만 가능하며 동시에 두가지는 못함.

    따라서 공격과 방어를 동시에 할 수 있도록 하려면 attack 과 guard를 상태로 설정하면 안됩니다.

    이 정도면 참고가 되셨는지요
  • gump 2011/09/15 14:30 # 삭제

    유한상태머신 ㄷㄷㄷ
  • 허민구 2011/09/15 02:16 # 삭제 답글

    아, 감사합니다. 지금 작업중이었는데 플머와 상태를 묶는 것에 대해서 이야기를 하고 있었는데
    마침 제가 원하는 답을 주시네요 ㅎㅎ
    이렇게 일찍 답변을 받을 줄은 몰랐는데 감사합니다
  • 회색정원 2011/09/26 00:31 # 삭제 답글

    스톰님 5편 빨리 올려주세요! 현기증 난단 말이에요!
  • 회색정원 2011/09/26 00:31 # 삭제 답글

    헐 떼쓰는 순간 업데이트가 되어씀 ㅋㅋㅋㅋ
  • storm 2011/09/26 00:33 #

    헐!!
  • 시나리오 2011/12/24 15:59 # 삭제 답글

    잘보고갑니다 스톰님!
    참고해서 더 나은 기획서 써보도록 노력하겠습니다

    하지만 제가 아직 많이 부족해서그런지 추상화에 대해서 완벽하게는 모르겠어서
    좀 더 알아봐야할거같습니다 ㅠ 아무튼 감사합니다
  • 송쏫으 2013/01/21 17:15 # 답글

    기획자의 프로그래밍쪽 지식에 관하여 궁금한 점이있습니다. 요즘 구직사이트를 보면 거의 모든 구인광고가 프로그래머가 C 또는 C++ 쪽의 알기를 요구하고 있는걸 볼 수 있었습니다. 기획자 지망생으로써 궁금한것은 제가 Java나 c#으로 프로그래밍은 할줄 아는 반면 좀 더 low language인 C/C++ 에대한 프로그래밍 실력은 부족합니다. 프로그래밍 언어들의 체계는 많이 비슷하기 때문에 기본적인 프로그래밍 지식은 알고있습니다. C/C++를 많이 써보지 않았다고 말하는게 맞겠네요. 이 부분을 보강하는것이 신입기획자로서 게임시장에 발을 들이는데 도움이 될지 궁금하네요. 기획쪽으로도 공부할것들이 많아서 이 부분에 얼마나 시간을 투자해야할지 고민이 되어 여쭈어 봅니다.
  • 송쏫으 2013/01/21 17:18 #

    또한 제가 서버 프로그래밍쪽으로 많이 부족합니다. 서버프로그래밍 쪽으로는 기획자가 얼마나 알고있어야 하는지 궁금하네요.
  • storm 2013/01/21 17:51 #

    시스템 기획을 할 때 중요한 것은 프로그래밍 언어가 아니라 소프트웨어 설계와 관련된 지식입니다.
    JAVA나 C# 역시 객체지향적 언어이므로 클래스, 템플릿 등등을 써보셨을테니 객체지향이 뭔지는 개념적으로 이해하시리라 봅니다. 소프트웨어 공학, 객체지향, 데이터베이스 등을 좀 더 공부하시면 좋을 것 같네요.
  • 슭꼼 2013/04/05 21:01 # 답글

    모델링=추상화를 하는것 이라는건가요...? 찾아보니 그런식으로 이해가 되는대 음음...
    계속해서 스톰님의 글들을 읽어 가니까, 프로그래밍이 흥미로워 지고 있어요
    곧 기획서 쓰는 연습을 하고 VBA공부를 할 시간이 다가 오고 있군요. 감사합니다!
댓글 입력 영역



통계 위젯 (화이트)

2917
177
502137