오늘은 꽤나 팀워크가 좋은 하루였다. 어제 캐릭터 작업을 마무리하고 자느라 3시간밖에 못 잤다. 그래도 캐릭터 최종 완성물은 꽤나 마음에 들었었다.
직접 모자, 셔츠, 바지색깔 입히고 모자 로고도 색칠해줬다. 나머지 도둑들도 6가지 버전을 만들었다.
오늘 크게 한 일은 전체적인 플로우 검증이었다. 어떤 기술 스택을 쓸지 결정해야 했는데, 우선 캔버스 기반 라이브러리는 무엇을 쓸 지, PIXI.js와 phaser3 중 선택해야 했다. 처음에 phaser3가 게임을 만들기에는 최적화된 라이브러리라고 모든 블로그 글에서 명시되어있어서 phaser3를 쓰기로 했다. 그러다가, 사실 우리 같이 간단한 플래시 맵 형식의 게임에서는 over engineering일 것 같다는 생각에 PIXI로 살짝 정세가 기우는 듯했다. PIXI로도 솔직하게 말하면 우리 게임에 필요한 요소들은 다 구현은 가능해보였다. 그러다가 phaser3 홈페이지에 들어가서 실제로 phaser3로 할 수 있는 특수효과들을 눈으로 살펴봤다. 그리고 이를 보고 팀원들 모두 phaser3에 도전해보고 싶다는 생각이 들어서, 최종적으로 phaser3를 사용하기로 결정했다.
이외에 고민했던 기술 스택은 리액트, 리덕스, vanilla javascript를 쓸 것인지? 였다. 사실 우선 나의 경우는 바닐라 자바스크립트가 무엇인지 잘 몰랐다. 그런데 이전 기수분들의 프로젝트를 살펴보니 한 분은, 우리와 같이 간단한 게임이었는데 react는 over engineering일 것 같다는 생각이 들어 vanilla javascript로 구현하셨다고 한다. 그래서 우리도 리액트를 굳이 써야 할까?를 처음으로 고민해보게 되었다. 그런데 우리 모두 바닐라 자바스크립트에 대한 경험이 아예 없었고, 주언어인 리액트로 프로젝트를 완성시키지 않으면 완성도 측면에서 많이 떨어질 것 같다 생각들어 리액트를 사용하기로 했다. 다만 상태관리 라이브러리는 리덕스를 쓸 지, 다른 라이브러리를 쓸 지 고민을 많이 했었다. 우선 크게 관리할 상태들이 많지 않은 우리 프로젝트의 경우 리덕스와 같이 다운받아야할 것들도 많은 라이브러리보다, 더 토이프로젝트 정도에 적합하다는 recoil에 관심을 갖게 되었다. 새로운 상태라이브러리를 사용하는 두려움도 있었지만, recoil recoil 얘기만 많이 들었지 직접 써볼 생각을 하니 꽤나 신났었다.
또 다른 고안점은, 우리 게임에 서버가 과연 필요할까? 였었다. 우선 처음 firbase를 이용해서 로그인하는 기능을 넣었다. 그런데, 그냥 로그인을 구현하라고 해서 집어넣은 느낌이었달까. 우리는 간단한 플래시 게임을 구상했기 때문에, 로그인을 하지 않더라도 누구나 게임에 참여할 수 있는 그러한 게임을 만들고 싶어했다. 그래서 로그인을 빼면 유저 데이터를 DB에 저장하지 않아도 되어졌다. 랭킹 기능도 후순위로 미루었다.
simple peer는 월등히 다운로드 수가 많아서 simple peer를 사용하기로 했다.
멘토님과 팀 전체 멘토링을 했을 때, 어떤 기술스택을 썼는지에 대한 질문은 많이 하니까, 이에 대해 탄탄히 준비해두어야 한다고 하셨다. 기술 검증에 대한 고민을 많이 하고 기록도 많이 해두어야 할 것 같다. 오늘은 너무 피곤해서 이만 자러 가보겠다.