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

// 이 글은 1편 ( http://sstorm.egloos.com/5534178 )에서 이어지는 글이므로 반드시 1편을 먼저 읽은 후에 보시기 바랍니다.

지난 글에 이어서 게임기획자의 프로그래밍 공부에 대해서 이야기해봅시다. 앞서도 언급했듯이 시스템 기획자의 경우에는 다른 파트의 기획자보다 훨씬 높은 수준의 프로그래밍 지식이 필요하다. 이유는 간단하다. 시스템 기획이라는 것이 결국 '무엇을 프로그램으로 만들 것인가'를 규정하는 것과 마찬가지이기 때문이다.

이해를 돕기 위해 일반적인 MMORPG 신규 개발팀에서 시스템 기획자와 프로그래머의 대화를 재연(응?)해보도록 한다.

* * * * * * * * * * * * * * * * * * * * * * * * * * *


시스템 기획자: 여기 스킬 시스템 기획서가 나왔습니다.

프로그래머: 분량이 상당히 많네요. 어디 봅시다. (기획서를 살펴본다)

프로그래머: 스킬을 각 직업별로 분류해서 설명을 나열하셨군요. 기획서를 이렇게 주시면 곤란합니다.

시스템 기획자: 왜 그렇죠?

프로그래머: 음... 간단하게 말하면 일단은 스킬 시스템에 '추상화'가 전혀 되어있지 않은 것이 문제입니다.

시스템 기획자: 추상화? 피카소를 좋아하시나요? 의외로군요. 하지만 전 인상파를 좋아한답니다.

프로그래머: 지금 하신거 개그죠?

시스템 기획자: 뭐 갑자기 추상화를 찾으시길래 개그 한 번 했죠.

프로그래머: 제가 말한 추상화는 그런게 아니라 '객체지향' 프로그래밍 용어에요. 객체지향이 뭔지는 알고 있죠?

시스템 기획자: 객체지향? 음 뭐 들어본 것 같긴 하네요. 아무튼 추상화는 왜 찾는 거죠?

프로그래머: 제가 이 시스템을 구현하는 작업을 하려면 적어도 스킬 시스템의 추상화가 먼저 되어야 합니다.

시스템 기획자: 그러니까 추상화란 건 프로그래밍 용어인 거죠? 그러면 추상화도 프로그래머가 해야 맞는 거 아닌가요?

프로그래머: 물론 우리 회사가 일반적인 소프트웨어나 시스템 개발사라면 그 말이 맞을 수도 있겠죠. 하지만 이 기획서에서 만들려고 하는 게 정확하게 무엇인지는 기획팀에서 제일 잘 알고 있는 거잖아요? 그러니까 기획팀에서 추상화를 해주셔야 합니다. 프로그램팀에서 하는 것이 전혀 불가능하진 않지만 그러면 작업 일정이 너무 지연되버려요.

시스템 기획자: 도대체 이해할 수가 없군요. 프로그래머들은 꼭 그렇죠. 할 말 없으면 자기들만의 전문용어를 내세워서 정당화시키고 이런 저런 핑계를 대서 일을 회피하려고 하고...

프로그래머: ..... (속으로: 아놔 뭐 이런 놈이 다 있냐?)

* * * * * * * * * * * * * * * * * * * * * * * * * *

위 재연은 다소 극단적이긴 하지만, 시스템 기획자가 정말로 프로그래밍에 대한(특히 객체지향) 지식이 전무할 때 일어날 수 있는 현상을 예로 든 것입니다.

위 재연에서는 두 가지 용어가 등장하죠. 바로 추상화와 객체지향입니다. 프로그래밍을 공부하지 않은 사람이라면 이 용어들이 정확하게 무엇을 의미하는지, 그리고 위 대화에서 기획자와 프로그래머가 왜 말이 통하지 않는지를 잘 이해하지 못할 것입니다. 하지만, 객체지향이나 추상화 등의 의미가 무엇인지는 나중에 설명하기로 합시다. 중요한 것은 위와 같이 기획자와 프로그래머 사이에 대화가 통하지 않게 되면(소위 말하는 커뮤니케이션 문제) 그 게임은 제대로 개발될 가능성이 매우 낮아진다는 사실입니다.

