포스트

[크래프톤 정글 0주차] 3박 4일 미니프로젝트

주간 요약

3박 4일 미니 프로젝트

image 웹 게임 실행 화면 1

image 웹 게임 실행 화면 2

크래프톤 정글 4기 입소와 동시에 3박 4일 동안 미니 프로젝트를 진행했다. 1일 차에 기획을 끝마치고 사실상 3일 동안 뭐든지 돌아가는 서비스를 만드는 과정이다.

우리 팀의 아이디어는 정글 & 경기대 정보 맞추기 게임이다. 플래피 버드처럼 오른쪽에서 다가오는 퀴즈의 정답을 맞히면 되는 게임이다. 이전 기수들을 봤을 때, 대부분의 기획이 정글러들에게 필요하거나 도움을 줄 수 있는 기능을 제작했기에 우리도 비슷한 느낌으로 갔다. 0주차 팀은 상림이 형과 세진이다.

회고


일전에 대한민국 게임잼에서 2박 3일 간 뱀서라이크 게임을 만들어 본 적이 있었는데, 그때의 경험이 도움이 되었다.

  1. 메인 기능에 집중
  2. 일정 준수가 가능한 기획
  3. 피곤한 채로 밤새 잡고 있는다고 코드가 술술 나오진 않는다.

게임잼 당시에, 기획했던 것의 대부분을 구현하지 못했었다. 개발자들(=나)의 실력 부족과 너무 크고 넓은 범위가 문제였던 것 같다. 다른 팀들의 완성작을 봤을 때, 공통적으로 ‘어? 생각보다 게임이 금방 끝나네..?’ 라는 생각을 했었기에 단기간에 만들어야 되는 게임은 큰 범위를 잡지 않아야겠다고 생각했었다.

이번 미니 프로젝트에서 기획 단계와 개발 단계에서 크게 2가지의 피드백을 받을 수 있었다.

기획 단계에서의 와이어 프레임은 딱 봤을 때 어떤 서비스인지 이해할 수 있어야 한다. 우리 팀은 아무래도 게임이다 보니 사진으로는 이해하기 어려운 부분이 있었다고 생각이 든다.

개발 단계에서의 피드백으로는 팀 프로젝트에서 코어 타임을 정하면 효율과 소통을 높힐 수 있다는 것이다.

우리 팀은 소통을 많이 하는 축에 속했다. 팀원 중 한 명이 자신의 기여도가 낮은 것 같아 밤을 새우면서 개발을 하겠다고 한 적이 있는데, 우리 팀의 진행도는 나쁘지 않았고 나는 밤을 새우는 것보다 모두가 깨어 있는 시간에 같이 개발을 하는 것이 효율적이라고 생각을 했기에 팀원에게 자는 것을 권장했다.

짧은 시간 안에 돌아가는 서비스를 만들어야 했기에 메인 기능을 먼저 완성시키고 그 후에 부가적인 기능들을 추가해 나가기로 하였다. 2박 3일과 같이 짧게 진행되는 프로젝트의 경우 개발에 집중하느라 테스트 시간이 부족하고, 마감 직전에 버그를 발견하여 시연을 제대로 못하게 되는 경우가 있기에 메인 기능을 완전하게 만들어내는데 집중하였다.

결과적으로 우리 팀은 부가적인 기능은 적지만 정글&경기대 정보 맞추기 게임과 랭킹 기능 & 로그인/회원가입을 나쁘지 않게 구현하였다. 팀원들이 모두 열심히 해준 덕에 잘 끝마칠 수 있었다.

나는 주로 게임 페이지를 개발하였고, 전체적인 코드 개선에 신경 썼다. 팀원들에게 테스트를 부탁하였고 테스트 과정에서 나오는 잔버그들을 수정하였다.

웹 개발을 경험해본 적이 없었기에 Tailwind를 처음 사용해 보았는데, CSS를 생으로 작성하는 것보다 훨씬 효율적이었다. CSS가 더러워지고 길어지는 단점이 있지만, @apply라는 방법을 사용해 줄일 수 있다. 하지만 따로 사용해 볼 시간이 없어서 그냥 더러운 채로 내버려둔 게 아쉽다..

만약 개선한다면 더러운 CSS들을 정리하고 게임의 전체적인 루프를 개선해야 한다. 처음에 한 js 파일에서 모든 코드를 작성하고 나중에 나누어서 제대로 된 모듈화가 진행되지 않았다. 그리고 나는 백엔드 팀원이 개발해둔 걸 이어받아서 개선하였기에 jinja2를 사용한 Server Side Rendering과 JWT를 사용한 로그인 방식을 이해하지 못하였다. 알아두면 좋을 것 같은데 따로 공부할 시간이 날까 싶긴 하다.

발표 후에 코치님이 말씀하시기를 사실 웹에서 게임을 구현을 못할 줄 알았다 라고 하셨다. 솔직하게 말하면 나도 웹에서 게임을 만들어 본 적이 없기에 html 컴포넌트들의 충돌 처리 코드와 같은 것들은 대부분 GPT로 뽑아냈다; html 컴포넌트들도 상하좌우 좌표값들이 있었고 그저 충돌 여부만 확인하면 됐기에 크게 어려운 부분은 아니었다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.