분류 전체보기



학교에서 발표했던 자료, 개정판이긴 한데 완전판은 아니고 하고싶은 이야기가 많이 빠져있다.


01

Intro,

본 프로젝트는 정말 처참하게 말아먹었습니다.

개발된 리소스를 모두 사용하지 못하였고 네트워크 게임으로 개발되던것을 급하게 싱글플레이로,

그것도 플레이가 안되는 상태로 마무리를 했기 때문이죠,

멀쩡하게 플레이 되는 클라이언트도 없어서 포트폴리오로 내기도 무안한 프로젝트입니다.

... 하지만 이 프로젝트에서 배운것은 참 많았습니다.


프로젝트 소개,

게임 타이틀은 Justice Colosseum(저스티스 콜로세움), 네오위즈 배틀 스타디움과 비슷한 의미로 따왔습니다.

장르는 3D MOBA, 요즘 가장 핫한 게임인 리그 오브 레전드와 동일한 장르입니다

플랫폼은 Windows 기반 PC, 1024 x 768 해상도로 개발 되었습니다.

개발환경은 오픈소스 공개엔진인 Ogre(오거) 엔진 1.8.2에 Boost(C++) 라이브러리 1.5.3을 이용하였습니다.


프로젝트 참여 계기 소개

저는 이 프로젝트를 처음부터 한 것이 아니었습니다.

처음 프로젝트를 진행할 때는 기획자 2명(시스템)에 시나리오 1명(컨텐츠), 3명이라는 널널한 환경에서 출발했습니다.
6개월 정도 진행을 했지만 멀쩡한 게임의 모습은 나오지 않았고, 기획자가 다 빠진 상태에서 제가 이어받습니다.
시나리오 학과 학생은 쓸 수 있는 인력이 있었지만 제 개인적인 판단으로 인해 따로 두지 않았습니다.

그렇게 연장 하게 된 프로젝트는 기획자 1명, 프로그래머 2명, 3D 아티스트 3명(배경, 캐릭터, 몬스터), 2D 아티스트 1명,
총 7명으로 재구성 되었습니다, 저중에 프로그래머 2명과 3D 아티스트 1명은 졸업을 앞두고 있던 졸업 준비생이었습니다.
학교에는 인력수급에 대한 호소문 까지 제출했지만 형평성을 이유로 인력 충당을 받지 못하였습니다.
(여기서 일어난 트러블로 인해 저는 과생활을 기피하게 됩니다 -_-...)

한번 망했다고 평가받는 프로젝트를 다시 받아 진행한다는 것, 그것은 저에게도 살짝 힘든 결정이었습니다.
하지만 3D 게임을 한번도 만들어본 경험이 없었고, 또한 다른 사람이 진행하던 프로젝트를 이어서 진행해본 경험도 없었고
또한 망한 게임을 성공시켜본 경험도 없었습니다. 그런 경험을 할 수 있다는 것이 저에게는 메리트로 다가왔고
이 프로젝트를 수락하고 진행하게끔 하였습니다. (그리고 나락으로 떨어집니다...)


3D 캐릭터/몬스터 모델링

여러분이 배워 왔던 게임 기획, 게임 개발은 이런게 아니었나요? (5 Slide)
기획자/기획팀이 디자인 컨셉을 잡고 그래픽 원화팀에게 전달하면 그 그래픽 원화를 바탕으로 3D 결과물이 나오는 방식,
저도 그렇게 배워왔고 다른 사람도 그렇다고 했었습니다. 기획서 없이 게임 만드는 사람이 이상하다고 했었죠,

먼저 보여드리는 그림(6 Slide)는 컨셉 작업을 모두 마치고 작성한 리소스 입니다.
하나는 뽀샤시하고 하나는 우중충하고... 또 같은 게임에 쓰이는게 맞는지 모를 퀄리티 차이도 보입니다.
저 캐릭터들은 시간에 부쳐서 애니메이션도 만들지 못하였습니다.

지금 보여드리는 그림(7 Slide)는 기획서 없이 컨셉 잡고 바로 제작한 리소스 입니다.
동일한 기간에 기획서가 없는데도 애니메이션 까지 다 나왔습니다.
물론 기획서가 없다고 해서 요구사항과 레퍼런스가 없는건 아닙니다.

