개요
STA+C 을 개같이 광탈하고 개인 프로젝트도 맛있게 말아먹은 저로썬 참가할 대회가 간절했습니다.
포트폴리오가 필요 했고 팀프로젝트 경험 또한 필요했기 때문이죠.

그래서 신청한게 '제 27회 고교생 해커톤 대회 앱잼' 입니다.
원래 해커톤(Hackathon)이라는게 보통 게임을 만드는 걸 가르키진 않는데 알고보니 '엔터테인먼트 부문' 에선 게임 개발이 메인이더라구요.
말이 해커톤, 앱잼(앱 안만들어도 됨)이지 그냥 1일짜리 게임잼 한다는 마음가짐으로 신청 후 참가했습니다.
한참은 잘 못 끊은 스타트

무박 2일, 18시간의 강행군을 진행하는 스케쥴이다보니 컨디션 조절이 매우 중요했습니다.
그래서 전 어떻게 조절했냐구요?
조절이고 뭐고 17일 오후 1시까지 가야하는데 16일 오후 10시에 기상하는 기염을 토했습니다.
그렇기 때문에 앱잼 시작 시점에 이미 14시간을 깨있던 상황이 되어버렸습니다.
그래서 전 남들 다 24시간 깨있을때 36시간을 깨어있어야 하는 의도치 않은 핸디캡을 가져버리고 말았죠.
가는 도중에 너무 졸려서 앱잼 제대로 할 수는 있을지 걱정되기 시작했습니다.
12시 50분에 도착했지만 건물 입구를 못찾아서 땡볕에 15분정도 헤매는 간단한 헤프닝이 있었지만 그렇게 늦진 않아서 다행히도 입장을 못하는 그런 상황이 되진 않았습니다.

아무튼 명찰도 받고 옷도 받고 오리엔테이션 하러 이동하니 바로 묘하게 익숙한 뒤통수와 묘하게 익숙한 프로그램(Aseprite)이 보였습니다.
같은 학교 친구였어요. 다행히도 혼자 찌그러져 갈 위험은 면했군요.
전 MBTI가 I 99%라서 누군가와 얘기할 엄두를 못때겠는데 그 친구는 벌써 앞옆뒤 사람 전부 친구 먹었더라구요.
친화력 참 부럽더군요.
팀 빌딩 전에...
인싸들의 놀이터일 것만 같았던 오리엔테이션은 생각보다 얌전하게 진행되었습니다.
간단하게 전달사항만 듣고 나서 미래, 생활, 엔터 부문마다 따로 찢어져 개발실?로 이동하였습니다.
그 곳에선 특강을 진행했는데 간단하게 플레이스토어랑 스팀에 어떻게 프로그램을 출시 하는지에 대해 알려줬습니다.
출시와 관련해선 STOVE 쪽밖에 진행해본 적 없어서 상당히 유용한 강의였습니다.
팀 빌딩
이번 앱잼의 주제는 '명대사' 였습니다.
기획자들은 이 주제를 듣고 게임을 구상해서 발표를 하고 기획이 맘에 드는 개발자와 디자이너들은 그 기획자에게 붙으면 됩니다.
인원 초과되면 어떡하냐구요? 잔인하게도 기획자가 맘대로 쳐내버릴 수 있습니다.
기획자는 총 8명이였고 각자 3분정도씩 앞에서 발표할 시간을 가졌습니다.
8팀 전부 괜찮았지만 딱 꽂힌건 2개 있습니다. 들으면서 메모한 내용을 보여드리죠.


일단 1번은 제가 그래프 관련 지식이 없어서 후순위로 밀어놨고 남은 후보는 3번이였죠.
명대사는 '노 게임 노 라이프' 의...
아무것도 갖고 태어나지 않았기에
무엇이든 될 수 있다.
입니다.
...근데 바로 위에서 제가 뭐라고 말했었죠?

제가 이걸 왜 꺼내냐구요? 3번 기획자님에게 지원한 사람이 넘쳐났기 때문입니다.
팀마다 개발자 2명, 디자이너 1명, 기획자 1명으로 4명으로 구성돼야 하는데 1명만 지원해서 프리패스 된 디자이너를 제외하면 6명 정도의 개발자가 남았습니다.
다행히도 자기 어필 시간을 주길래 열심히 어필해보았습니다만... 솔직히 제가 뭔말을 했는지 잘 모르겠어요.
자기 어필 안한 사람은 내치고 한 사람만 뽑았던것 같긴합니다.
아무튼 팀 빌딩을 모두 마친 뒤에 저희팀 소개를 간단히 하죠.
일단 기획자 분은 용인삼계고등학교 라는 일반고에서 오셨습니다. 상당히 놀랐어요.
디자이너 분은 광주소프트웨어마이스터고등학교 에서 오셨습니다. 도트 찍으시더라구요. 맘에 들었습니다. 도트는 항상 옳다.
저 말고 다른 개발자 한분은 한세사이버보안고등학교에서 오셨습니다. 저 포함 나머지는 전부 2학년인데 혼자 3학년이셨습니다.
기획 재조정
저희는 일단 기획을 조정할 필요성을 느꼈습니다.
채점 기준이 아이디어 50%, 구현 30%, 디자인 20% 로 기획의 가중치가 상당히 높았는데 당장 제시된 기획은 별로 특색이 없다고 느꼈기 때문이죠.
위에서 봤던 '아무것도 갖고 태어나지 않았기에 무엇이든 될 수 있다.' 라는 명대사는 그대로 갖고 여러가지 기획이 나왔습니다.
일단 '플레이어는 무능력하다.'는 디폴트 값으로 가진채 적을 공격 수단 없이 처치하는 게임, 도둑인 주인공이 물건을 훔치는 게임... 등등 여러가지 나왔습니다.