그럼 이제 본론으로 들어가봅시다. 프로그래머는 어떤 프로그램을 구현하기 전에, 그리니까 코딩을 시작하기 전에 먼저 '요구사항 분석'이라는 과정을 거칩니다. 쉽게 말하면 '만들어야 할 프로그램이 어떤 일을 처리해야 하는지, 어떤 결과물을 만들어야 하는지 등을 파악하는 것이죠.

게임 개발팀이라면, 보통은 기획팀에서 기획서를 통해 요구사항을 프로그램팀에 전달할 겁니다. 스킬 시스템 기획서라고 한다면, 스킬의 종류, 스킬과 관련된 데이터의 종류, 명중판정이나 데미지 계산 공식 등이 나열되겠죠. 아, 플로우차트도 들어있겠군요. 이 정도가 일반적인 게임기획자들이 작성하는 기획서의 내용물입니다. 그리고 기획자들 사이에서 흔히 말하는 '시스템 기획서의 수준'은 대부분 이와 같은 내용을 얼마나 깔끔하고 간결하게 정리했는지에 따라 가려집니다.

물론 프로그래머는 이정도의 내용만 가지고도 '기획서에서 말하는 시스템'을 구현할 수는 있습니다. 그런데 이렇게 할 경우 크게 두 가지 문제점이 발생합니다. 첫 번째 문제는, 프로그래머가 구현해해는 것이, 기획자가 정말로 원하는 시스템이 아니라 기획서에 써있는 시스템으로 나온다는 사실이고, 두 번째 문제는, 개발의 효율성과 생산성이 크게 떨어진다는 점입니다. 그리고 이 두 가지 문제점은 거의 모든 게임 개발 과정에서 발생하는 고질정인 병폐기도 하죠.

도대체 무엇 때문에 이런 일이 벌어지는 것일까요? 다음 포스팅에서 적절한(?) 예시를 통해 설명해보겠습니다.

■ 3편 보기: http://sstorm.egloos.com/5539929
 


핑백

