[엔진] 게임 엔진에서 공통적으로 겪는 문제점

 

 좀 다뤄봤다고 말할수 있는 게임엔진이 2개 (해당 엔진으로 개발을 1년 이상하고 적극적으로 활용한것 기준)이고, 좀 관심 가져보고 조금 살펴보기만하고 적극적으로 사용해보진 못한것 2개 정도 되었는데, 공통적으로 하는 실수들 이 생각나서 최대한 줄여서 몇가지 적어봅니다.

 참고로 적극적으로 사용해본 엔진은 Gamebryo, Unity3D 이고, 조금 살펴보기만한 엔진은 Unreal Engine4, Orge3D 입니다. (Orge3D 는 기억도 안남;;) Gamebryo 와 Unity3D 사용경험으로 작성 했습니다.  < 2017년 7월 18일 기준 >

* 엔진은 만능이다?
 자체 제작 엔진으로 게임을 만들던 시절(DirectX SDK 을 직접 이용) 엔진에 대한 막연한 환상을 가지는 경우가 많았습니다. 그리고 다음 프로젝트에서 상용엔진을 구매해서 프로젝트를 시작했습니다.(당시에는 유명게임 엔진들을 회사에서 직접 구매해서 사용했고, 개발사 입장에서 부담스러운 가격이었습니다) 

 사람들은 이제 엔진을 사용해서 게임을 만들면 엄청난 게임이 나오리라 생각했지만, 실상은 그렇지 않고, 그저 조금더 시간이 단축되고 프로그래머들이 조금더 편해질 뿐 결과물은 평범했습니다.

 지금은 많은 사람들이 알고 있는 점이지만 엔진홍보나 기타 교육기관에서 매우 쉽게 만들수 있다고 말하지만 실상은 그렇지 않습니다. 물론 초반에 그럴듯하게 어느정도 까지는 매우 빠르게 만들 수 있지만, 게임 완성이라는 점에서는 달라지지 않았습니다.


* 멀티플렛폼 지원 엔진일 경우 테스트 (프로그래머)
 알고 있는 사람들이 많지만 번거로워서 잘 지켜지지 않는 경우가 많은점 입니다.
보통 개발자는 pc에서 개발을 합니다. 엔진레벨에서 A 라는 api 가 제공될 경우 pc 에서 잘 작동하는걸 테스트 한뒤 마무리하는 경우가 많습니다.

 실제로 여러번 겪은 일인데요. 프로그램 빌드를 하는 당일이나 몇일전에 큰 문제를 겪게됩니다. 다른 플랫폼 (Android, iOS, 콘솔, 웹 등등) 으로 빌드를 할 경우. 특정 플렛폼에서 A 라는 기능이 들어가면 컴파일이 안되거나 컴파일은 되도 막상 타겟 기기에서 작동이 안되는 경우가 많아서 주기적으로 테스트 관리를 해줘야 합니다. (외부 플러그인 체크도 필수)

 특정 포멧의 리소스가 특정 플렛폼에서 지원하지 않는 경우도 많기에 (요즘은 엔진 레벨에서 컨버팅 해주는 경우도 많음. 그래픽 리소스, 사운드 파일등등) 리소스 관리도 필요합니다.


* 개발환경과 실제 출시환경의 동떨어짐(그래픽)
 그래픽 작업자가 많이 호소하는 부분입니다. 주로 화면 색감이 다르다는 점을 많이 호소하기에 목표로 하는 플랫폼과 pc 에서 보이는 색감을 강제로 조절해서 비슷하게 맞춰주는 방법으로 해결했지만, 완전히 모든 플렛폼과 기기에 적용할순 없어서 힘든 부분입니다. 해당 플렛폼을 보고 다시 pc 에서 작업하는 경우가 많습니다.
 

* 플러그인 혹은 미들웨어 사용(프로그래머)
 위에 쓴 "멀티플렛폼 지원 엔진일 경우 테스트" 와 같은 문제가 있고, 추가로 권장하는 점은 플러그인 혹은 미들웨어를 사용할때 최대한 적게 사용하고, 만약 많이 사용해야 한다면
 1. 부분 소스 혹은 풀소스가 제공되는 플러그인
 2. 재정의를 많이 할수 있는 형태
 3. 문제가 생길 경우 빠른 수정이 가능한 회사인가?
위 세가지에 포함되는 점이 있는지 체크하고 사용하는게 좋습니다. 사용하다보면 문제가 생기거나 수정이 필요한 경우가 빈번하기 때문이죠.


* 마치며
글을 최대한 짧게 쓸려고 예시나 경험할 당시 상황이야기(?)를 하지 않았습니다. 사연 이야기가 나오고 이런저런 이야기 쓰면 지루해 질까봐;;


댓글

이 블로그의 인기 게시물

[UNITY] Shader 전역 변수 _Time 모바일 기기에서 버그

안드로이드앱 개인정보 취급방침

[UNITY3D] 쉐이더 내에서 "행렬 * 벡터" 연산