왜 이런 차이가 벌어졌을까 간단히 설명하자면... 설계와 제작 의사소통에 달려있다고 말씀드리고 싶습니다.
이전 프로젝트는 설계와 동시에 제작이 이루어졌기에 설계가 끝날때 까지 제작 파트에서는 손가락 빨고 있던 시간이 많았고
또한 이러한 과정을 거치면서 작업이 굉장히 늦게 착수되었기 때문입니다. 또한 기획서라고 자세하게 적어서 준 문서들을
아티스트들은 바로 이해하지 못하였고 두번 세번 물어보게 됨으로서 작업 진척을 더디게 하였습니다.

반면 이번 진행방식에서는 원화팀에 부연 스토리같은 짜잘한 설정 없이 바로 어떠한 컨셉의 어떤 캐릭터를 디자인해달라,
라고 말을 한뒤 3D 아티스트가 바로 거기에 맞춰 모델 작업을 들어갔습니다.

여기서 시간 낭비를 줄일 수 있었고 줄인 시간을 애니메이션에 투자하여 기대만큼의 결과물을 받을 수 있었습니다.
그리고 그렇게 만들어진 결과물에다 살을 붙여 캐릭터 설정을 완성함으로서 좀 더 효율적으로 작업할 수 있었습니다.


3D 배경(레벨 디자인)

모티브가 된 맵이 있었기 때문에 (리그 오브 레전드의 뒤틀린 숲) 빠르리라 생각했던 3D 배경...
레퍼런스가 있고 그걸 뜯어서 볼 수 있다고 해도 쉽게 풀리진 않았습니다 -_-;

가장 큰 실수를 꼽자면 배치는 있었지만 축척 및 시안 그림을 그리지 않고 작업을 한 문제가 있었습니다.
이 실수는 다른 문제와 연결되는데... 필드에 캐릭터가 표시될 정확한 사이즈와 오브젝트의 비율을 계산하지 못했던것이었습니다.

2D 게임에서는 이런 캐릭터나 오브젝트를 보이는데로 (Pixel) 배치하면 그만이었지만 3D 게임은 엔진에서 쓰는 단위가 있고
FOV(Filed of View) 등 고려해야될 요소가 많았던겁니다. 그래서 가급적 원화 작업으로 어떤 오브젝트를 어디다가
배치하고 이 오브젝트 크기가 캐릭터에 비례했을때 어느정도인지, 그리고 어떠한 모습을 보여주고 싶은지를 명확히 정한뒤
모델 및 맵핑작업을 했으면 좋았을 것이란 생각이 듭니다.

즉, 즉홍적으로 오브젝트를 마구마구 배치하다보면 다른 작업물이랑 비율이 맞지 않아 요리조리 손보다 보면 작업물이 더디게 나오게 되니 사전 원화 작업 및 축척을 미리 다 정하고 작업하세요! (더미로 엔진에 올려보셔도 좋습니다.)


끝내주는 설정집

캐릭터의 기본 정보와 유래, 출신배경, 성격, 행동, 적대관계 등등...
3개월이란 짧은 시간내에 만들어야 되는 게임에서 이러한 설정문서를 짜고 이 문서를 바탕으로
아티스트들이 설정집을 이해하고 리소스를 제작하고 좀 더 멋진 작업물을 만든다......

정말 이상적인 환경입니다. 하지만 우리는 그러지 못하였습니다.
성향에 따라 다르겠지만  아티스트들은 자신이 무엇을 그려야 하며 어떤것을 모델링하고 맵핑하고 애니메이션 하는지에
관심이 있었습니다. 이런 화려한 설정문서는 교수님과 단순히 지켜보는 독자들은 좋을지 몰라도 아티스트들과
실제 작업하는데는 전혀 좋은 영향을 주지 못하였습니다. (무엇보다 글 많으면 잘 안읽습니다 -_-;)

가급적 이러한 설정을 반영을 하여 작업을 꼭 시키고 싶다면 이런 글보다는 다양한 레퍼런스를 잘 수집해서
이 레퍼런스를 보여주면서 거기에 맞춰달라는 부탁을 하는게 좋습니다.
특히 3D 작업을 부탁 할때는 게임에서 분해한 fbx 나 시뮬레이터를 많이 보여줄 수록 좋습니다.


뭐 이것저것 열심히 한 것 같은데 왜 망했어요?

그러게 말입니다. -_-;

가장 억울할때가 열심히 하고 결과물이 그렇게 안나왔을때라고 하죠..


기획자의 개념 부족,

먼저 제가 3D 무경험 기획자였기 때문에 3D 작업물이 어떻게 만들어지고 어떻게 결과물이 게임에 반영이 되는지 몰랐습니다.
제가 결정하고 지시를 내려야 되는 사항은 많았지만 거기에 대한 지식이 많이 부족했죠,