덧글

  • 小さな願いのあすか 2011/08/28 16:22 # 답글

    먼가.. 슈파파바방 하고.. 스펙터클한 걸로 화려하게 보여주세요 ..
    같은 것만 적어놓고.. 정작.. 어떤 형태로 보여야하는지는 말 안해주는.. 전형적인 그런 요구가 많죠 ㅡ_ㅡa.

    일례로... 3일만에 YES24와 같은 교재 구매 사이트를 원하는데 만들수 있나요 ? 라던가.. ㅡ_ㅡa..
    (직원이..대형 쇼핑몰 제작기는 아니라고 ㅡㅡ+... 월급 더 주는것도 아니면서..)
  • storm 2011/08/28 20:38 #

    쇼핑몰 호스팅을 이용하시면...!!!
  • watereye99 2011/08/28 17:10 # 답글

    슈파파바방을 '슈'와 '파'와 '파'와 '바'와 '방'으로 나눠서 만들어 달라고 할 수 있으면 프로그래밍 팀과 대화를 시작할 수 있겠네요.
  • storm 2011/08/28 20:38 #

    하지만 초성-중성-종성으로 추상화 한다면 더욱 좋겠죠.
  • 김윤정 2011/08/28 17:44 # 답글

    우하하하하 재밌다
  • storm 2011/08/28 20:38 #

    재밌으면 추천!
  • 김윤정 2011/08/29 01:05 #

    춧천!!
  • 김진수 2011/08/28 20:15 # 답글

    다음 포스트가 더 기다려지네요 ㅎㅎ
  • storm 2011/08/28 20:39 #

    저도 기다려지네요!
  • 웹도날드 2011/08/28 21:22 # 답글

    너무 짧아요 더더!!
  • storm 2011/08/28 21:49 #

    새벽에 잠 안오면 3편을 올릴지도요 ㅎㅎ
  • 미친고양이 2011/08/29 00:05 # 답글

    그래서 UML책을 보고 있지만 뭔 소린지 80%이상 이해 못하겠어요!
  • storm 2011/08/29 00:12 #

    코딩을 전혀 안해본 사람은 UML을 이해하기가 어렵죠. 유스케이스 다이어그램 정도만 그럭저럭 이해할 수 있겠죠. 그런데 한 차원 업글하려면 클래스 다이어그램을 이해해야 합니다.
  • gump 2011/08/30 18:10 # 삭제 답글

    요즘 포스팅이 뜸하시더니 감이 떨어졌어... ㅋㅋㅋ
    (그러는 내 블로그는 요즘 잠수중... 아 블로깅 어려워 ㅜ.ㅜ )
  • gump 2011/08/30 18:12 # 삭제 답글

    추상화를 잘 모르는 기획자를 위한.. 간략한 설명...
    프로그래머한테 추상화 물어보면 어려우니까 ㅋ 기획자 입장에서 정리한?
    http://blog.naver.com/gamediz/20040320702
  • storm 2011/08/30 18:19 #

    ㅋㅋ 좋은 글이긴 한데 프로그램 공부 안해본 사람은 저걸 읽어도 이해할 수 없다는게 문제죵 ㅎㅎ
  • storm 2011/08/30 18:25 #

    사실 추상화는 정말 프로그래밍 안해본 사람한테 제대로 이해시키기는 매우 어려운거고, 앞으로 이어질 글에서는 일단 '(데이터베이스) 모델링' 기법에 대해서 설명할까 해용. 이걸 먼저 이해하고 나면 추상화에 대한 이해가 더 쉬울 것 같다는 생각!
  • gump 2011/08/31 10:13 # 삭제 답글

    나름 쉽게 쓴거예요 -_-;
    저거보다 더 쉽게 어케 씀
  • storm 2011/08/31 10:29 #

    껌푸님 글이 어렵다는게 아니라 추상화라는 개념 자체가 어렵다는 거죠. 그래서 뭔가 다른 방식으로 설명할 방법을 구상하고 있어요 ㅋㅋ 발끈하시긴
  • 푸른비 2011/08/31 13:40 # 삭제 답글

    일단.. 전형적인 '기획->기획서->프로그래밍' 의 단계 이군요.
    즉, 기획 이전에 이미 프로그램팀은 물론 그래픽팀등 하나의 게임을 만들어 가는 '전체 팀'의 바라보는 방향(기획 혹은 의견, 또는 컨셉)에 대해 서로 충분히 논의 하고 이해한 후라면..

    '슈파파바방~' 이 무슨 의미인지 서로 이해를 할수 있지 않았을까 합니다.

    추상화에 대한 전달- 이건 분명히 동의를 합니다만, 그 추상화가 각자의 머리속에 든것을 풀어서 내는 거라면- 서로 이해하고 공유된 내용이 아니라면, 그 결과물도 역시나 좋지 않을거라 생각합니다..

    ...

    기획 내용을 기획팀이 '제일' 잘 아는건 맞지만, 서로가 '같은 걸' 아는것도 중요하다 생각하는 1인-
    평소엔 전혀 게임 내용이나 컨셉, 시스템에 관심 없다가- 기획서만 오면 그때부터 생각하는 프로그래머도 싫다는...

    게임은.. 기획자가 만드는 것도, 프로그래머가 만드는 것도 아닌..
    '함께' 한다는게.. 개인적인 지론!
  • storm 2011/08/31 13:53 #

    '함께' 만드는 게 가장 바람직한 길이지만, 그걸 추진할 수 있는 건 개발 프로젝트의 최고위층에서나 가능한 일이니 여기서는 논외로 하고 있습니다.
  • 알콜코더 2011/08/31 16:11 # 삭제 답글

    자~ 이제 커미션을 떼어주세요~~
  • storm 2011/08/31 16:33 #

    채널링이니까 업계 관례인 7:3 으로 하죠
  • 윈드밀 2011/08/31 16:44 # 삭제 답글

    흠 어렵내요 객체지향의 클래스 상속 객체개념은 이해가나 문서로 작성해서 보여준다는것이 이해가 안되네요(학 난 둔재였군!!!) 검프님의 도표의 내용안에스킬을 넣고 스킬의 효과 명 임팩트 이미지 효과음 예제 정노 삽입한것받에 생각이 안나네요 ㅇㅇ 후편있을지모르지만 기대하겠습니다 ㅅㅅ
  • storm 2011/08/31 16:57 #

    오늘 쬐끔 일찍 퇴근할듯 하니 3편을 쓸 생각입니다.
  • highseek 2011/10/22 02:12 # 답글

    추상화는 프로그래밍 용어가 아니라 소프트웨어 공학 용어죠.

    시스템 기획자: 그러니까 추상화란 건 프로그래밍 용어인 거죠? 그러면 추상화도 프로그래머가 해야 맞는 거 아닌가요?

    이 말 자체가 말이 안되는 것 같습니다.
  • storm 2011/10/23 17:33 #

    학문적으로는 그럴지 몰라도 실무에서는 추상화 = 프로그래밍 용어죠.
    말이 안될 것까지야...
  • highseek 2011/10/23 18:15 #

    기획자, 설계자, 디자이너 등등, 꼭 프로그래머가 아니더라도 소프트웨어 업계에 몸담고 있다면 소프트웨어 공학의 기본 개념은 숙지해야 한다는 생각에서 하는 이야기입니다. 프로그래머만이 사용하는, 프로그래밍에 국한된 게 아니라는 말이죠.

    객체지향이라는 것도 결국은 소프트웨어를 설계하고 그것을 표현하는 방법으로 나온 것이니까요.
  • storm 2011/10/23 18:21 #

    제 포스팅의 내용을 오해하고 계신 것 같습니다.

    시스템 기획자: 그러니까 추상화란 건 프로그래밍 용어인 거죠? 그러면 추상화도 프로그래머가 해야 맞는 거 아닌가요?

    이 말은 기획자도 추상화 같은 개념을 알고 있어야만 한다는 말을 하기 위해서 '바람직하지 못한 기획자의 예시'를 든 것이니까요.

    추상화 등등 프로그래밍의 개념이나 소프트웨어 공학이 기획자에게 필요 없다고 생각한다면 제가 위와 같은 포스팅을 할 이유가 없겠죠.
  • highseek 2011/10/23 18:22 #

    네. 결국 같은 이야기에요.

    내용을 오해하는 게 아니라, 포스팅의 내용에 동조하여 단 덧글입니다. -_-;;
  • highseek 2011/10/23 18:48 #

    그리고 약간 첨언하자면, 게임게발이 아니더라도 일반적인 소프트웨어나 개발사에서도 같습니다. "일반적인 소프트웨어나 시스템 개발사라면 그 말이 맞을 수도 있겠죠." 라는 프로그래머의 대사에 오해의 소지가 있네요.
  • storm 2011/10/23 21:35 #

    "이 말 자체가 말이 안되는 것 같습니다"라는 댓글을 제가 오해했군요.ㅎㅎ

  • 초보 2016/10/29 00:38 # 삭제 답글

    아!! 무슨 소리인가 해서 계속 읽었는데 결국 최대한 화려하게 라고만 적어놓는 걸 말씀하시는구나!
    뭔가 추상적으로 화려함을 표현 하는게 중요하다는 건가요?

    예로 파이어 볼 이라고 스킬명을 정하고, 스킬 이펙트나 스킬 시전 모습등을 프로그래머에게 설명할때,
    차렷 자세로 두손을 모은다. 입으로는 주문을 외우고 2~3초뒤 손 앞으로 붉게 피어오르는 구체, 날아가면서 붉은 꼬리를 형성,대상에 명중했을때 주위에 폭발하지 않고 불이 옴겨 붙는다. 식으로 하는건가요??
  • storm 2016/10/31 16:04 #

    이어지는 글을 읽어보시면 아마 이해가 될 겁니다.
    사실 추상적으로 시스템을 기획하는 일은 초보기획자에겐 매우 어렵습니다. 그래서 글을 읽자마자 단번에 이해가 되지 않을 거구요. 실제로 기획을 해보면서 시행착오도 겪고 분석도 많이 해봐야 합니다.
댓글 입력 영역



통계 위젯 (화이트)

2917
177
502137