아무튼 최종적으로 정해진 기획은 다음과 같습니다.

안 적힌 세부 사항들은 무기가 10번 정도도 휘두르지 못할정도의 내구도를 가지는 것 정도가 있습니다.
내구도가 없다면 무기 하나만 가지고 싸울 텐데 이러면 플레이어가 무능력 하기 때문에 무기를 주워 싸운다는 특색이 사라져서 넣은 사항이죠.
기획이 끝났으니 기획자는 세세하게 기획을 세우고 개발자랑 아트는 결과물이 나오도록 열심히 구르면 됩니다.
개발 과정
먼저 개발끼리의 분업을 위해 서로의 실력을 알아봐야할 필요성이 생겼습니다.

일단 UNNAMED의 개발 일지를 보여드렸더니 글 잘쓴다고 칭찬해주셔서 상당히 뿌듯했습니다.
분업은 일단 제가 플레이어를 맡고 그 분이 적을 개발해주시기로 했습니다.
물론 개발자가 둘이기 때문에 서로 합의만 한다면 개발 영역이 이리저리 뒤섞여도 상관없습니다.
실제로 마지막에 가서는 제가 적을 만들고 그 분이 플레이어를 만들고 제가 UI를 하다가 그 분도 UI를 하고... 여러모로 뒤섞였습니다.
기본적인 프레임워크는 제가 글로 적었었던 Animator 기반의 FSM을 사용하였습니다.
https://sundg0162.tistory.com/36
UNNAMED | 네번째 프로젝트 # 3 : Player FSM
개요정신 나갈 것 같습니다. FSM 구조원활하게 Player의 움직임을 제어하기 위해 FSM을 사용했습니다.애니메이터 기반의 FSM으로 애니메이터와 동기화 되기 때문에 자연스러운 애니메이팅 +
sundg0162.tistory.com
하지만 이것처럼 쓰는 것 보단 Player와 Enemy 둘 다 포괄하는 FSM 을 만들어서 사용하는게 좋을 것 같아서 제네릭화 시킨 State<T>와 StateMachine<T>을 만들어 사용하였습니다.


그리고 저희 게임의 핵심 메커니즘인 공격은 무기마다 다른 모션이 나와야 하다보니 이걸 디자이너 분께 전부 맡겨버리면 일이 너무 과하게 치중되고 적을 그리기도 전에 플레이어만 그리다가 끝날것 같다보니 소울라이크 게임 처럼 플레이어 자체와 손을 따로 분리해서 그려달라고 요청하였습니다.

그리고 손과 무기는 인게임에서 애니메이터를 사용해 따로 애니메이팅을 했는데 전 그런거에 소질이 없어서 다른 개발자 분이 해주셨습니다.
근데 FSM구조에 공격을 끼워넣으려다보니 공격 도중에 다른 입력을 받을 수 없는 문제가 생기더군요.
그러니 공격 상태일때 딜레이없이 공격을 실행만 빠르게 하고 1프레임 내의 State를 탈출하도록 해보니 이럴거면 왜 공격 State를 경유하는지 이유를 모르겠더라구요.
그러니 그냥 State와 Attack은 완전히 구분해놓았습니다.
그리고 이것 저것 열심히 하다보니 어느새 제출시간이 되었죠.
제출 및 심사
제출 자체는 무난하게 진행 되었습니다.
제출 시간 30분 전까지 게임을 모두 완성한 뒤에 빌드본을 플레이 해보며 사소한 버그들을 고치는 폴리싱 작업을 했습니다.
결과물을 보며 '18시간 만에 만든거 치곤 상당히 깔끔한데?' 하는 생각이 계속 들었었는데 그만큼 잘만들었습니다.
PPT는 기획자 분이 열심히 만드셨습니다.

발표 또한 괜찮게 진행되었습니다.
빌드본을 플레이하며 평가하는 것이 아닌 영상으로 평가를 하다보니 게임 자체가 깔끔하게 나오는게 유리하더라구요.
실제로 심사위원 분들 중 디자이너 담당 심사위원 분께 아트가 귀엽다고 칭찬도 들었습니다.
개발 관련해서도 질문이 들어왔는데 FSM 관련으로 물어봤으면 진짜 야무지게 답할 수 있었지만 완전히 다른쪽으로 들어와서 살짝 아쉬웠습니다.
결과

어 형이야~
최우수상 탔습니다.
상품으론 디지털 카메라를 받았습니다.
엄마가 디카가 아직도 있냐면서 놀라더라구요.
후기
18시간 개발이 정말 말도 안되게 빡세긴 했습니다.
특히 전 36시간을 깨어있어서 마지막 시상식 할때 졸도할 뻔했어요. 집가서 15시간동안 수면했습니다.
그리고 개인의 개발 역량보다 팀워크가 몇배는 더 중요하단 걸 깨달았습니다.
4명이 쉼 없이 일해야 하고 각자 맡은 바를 시간 내에 해내야 하는데 누구 하나가 낙오되기 시작하면 결국 기한을 맞추지 못할 가능성이 커지거든요.
전 운이 좋게도 매우 좋은 팀원 분들을 만나서 거의 완벽하게 분업이 되었고 결과물 또한 만족스럽게 나와서 굉장히 기분이 좋았습니다.
최우수상이라는 결과 또한 따라와주다보니 날아간 주말이 아깝...진 않았습니다. 아마도요,