그걸 납득 할만큼 깨달은 순간에는 이미 개발 기간이 중반을 넘어선 뒤였습니다.
제가 개념을 안 뒤에 프로젝트에 착수했더라면 이것보다 좀 더 좋은 결과물이 나오지 않았을까 싶습니다.

제가 JC를 개발하면서 가장 많이 도움받았던 책 두권을 들자면

- 열혈강의 3ds Max 게임 캐릭터 디자인 - FREELEC (신장판이 나온걸로 알고있습니다.)
- 셰이더 프로그래밍 입문 - 한빛미디어

를 꼽을수 있겠습니다, 둘 다 기획자가 개념 이해하고 읽어 보기엔 좋았지만
셰이더 프로그래밍 입문은 말그대로 프로그래밍 입문이라 어떤 셰이더가 게임내 결과물에 어떤 느낌을 주고
어떤 게임을 만들때 이러한 기법을 써야된다 같은 정보는 부족해서 다소 아쉽긴 했습니다.


공짜는 없다,

저희가 게임을 개발했던 엔진은 Ogre 3D 엔진입니다.

2005년쯤 대중에게 공개된 오픈소스 3D 엔진이며 디아블로류 게임인 토치라이트가 이 엔진으로 개발 되었습니다.

요즘 가장 많이 쓰이는 Unity 3D 엔진은 포럼도 왕성하고 오픈된 자료도 많고 에디터로 뭐가 뭔지 바로 볼수도있고
쉽게 수치를 바꿀 수 있어 민첩하게 개발 할수 있는것과 반대로 저희가 게임 개발을 했던 엔진은 Ogre 3D 엔진은
엔진 자체는 공짜고 소스가 오픈되어있어 배울 수 있는 요소도 많긴한데
돈을주고 산 익스포터도 불편하고 제대로 작동하지 않으며 
에디터 기반엔진도 아니라서
뭘 만지면 무엇이 어떻게 바뀌고 기획자가 잘 되고 있는지 바로 바로 확인도 힘듭니다.

유니티가 나오면서 자연스레 찬밥이 되어서 국내 유일한 포럼인 네이버 카페에 가도 질문글만 있고 답변이 없으며
영문권 포럼에 가봐도 만족할만한 글과 정보를 접하기가 힘들어 (자료가 없습니다...) 
제작 환경 구성이 굉장히 불편하다고 할 수 있습니다.

...제일 난관이었던 이러한 난관속에서
검증이 안된 오픈소스 라이브러리를 이것저것 더 붙여 완성에 대한 실낱같은 희망을 버린겁니다.

Autodesk 사에서 나온 Scaleform 이라는 솔루션이 있습니다.
플래시로 UI를 만들어서 동적 인터렉션을 같이 줄 수 있는 라이브러리인데요,
스트리트 파이터 4 등의 게임에 사용되어 큰 호평을 받았습니다.

Ogre 엔진에는 이 기능을 카피한 오픈소스 라이브러리인 Hikari가 있습니다.
Swf 파일을 게임에 불러와 사용할 수 있게끔 제작이 되어있지만 오픈소스 라이브러리다 보니
공식적으로 이 코드에 대해서 지원해주는 개발자가 없어 (이미 해당 프로젝트에 관심이 떠남)
문제가 생겨도 도움을 받을 수 없었으며 파이널 버전인 v0.3에서 메모리릭(누수)이 되는
치명적인 문제가 있어 사용에 애로사항이 많았습니다.

더군다나 같이 작업을 했던 아티스트 들이 이러한 작업에 익숙하지 않아 작업이 힘들었고
불러온 SWF 파일에서 사운드는 출력이 되지 않는 등 다양한 문제를 짧은 개발 시간내에 해결한다는 것은 불가능 했습니다.


일정 조율 실패,

기존에 제작된 결과물이 어느정도인지 파악할 수 없었으며, (로그도 없고 인수인계도 제대로 되지 않았고...)
불확실한 변수가 많은 상황에서 만들다보니 완충 기간을 뛰어넘어서도 개발이 이루어졌습니다.

또한 팀원들이 개인 성장에 초점을 맞추고 게임을 제작하다보니 꼭 그렇게 안해도 되는 방식을 많이 채택하기도 하여서
스스로 무덤을 많이 팠습니다.

사실 이런 짧은 프로젝트에서는 얼마나 코드가 이쁘고 설계가 깔끔했냐라는 것 보다는
한정된 기한내에 만져 볼 수 있는 결과물을 내는게 우선이었는데 제가 그렇게 설득하지 못한점이 많이 아쉽습니다.


