두 달 동안 좋은 팀원분들을 만나 즐겁게 개발했던 기간이였다. 처음해보는 유니티의 기능들을 많이 사용해보면서 많은 것을 배우고 느꼈기에 좋은 경험이였다.
우선, 지금까지의 개발과정을 포트폴리오로 만들고 꾸준히 코테준비도 하고 취업을 노려볼 것 같다. 다만 이정도 포트폴리오로는 아무래도 취업하기는 힘들 것 같기에 개인 프로젝트로 게임을 하나 만들 생각이다.
이번엔 직접 "팔 수 있는" 게임을 만들어보고 싶다. 퀄리티보다는 게임성에 집중하여 만들 생각이다. 아무래도 인디게임 속성상 그래픽과 같은 퀄리티에는 관대한 편이기 때문이다. 울단 목표는 2D 멀티 로그라이트 게임이다. 게임개발자라는 목표를 가지게 된 동기도 "할로우나이트"라는 게임을 하면서였기 때문에 이번에 직접 한번 만들어보고싶다.
데이터 드리븐은 프로그램의 데이터를 하드코딩(프로그램 소스내에 데이터를 직접입력하는 방식)이 아닌 데이터 파일로 부터 읽어와 처리하는 방식이다.
하드코딩을 하게되면, 게임의 벨런스를 변경해야하는 상황이 생길 때 데이터를 소스코드 내에서 수정해야한다. 이는 프로그램 유지보수 측면에서도 안좋고 기획자가 존재할 경우에 기획자가 데이터를 직접 손볼 수 없기에 프로그래머가 기획자에게 전달받은 데이터를 직접적으로 수정해야한다. 개발자의 인력과 기획자의 인력을 적절하게 배분해야하는 상황에서는 별로 좋은 선택이 아니다. 또한, 데이터 드리븐방식은 데이터변경으로만 게임 업데이트 및 수정이 가능하기때문에 소스코드에 직접적으로 접근할 필요가 없어 유지보수를 더욱 편리하게 해준다. 마지막으로 게임의 크기가 커지면 커질수록 데이터가 방대해지는데 이를 쉽게 처리하기 위해서는 데이터를 csv형태로 정리하는 것이 편하다. 이번에 ManiMind를 개발하면서 더더욱 이 부분을 온몸으로 느꼈다.
우선 데이터의 포맷을 정해야한다. 외부파일을 데이터파일로 사용하기때문에 다양한 포맷을 사용할 수 있는데 대표적인 포맷은 csv와 json이 있다. csv와 json의 상세한 비교는 나중에 하도록하고 저장방식의 가장 큰 차이는 csv는 테이블형식이고 json은 키 값 쌍으로 이루어진 데이터 형식이라고 생각하면 편하다. 아무튼, 데이터파일을 외부에서 만들어서 게임에서 이를 읽어와야하는데 이를 파싱이라고 한다. 데이터를 파싱해와야 유의미한 데이터를 긁어와서 사용할 수 있다.