2010년 7월 8일 목요일

Unreal Engine은 좋은가요?

Unreal Engine은 다음과 같은 점이 좋습니다.

 

  • 빠르게 프로토타입을 만들고 확인할 수 있으면 제공되는 툴들을 이용해서 프로그래머, 아티스트, 기획등 모든 개발자들이 지속적으로 게임에 변화를 주고 바로바로 확인을 할 수 있습니다.
  • 이제 UE3도 나온지 5년이 지나면서 UDN에 도움이 되는 많은 문서들을 확인할 수 있습니다.
  • 툴 사용에 대한 동영상 강좌들도 많이 준비되어있고 한글 자막이 있습니다.
  • 많은 개발사들이 사용하고 특히 한국 Maillist가 있어서 사용중 궁금한 적으로 물어볼 수 있습니다.
  • UDK라는 공개용 엔진이 있어서 툴이나 스크립트를 사용할 수 있는 초보를 구하기 쉬울 수 있습니다.

 

그러나 OOP적으로 Unreal Engine이 좋은가요? 라고 누군가 질문을 하신다면 아니요. 라고 답할 것 같습니다. 객체 계층의 최상위 객체인 UObject가 SRP(단일 책임 원칙)을 위배하고 있습니다.

 

UObject는 다음과 같은 책임을 가지고 있습니다.

 

  • Type Info
  • Script Executor
  • Object Factory
  • Garbage Collector

 

더 큰 문제는 실제로 가장 많이 사용하는 AActor 객체는 더욱 거대한 몬스터 객체라는 것 입니다. 결국 AActor가 몬스터다 보니 그 하위 객체들 중에 실제로 화면상에 보이지도 레벨 에디터 상에서 레벨에 세울 수도 없는 GameInfo와 같은 객체가 그래픽 출력이나 물리적 상태에 대한 속성들을 다 가지고 있습니다.

 

개인적으로 Unreal Dedicated Server를 개량하려고 생각 중이여서 이런 거대한 객체가 있다는 것이 메모리 사용에 별로 좋지 않기때문에 성능에 대한 고민을 안할 수가 없습니다.

 

In-House Engine이 아닌이상 자기 입맛에 딱 맞는 엔진은 있을 수 없습니다. 그래서 어떤 엔진을 사용하려고 한다면 꼭 평가판을 심도있게 사용해보고 결정하는 것이 좋습니다. 언리얼엔진도 마찬가지로 꼭 개발팀에서 평간판을 사용해보고 모두의 의견을 듣고서 결정하시라고 당부드리고 싶네요.

댓글 없음:

댓글 쓰기