근래에 유니티로 작성된 여러 프로젝트들을 볼 기회가 있었다. 그러나 많은 프로젝트들이 유니티를 사용하면서도 유니티의 강점을 이용하지 않고 있었다.


구현 관점에서 봤을 때 필자가 생각하는 유니티의 강점은 에디터의 활용이 아주 쉽다는 것이다. Component 계열 클래스를 상속하면 자신의 클래스를 인스펙터로 노출시킬 수 있다. 그리고 Editor 혹은 EditorWindow 클래스를 상속하면 유니티 에디터 자체를 수정하거나 확장할 수도 있다. 이를 통해 에디터에서 게임 데이터를 편집하고 상태를 확인할 수 있다. 이는 생산성에 큰 도움을 준다.


그러나 몇몇 프로젝트들은 여러 이유 - 예로 특정 엔진에 너무 종속적인 코드는 좋지 않다 - 로 에디터를 적극적으로 활용하지 않고 있었다. 간단한 데이터 수정도 외부 툴을 이용하여 수정한 다음 게임을 재시작해서 테스트해야 했고, 게임 상태 확인을 위해 잦은 디버깅을 필요로 했다. 이는 마치 별도의 에디터 없이 Visual Studio 같은 IDE 를 이용해서 개발하던 때와 같았다. 유니티 에디터와 연동되는 기능을 최대한 줄이는 쪽으로 진행되는 극단적인 프로젝트도 있었다.


위에서 예로 든 '특정 엔진에 너무 종속적인 코드는 좋지 않다' 에 대해서는 되물어보고 싶다. 종속적이라는게 과연 어떤 의미인가? 유니티에서 작성한 코드들을 언리얼에서 사용할 작정인가? 다른 프로젝트에서는 더 이상 유니티로 개발하지 않는 것인가?


게임은 수많은 데이터와 상태가 복잡하게 뒤엉켜 있는 프로그램이다. 따라서 주어진 환경에서 이러한 데이터, 상태들을 쉽게 확인하고 수정할 수 있게 하는 것이 무엇보다 중요하다. 그렇게 하면 생산성은 극대화 하면서 개발 비용을 크게 낮출 수 있다. 유니티는 이를 손쉽게 가능하게 해주므로 적극 활용하는 것이 좋다.

'유니티 - 이것저것' 카테고리의 다른 글

에셋번들 기초  (0) 2016.02.04
에셋 기초  (0) 2016.02.01
Invoke 와 Coroutine 주의사항  (0) 2016.01.23
Frustum Testing  (0) 2016.01.09
안드로이드에서 수동으로 프로파일러 Attach 하기  (0) 2016.01.08
Posted by 카코데몬
,