안녕하세요. 오랜만에 블로그에 글을 쓰는 것 같습니다.
현재 저희 회사에서 Unity를 이용한 새로운 형태의 스토리기반 2D 게임을 만들고 있습니다.
지금 80~90%정도 개발이 완료된 상황이고, 막바지 버그수정과 디테일작업에 신경을 쏟고 있습니다.
바쁘다는 핑계로 계속해서 블로그 포스팅을 미루고 있다가, 더이상은 안되겠다 싶어 시간을 내어 프로젝트에 대한 소개 및 정리하는 시간을 가져보았습니다.
현재 소속된 회사가 스타트업이고 개발인원(현재 2명)이 적다보니, 새로운 기술을 바로바로 사용해보고 적용할 수 있는 기회가 많았습니다. 그 중에서 이번 프로젝트에서는 유니티 에셋중 uFrame Game Framework(이하 uFrame)라는 프레임워크를 사용해서 개발을 하였습니다.
부수적인 기능을 담당하는 에셋이 아닌, 게임의 전반적인 뼈대를 담당하는 프레임워크라 코드 제어가 힘든 특정 에셋을 사용하는 것에 많은 부담도 있었습니다. 분명 리스크도 있었지만 여러가지를 고려한 끝에 다음과 같은 이유로 해당 에셋을 사용하게 되었습니다.
- 유지보수의 이점
별도의 문서없이, 에셋에서 제공해주는 UI를 통해 유니티에서 시각적으로 현재 프로젝트 구조를 한눈에 파악할 수 있습니다.
▲ 별도의 문서없이 한눈에 프로젝트의 전반적인 구조를 볼 수 있다.
- 안정성
uFrame은 2014 Unity Award에서 결승후보에 올랐을 정도로 많은 이슈와 관심을 받았고, 현재 많은 개발자들이 에셋스토어(평점 별4개)를 통해 구매후 사용하고 있습니다.
아직 1.6.3버전(2016년 1월 17일 기준)으로 부족한 부분도 많지만, 많은 개발자들이 좋은 피드백을 주고 있으며, 실제로 uFrame을 통해 제품을 출시한 사례도 계속해서 나오고 있습니다.
또 현재 GitHub 저장소에도 부분적으로 소스를 공개하고 있고, 만약 서비스를 중단하게 된다면 오픈 소스 프로젝트로 전환할 계획이라고 말하였습니다.(에셋 댓글을 통해)
- 협업성
uFrame에서는 1.5버전에 들어서면서 모듈별로 Import 또는 Export하는 기능을 추가하였습니다. 이를 통해 팀원들간의 협업에있어서도 uFrame의 장점을 가져갈 수 있게 되었습니다.
단 Git과 SVN같은 버전 관리시스템을 통한 작업에있어서 공통된 모듈을 작업시 충돌이 일어났을 때 Resolve하는데 어려움이 있지만, 2.0버전에서 모든 데이터를 json형태로 관리하여 지금보다 더 나은 협업환경을 제공한다고 하는군요.
- 현실성
어떻게 보면 유니티 자체가 프레임워크를 제공해주고 있지만, 어느정도 규모가 있는 게임을 제작하기 위해서는 일관성있는 프레임워크가 필요한 상태였습니다.
이를 처음부터 개발하기에는 시간과 인원이 필요했지만, 당시 개발시점에서는 개발인원이 저 혼자였기에, 어떻게 보면 uFrame의 선택은 필수불가결했습니다.
위와 같은 장점이 있음에도 불구하고 위험성이 모두 사라진 것은 아닙니다.
예전보다는 나아졌지만, 아직 에셋에 대한 튜토리얼과 문서화가 많이 부족한 상황입니다.
처음 uFrame 구조를 이해하는데 다소 비용이 발생하는점은 무시할 수 없지만, 어느정도 익숙해진다면
깔끔한 코드 관리와 유지보수에 있어서 많은 이득을 취할 수 있을 것이며, 프레임워크를 통해 보다 게임 본연의 기능에 많은 시간을 투자할 수 있을 것입니다.
다음 포스팅을 시작으로 uFrame의 구조와 이를 이해하는데 필요한 지식들에 대해서 알아볼 예정입니다.
'개인 로그 > 프로젝트' 카테고리의 다른 글
Hack And Slash 0.5v 버전 (0) | 2013.11.11 |
---|