기획서는 재활용이 가능한가?

네, (반은 맞고 반은 틀림)

하지만 저는 새로 작성했습니다, 아티스트가 한 말 그대로 알아먹을 수가 없었기 때문이죠 -_-;
제작을 하고 기획서를 다시 썼습니다. 기획자가 바뀐다고 꼭 한번 엎는것이 아니라 제대로 명기가 되지 않은 상황을
다시 지정하는 작업이 거의 기획서를 새로 쓰는 만큼의 분량이 되어서 기획서를 새로 쓰다시피 했습니다.


일정표가 있어도 꼭 그대로 굴러가진 않습니다.

일정표는 꼭 있어야 하고 그렇게 되게끔 짜는게 가장 중요하지만

유도리 있게 땡길건 땡기고 밀건 밀어도 좋습니다. 꼭 그대로만 하려고 하지 마세요


쓸데없는 고퀄 (목적망각)

우리는 주어진 본분에 충실해야됩니다. 이번 학교 프로젝트는 학생들이 배운 기술로 예측했던 결과물을 낼 수 있는가가
목표였지만 그 뜻을 학생 개인의 성장으로 해석하고 공부만 실컷했습니다 -_-...
즉 결과물이 나오지 않았습니다. 기본적인 목적을 망각한거죠...

우리는 게임을 잘 만들었어야 했습니다.


알아야 잘 만들 수 있습니다.

만들면서 배워나가는 것도 있겠지만
최소한 접근하려는 프로젝트에 대한 기본적인 소양을 갖추고 임하는것이 가장 우선이며

주어진 일정과 목적에 대한 것을 망각하지 않고
꾸준히 그 목표를 향해 달려갈 때 원하는 결과물을 손에 쥘 수 있을 것 입니다.


제작 계기,

