게임 엔진이라는게, 단순히 렌더러만 있다고해서 엔진이라고 할 수 는 없습니다.

 

전부는 아니더라도, 게임에 필요한 각종 기능을 담아야 하는 것은 물론이거니와,

 

그런 기능들 조차 적지 않습니다.

 

기능 이외에도 툴을 제공해야 하는데, 이 툴이 가장 문제입니다.

 

툴이라는게, 단순히 리소스를 만들어내는 도구는 아니라고 생각합니다.

 

툴에서 어떤 정보들을 뽑아낼 수 있느냐에 따라서 작업방향, 작업 프로세스가 결정되게 되는거죠.

 

그 정보의 범위가 요즘은 상당히 넓습니다.

 

EPPENGINE 의 경우는 각종 LOD 정보 ( 셰이더 교체, 오브젝트 교체, 폴리곤LOD, 셰이더 Pass LOD, Animation Frame LOD, Bone LOD ...)

 

를 툴에서 설정 할 뿐아니라,  인스턴싱으로 그릴지 말지에 대한 설정들도 툴에서 하게 됩니다.

 

물론 헤어렌더링과 같이 복잡한 렌더스테이트를 가진 정보역시, 툴에서 설정하게 됩니다. (심지어 스키닝을 GPU 에서 할지 CPU 에서 할지

 

에 대한 정보도)

 

이렇게 많은 정보들이 툴에서 생성되다 보니, 디자이너가 프로그래머를 기다리던 상황도 많이 해소가 되며, 프로그래머가 하던 각종

 

설정들도 엔진에서 자동으로 처리되게 됩니다.

 

하지만 이또한 문제가 있더군요. 그래픽쪽에 넘겨준 각종 설정들은 프로그램적 지식없이 접근하기 힘들다는 점 입니다.

 

이처럼 툴이라는게, 어느 정보를 담느냐에 전체 작업프로세스가 달라지게 되는거죠.

 

툴 다음은 역시 API 가 되겠네요.

 

얼마나 명확하게 API 가 구성되어 있고, 이런 것들이 얼마나 편하게 엔진 안쪽에서 알아서 잘~ 처리해 주느냐가 관건 인데요,

 

이것 또한 쉽지 않은 문제더군요. 뭐 저희야 나름 잘 하고 있다고 생각들지만, 이건 정말 끝이 없는것 같습니다.

 

나중에는 create_good_game(  MMORPG ) 하면 좋은게임이 툭 하고 나와버리는.... 그런 API 하나 나오면.......

 

여튼 게임엔진이라는게, 기획, 그래픽, 프로그램 등 프로젝트의 많은 구성원들이 함께쓰는 도구이다 보니, 참 힘든것 같습니다.