자체엔진으로 게임을 10년 이상 만들다가 언리얼4을 2년전부터 사용했다. 방대한 기능과 접근가능한 깔끔한 엔진코드, 한글 튜토리얼, 사용자 커뮤니티. 인력 수급의 편의성까지 모든것이 완벽한 엔진이라 생각했지

그런데 2년 동안 꾸준히 사용하면서 언리얼4의 개발 편의성에 불만을 가지게 되었다.

내가 느낀 언리얼4 단점

  • 코드 수정 후 에디터를 다시 시작해야함 원래 자체엔진을 사용했으니 코드 수정후 재시작은 당연한 것이라고 생각했다. 그런데 점차 프로젝트에 에셋이 쌓이고 초기화 코드가 많아지면서 한번의 코드 수정후 결과를 보기 위해 5~10분을 기다려야하는 상황이 계속되었고 전체 작업시간에서 이 부분이 큰 비중을 차지한다는 것을 알게 되었다.

  • ui와 3d scene의 분리되어있는 구조 언리얼4에서 gui의 구조가 잘 잡혀있지만 문제는 3d scene과 gui가 별도의 기반 구조로 개발되어있다는 것이다. 그래서 3d scene의 애니메이션을 잡는 것과 gui의 애니메이션을 잡는 것은 별도의 코드나 툴이 필요하다. 이는 근래의 게임 개발 요구사항에서 보았을때 큰 단점으로 느껴진다. 게이머는 최종랜더링된 화면에서 ui와 3d scene을 잘 구분하지 않고 하나로 느낀다. 그런데 연출적인 측면에서 그 둘 사이를 매끄럽게 만들기 상당히 어렵게 되어있다.

  • 동적인 Level로드에 대한 지원이 부실함 오드리아를 만들면서 동적 레벨을 많이 사용했어야했는데 언리얼이 소개하는 것과는 달리 코드 내부를 보았을때 구조가 잘 잡혀있지 않고 임기웅변 코드가 많았다. 그리서 Persistent 레벨에 additive로 다른 레벨을 로드할때 비동기 처리가 제대로 이루어지지 않아 hitch가 발생했다. 아마도 언리얼은 동적인 Level보다 정적인 Level에 좀 더 특화된 엔진인듯 보인다.

  • 플러그인 다국어 버그 에픽에서 공식적으로 올린 플러그인에도 다국어 지원 측면에서 버그가 꽤 보였다. 업그레이드 편의성 측면에서 엔진 코드는 최대한 고치지 않는 주의인데 다국어 인코딩을 깨먹는다 던지하는 경우가 있었다.

  • 무겁고 불안정한 에디터 워낙 기능이 많은 것에 대한 비용으로 에디터가 매우 무겁고 크래시가 잦다.

언리얼 앞으로는 어떨까

언리얼을 2년간 쓰면서 왜 언리얼이 유니티에 대응해서 소스코드를 공개했는지 알것 같았다. 소스코드를 공개하지 않고는 엔진 유연성 측면에서 유니티를 이길 수 없을 거라고 판단했으리라. 지금은 유니티를 2개월 정도 사용하고 있고 위의 불만은 다 해결되었다. 예전에 유니티를 써봤을떄 이정도로 괜찮은 툴이 아니였는데 언리얼과의 경쟁이 서로에게 약이 된것 같다.

언리얼4에 실망한 부분이 있어서였을까? 아직 언리얼5는 써보지 않았다. 5에 기대했던 것은 에디터를 끄지 않아도 작업할 수 있는 Embed Script Language였는데 왜인지 정식릴리즈에도 빠져있다. 언리얼에서 위의 단점을 해결하지 않는다면 앞으로도 내 선택하에 언리얼을 사용할 일은 없을 것 같다.