2012년 중후반, 저는 G스타 2013에서 학교 부스 스텝으로 참여 하고 있던 와중 
박근혜 대선후보(현 댓통령...)을 만나 셧다운제에 대한 질문을 하게되었습니다.
(
http://ppss.kr/archives/5124)

그리고 이 일로 오랫동안 연락이 뜸했던 동호회 지인 용가리님을 통해 용가리님이 일하던 레지오 소프트에서
Neurosky사의 Mindwave Mobile을 대여받게 됩니다.

막상 단말기를 빌렸지만 저는 개발자가 아니었기에 아무것도 할 수 없었습니다.
그러던 와중 재학중이던 SAGE(서강대학교 게임교육원)의 학술동아리 선빈동의 2대 부장을 맡게되면서
게임을 이용한 다양한 분야에 관심이 많은 권순정 교수님을 만나 장비를 전달하고
BCI를 이용한 게임을 만들어보자고 마음을 먹었지만 바로 시작할 엄두를 못내고 있었습니다.

게임 구상,

게임을 만들려면 먼저 기획이 있어야 합니다.

처음 교수님은 미니게임을 여러개 만들어보고 미니게임 묶음팩을 만들어 본 뒤 그것을 포스트모템하여
학생들끼리 이러한 시도를 해보았다 라는 초점으로 가자고 이야기를 했습니다.

그래서 선빈동 내부에서 게임 아이디어 공모전을 진행을 하고 다수의 게임이 출품되었습니다.
(사비로 PC판 스파4, 스마트폰용 수화기를 상품으로 걸고 진행했습니다 -_ㅠ)

But... 여기서 제출된 아이디어를 거의 쓸 수가 없었습니다.

왜냐하면 BCI 단말기의 특징을 제대로 알려주지 않은 상태에서 게임 기획을 지시하다 보니
단말기의 스펙과 성격을 뛰어넘은 게임 기획이 나왔기 때문입니다 -_-;

이러한 미니게임 형식의 게임은 기존의 논문에서 다 시도가 되었던 부분이었습니다.
그래서는 이 개발의 의미와 우리가 가질 수 있는 가치가 떨어질 것이라 생각했습니다.

그러던 와중에 디지털 스토리텔링 학과에 있는 동아리원이 늦었지만 한번 써본다고 기획서를 넘겨주었습니다.

어드벤처 게임,

플라밍고라는 이름의 기획서를 받아 든 순간 머리속에서는 어드벤처야 말로 BCI에 가장 적합한 장르의 게임이 아닐까 생각했습니다.

앞서 나왔던 아이디어를 쓸 수 업섰던 가장 큰 이유는 기계는 정적인 인터렉션(명상, 집중)을 지원하는데 반해
나와있는 아이디어는 모두 순발력을 요구하는 동적 컨텐츠 들이 주를 이루었기 때문이지요,

하지만 어드벤처 장르는 이야기가 다릅니다. 게임 자체가 정적으로 진행이 되고 퍼즐을 푸는 요소에는 순발력보다는
집중력이 요구 되기 때문이지요, 그래서 우리는 어드벤처 게임을 BCI로 개발하기로 합니다. 


No more iraq,

플라밍고에서 기획되었던 BCI활용 요소의 대다수가 단발성으로 진행이 되는 미니게임이다보니
지속 가능한 게임 플레이를 위해서는 인터렉션을 활용하는 요소를 새로 기획할 필요가 있었습니다.

그래서 스코프 개념을 도입하여 방안에 있는 수수께끼 요소를 찾는 방탈출 게임을 기획하게 되었습니다.

일정 미스로 인해서 실질적인 개발착수는 중간고사 기간이 끝나고 시작되게 되었습니다.
추가로 교수님의 희망에 의해 한국게임학회 추계 학술발표대회에 나간다고 신청까지 한 상황,

테크 데모를 위한 3스테이지 제작을 목표로 1달간 불철주야 개발 삼매경에 빠졌습니다.


출전,





사용된 BCI 요소,

1. 동영상을 보면 3분 48초에 스코프를 쓰는걸 볼 수 있습니다.
   스코프를 쓰면 벽이나 사물에 숨겨진 메시지를 볼 수 있습니다. (게임 핵심 스토리에 대한 내용이나 게임 진행에 대한 힌트)
   스코프는 사용자의 집중력이 높으면 또렷하게, 집중력이 낮으면 흐리게 보입니다.

2. 이밖에도 명상력을 이용해서만 보이는 메세지나 퍼즐요소가 기획되어 있었지만 실제 게임에는 반영되지 못했습니다. orz


잘된점,

1. PM이 개발 없이 순수 PM만 하니 기획, 그래픽, 코더를 잘 엮어 빠른 시간내에 결과물이 나올 수 있었다.

2. 조금은 서먹했던 동아리원들이 하나의 공동작업을 통해서 좀 더 유대관계를 가질 수 있었다.

3. 한국게임학회에서 교육원 학부생 최초(?)로 상을 받아왔다.


아쉬운점,

1. 제대로 된 개발 히스토리를 남기지 않은체 너무 주먹구구로 게임을 만들었다.

2. 급하게 만들다 보니 제작된 리소스를 모두 사용하진 못했다.

3. 개발 과정이 짧아 원하던 만큼의 퀄리티가 나오지 못했다.

4. 논문에 같이 참여한 학생들의 이름을 다 올리고 싶었는데 그러지 못했다.


마무리,

짧은 시간 속에서도 이렇게 프로젝트를 마무리 할 수 있게 도와준 동아리 원들과
Mindwave Mobile 단말기를 빌려주신 레지오 소프트 대표님과 용가리님,
Thinkgear Libary 연동을 도와주신 토이캣 허준 대표님에게 너무 감사하고
앞으로도 이러한 개발 기회를 늘려 게임의 새로운 가능성을 더 열어나가겠습니다.


에듀테인먼트, 생소하게 들리겠지만 우리 생활 전반에 자리잡고 있는 에듀케이션(학습)과

엔터테인먼트(흥미)를결합한 새로운 형태의 장르를 이야기 한다.


대한민국에서 만화를 그리거나 게임을 만드는 사람들이라면 이와같은 주제를 다룬 국책사업,

공모전들을 심심치 않게 보았을것이라 예상한다. 이 책은 그런 사람들이 한번쯤 읽어보면 좋을것 같다.


초등학생, 미취학 아동들에게 선풍적인 인기를 끌었던 ‘XXX 에서 살아남기’ 라는 제목의 서바이벌을

주제로 한 만화책을 대표적인 에듀테인먼트라고 볼 수 있으며

위인전과 각종 과학지식들도 재미를 부가시켜 에듀테인먼트로 재 탄생한다.

또한 범국민적으로 히트를 쳤던 만화로보는 그리스 로마신화와 마법천자문도 성공한 에듀테인먼트의 예라고 볼 수 있다.


저자는 에듀테인먼트가 나아가야할 방향성과 향후 발전과제로 ‘스토리텔링’을 꼽고 있다.

단순히 알아야 할, 알고싶은 내용을 단순한 만화, 단발성의 게임 스테이지로 옮기기 보다는 대립관계와

퀘스트를 가진 스토리텔링을 통하여 이것을 하여야 하는 개연성, 동기를 극대화 하고 노골적인

에듀케이션의 색을 지워 학습자로 하여금 학습에 대한 부담감을 낮추면서 배우고자 하는 항목을

절로 몰입하여 학습되도록 유도할수 있다는 것이다.


하지만 그것만으로는 부족하다, 이 책이 다루고 있는 내용은 딱 책의 제목에 나온 내용만큼이다.

저자가 말하는 흥미를 통한 몰입만으로는 본연의 학습 목적을 채울수 없다.

앞에서 나온 예들은 저연령층에 한정된 에듀테인먼트이며 성인이나 그외 기타 계층을 만족시키기는 힘들다.

그림체를 성인풍으로 바꾼다거나 좀 더 깊은 주제를 다루는 식으로 내용의 변화를 줄 수는 있겠지만

그게 성인은 위한 에듀테인먼트에는 걸맞지 않다.

교과서, 교범, 전공서적 등의 내용을 에듀테인먼트로 옮겼을때의 학습효과에 대해서는 언급되지 않는다.

에듀테인먼트를 수용하는 학습자는 흥미(재미)도 있고 학습도도 동일하기를 원한다.

애석하게도 현실은 그렇게 녹록치 않다. 에듀테인먼트로서 성공적이라는 마법천자문을 보았을때

몇십권이나 되는 단행본에 나온 학습분량이 일반 한자 학습서 두세권의 학습분량을 넘어서지 못한다.

나무를 보느라 숲을 보지 못하였다고 엔터테인먼트에 치중한 나머지 에듀케이션에 대한 접근이 부족한것이 좀 아쉽다.


그렇다고 해도 에듀테인먼트를 다룬 관련서적이 전무하다는 점에서 큰 메리트가 있다….고 본다.



re:turn,

2013. 12. 19. 02:58

Wordpress로 갔다가 다시 Tistory로 자리 잡았습니다.

이곳은 제가 게임 기획, 설계, 개발에 대한 내용을 개인적으로 읽기 위해 이용하는 페이지입니다.

네이버 블로그 및 트위터, 페이스북에 파편화된 정보를 끌어올 생각 입니다.

부족하고 어설프더라도 귀엽게(?) 봐주시면 감사하겠습니다.

'About' 카테고리의 다른 글

인터뷰 기사 모음,  (0) 2014.06.30
나는 어떤 게임개발자가 될 것인가?  (0) 2013.12.23

Com2us QA팀에 있을시적 Mantis를 통해 ITS 툴에 대한 개념을 익히고

지지난학기 브리디아 소프트에서 제작중이던 SNG를 Redmine을 이용하여

프로젝트 매니징 및 기획서를 작성하는 것을 보았다.

 

그리고 지난학기, 나는 ITS를 쓰면 PM이 엄청나게 수월해 질 것 같아 학교 프로젝트로 보드게임을
제작하면서 ITS를 사용하여 
이슈 및 기획서를 관리하려고 하였다.

 

기본적으로 비슷한 툴은 많다. Mantis(Wiki가 없다), Trac 등등등...

하지만 기본적으로 제일 이쁘게 생긴게 Redmine이었고 본것도 그거밖에 없어서

맨땅에 헤딩해가며 구축을 했다. 몇가지 이슈를 적어보면...

 

  1. 서버가 없으면 쓸 수 없는 프로그램 (비용발생)
    기본적으로 Mysql 기반으로 짜진 프로그램이다보니 항시 DB를 읽고 쓰려면
    24시간 돌아갈 수 있는 Mysql 서버가 있어야 한다.
    24시간 켜둘 수 있는 서버란 것은 회선 + 서버 사용비가 항상 들기 때문에
    무일푼으로 진행하는 학교프로젝트에는 걸맞지 않았다.
    (다행히도 나는 학교에 서버를 둘 수 있어서 비용은 들지 않았다.)
  2. 아직도 Stable 하지 못했던 2.x 버전
    브리디아에서 사용하고 있던건 1.x 대 버전이었고
    내가 redmine을 설치하려고 했을때 1.x 대 버전과 2.x 대 버전이 동시에 올라와있었다.
    그 때는 그냥 무조건 버전 높은게 짱일거라 생각하고 2.x 대 버전을 설치했었는데
    2.x대 버전은 아직도 제대로 된 피드백이 축적되지 않았으며 여러가지 버그가 난무해
    사용하기가 껄끄러웠다.
  3. 무궁무진한 커스터마이징, 노가다.
    기본적으로 오픈소스 프로그램이고 비교적 쉬운언어라는 ruby로 짜져있어
    무궁무진한 커스터마이징이 가능하다.
    근데 이 말은 즉슨 넣고 싶은 기능을 가감하는데 있어서 너무 많은 손이가
    redmine 전담이 없으면 너저분한 메뉴를 다 올려놓고 써야 하는 것이다.

이 모든것을 제껴두고 결국 APMSETUP, AUTOSET 등의 windows 기반 서버셋팅 프로그램들을
써가며 서버를 구축하려다 너무 많이 꼬여 그냥 가볍게 Bitnami Stack
(쉽게말해 APMSETUP과 더불어 필요한 프로그램을 미리 설치하여 바로 쓸수있게 해주는 패키지)
을 설치하여 서버 구동 및 운용을 하였다. (그 사이에도 자잘한 문제는 많이 터졌었음)

그렇게 우여곡절 끝에 셋팅한 서버, ITS를 구축한것만이 모든것의 끝은 아니였다.
아무리 좋은 틀이라도 그것을 어떻게 쓰냐가 중요한 것 사용관련 이슈를 꼽으면

  1. Data 입력에 대한 부담감 (귀찮은 것을 싫어한다.)
    그 아름다웠던 Gantt 챠트와 기획서는 무수히 많은 Data가 누군가에 의해 입력이
    되었기에 아름다워 보였던거지 그 항목이 입력되지 않았을 때는 의미가 없다.
    하나라도 일을 더 할 수 있는 판국에 이걸 쓰느라 머리를 싸맬 필요는 없었던 것이다.
  2. 관리에 너무 많은 시간 소요
    짜잘한 부분이 너무 많다보니 이것저것 건드릴 수 있는 것도 많지만
    그만큼 그 부분을 하나씩 보고 자기가 원하는 방향으로 이끌기 위해서는
    시간이 많이 들어간다. 이 일 하나만 보는 사람이라면 문제가 없지만
    다른 일도 해야되는 시점에서 5만큼의 일을 하고 그 일을 보고, 수치화 하기 위해
    3의 관리가 필요한 것은 효율 낭비였다.

그래서 결국 학기 중간에 Redmine 사용을 포기했다.
순수 업무 할당만 하고 나 자신만 Trello를 통해서 필요, 할당 이슈를 생성하고
관리를 하며 진행을 하여 프로젝트를 마무리 하였다.

대규모 인력이 투입되어 필연적으로 많은 관리가 필요한 프로젝트에는
유용하게 쓰일지 모르겠지만 관리보다 개발, 완성에 초점이 맞춰지는 소규모 게임 제작팀에서는 
그 시간에 좋은 게임을 만들 수 있는 생각을 더 많이 하는게 나을지도 모른다.

 

Wiki를 작성하던중 페이지를 열어놓고 딴짓을 하고 계속 반복작성을 시도했는데
점점 서버를 여는 시간도 길어지더니 결국은 서비스 임시 사용 불가와 프록시 에러가 떴다.
일단 급한데로 서비스를 껐다켰는데도 마찬가지로 계속 그러다 어느순간 잘 동작하는것이었다.


근본적인 문제를 해결하기 위해서... 구글링을 해보니 해당사례가 이미 있었다.


http://xyz37.blog.me/50090489826


결론은 mySQL쪽 DLL에서 문제를 일으킨다고 했는데 bitnami로 깐 내 redmine은
mongrel.log 파일이 없어서 분석도 못해보고 아파치 로그만 디립다 보다가
결국은 저기서 나온 sql dll 파일 교체를 시도했다. (물론 원본파일은 libmySQL1.DLL 로 백업해둠)
SQL 서버가 안돌면 어쩌나 했는데 잘 돌아간다.

redmine은 기본적인 위키 작성 툴인 textile이 있음
근데 이게 너무 기능이 간편해서... 좀 잘 해보려고 redmine 포럼의 ono란 사람이 개조한
redmine_ckeditor를 받았음, 근데.. 문제는 이걸 받아서 redmine 폴더의 plugin에 넣으면
무조건 구동이 안된다. 100%, 이걸로 오늘 삽질, 어떻게 해결할지 생각해봐야겠다.


1. rake db:migration RAILS_ENV='production' 은 redmine 폴더안의 htdocs 에서 실행해야된다.
    ㄴ 추가로 2.x대 버전에서는 db:migration이 아니라 db:migrate로 입력해줘야 한다(12-07-12)

2. 왠만한 프로그램 설치 안됐다는건 gem install 'xxx'로 해결할 수 있는건 좋은 기능인것 같다.

3. redmine 2.x 대에서는 plugins 폴더가 vendor 안에 넣으면 오류메세지도 뜨고 실행도 안된다.

4. execjs 설치시 Permission Denied 문제가 뜬다. / Redmine Stack 사용을 관리자 권한으로 실행하니 잘된다.

5. 이제 htdocs로 들어가니 안먹던 rake db:migrate_plugins RAILS_ENV="production"이 먹기 시작한다.
    ㄴ 2.x대 버전부터는 db:migrate_plugins가 아니라 redmine:plugins:migrate 라고 입력해줘야한다.
        (rake redmine:plugins:migrate RAILS_ENV='production' / 12-07-31)

6. 마이그레이션 완료 CKeditor가 구동된다


교훈.

(1) Redmine Stack 사용 (CMD로 실행된다) 은 무조건 관리자 권한으로 실행시켜라

(2) 인터넷에 온 글은 살짝 유행이 지났기 때문에 무조건 Redmine 공식홈페이지 매뉴얼을 읽어라

(3) 절대 vendor 안에 plugins 폴더 만들어 넣지마라, 이건 커맨드 창에서도 경고해준다

(4) 에러메시지만 봐도 반은 이해함

(5) migration을 안하고 바로 plugins에 넣고 재시작시 무조건 레드마인이 뻗는다. 구동 안됨!

(6) db:migrate를 했을때도 뜨던 internal error가 redmine:plugins:migrate를 하니 훨씬 덜 뜨는 것 같다.

1. 발단.

프로젝트 관리를 redmine으로 하고 싶은 욕심이 생김


2. ruby install

bitnami를 이용해서 redmine을 구동하는데는 성공을 했으나
이미 apmsetup을 깔아놓았기 때문에 한번에 관리하는게 편하다고 판단하고
bitmani를 지우고 apmsetup을 통한 설치에 도전하기로 함 (http://kindi.tistory.com/104)
더불어 redmine도 2.x 최신빌드를 이용하기로 함


3. rubygems install failed

ruby를 운용함에 있어서 gem 버전을 1.8.7 이상으로 업데이트를 해야되는데..
기본적인 ruby 인스톨러는 1.8.6에 gem 버전 1.1.2, 여기에 1.3.6을 까는건 되는데
1.8.24는 구문에러를 뱉으면서 설치가 안되는 것이다.
여기서 든 생각은 1.3.6을 먼저 설치해서 그런가? 라는 생각이었다.


3. ruby uninstall, reinstall

설치 도중 ruby가 bundler setup이 안되었네 구문에러니 난리를 피워대니 미칠 노릇, 
결국 ruby를 통째로 날렸다 (클린 설치를 위해) 
그리고 루비를 재 인스톨 해서 바로 디렉토리에서 setup.rb를 실행시켰지만... 잘 되지 않았다.


4. 1.9.1 덧씌움, 1.8.24 설치 성공

그래서 찾다찾다 보니 인스톨러는 1.8.6이지만 덧씌울수 있는 1.9.1 을 발견
그리고 1.9.1 을 덧씌우고 rubygems 1.8.24를 설치하니 말짱히 설치되는것이었다.


5. 순순히 될줄 알았냐? zlib킥!

그래서 이제 rail을 설치하려고 하는데 zlib이 없다고 하는 것이다.
i386-mswin32에는 zlib.so가 있었을 텐데 -_-;
그래서 구글링 열심히 했지만 뚜렷한 해결책을 찾을 수 없었고
zlib을 다시 받아 넣을까 했는데... 이런.. bin 폴더에 있는 파일이름이 zlib1.dll 이다. 
zlib1.dll을 zlib.dll로 바꿔주니 rail 설치 잘만된다.


6. 최신빌드는 명령어 부터 다르다

저 블로그에 나와있는건 1.x빌드 기준이고 공식홈에서는 secret_token으로 생성을 하란다


7. mocha는 깔았다.근데 rmagick는 왜 안깔려?

mocha가 없다고 해서 mocha를 깔았다.
그리고 rmagick가 없어서 gem install rmagick로 설치를 시도했는데..
디벨롭먼트 킷이 필요하단다. 7-zip exe로 된 DEV kit을 깔았는데도 안된다


8. 포기

rmagick gem 파일은 받았지만 너무 덕지덕지 많이 깔릴바에야 한방에 bitnami를 깔아서
ddns 접속 설정해주는게 현명하다고 판단. 오늘의 놀이는 여기까지..


6. 결론

아무것도 모르면 Bitnami Stack 깔아 쓰시면 됩니다. 속편해요

+ Recent posts