물론 상용엔진들의 퀄리티는 대단히 뛰어나다.
그렇지만 여전히 게임엔진을 자체개발해야할 이유는 존재한다.
게임엔진이 그래픽 렌더링만 하는게 아니다. 그래픽 렌더링은 보여지는 모습일 뿐이고 내부적으로 씬관리, 오브젝트 스케쥴링, 게임내 물리처리 등이 필요하다.
…
mmorpg와 같은 서버 베이스의 온라인 게임이라면 클라이언트와 서버의 동기화 작업이 만만치 않다.
그런데 상용엔진들은 다수의 클라이언트와 서버에 대한 동기화를 위한 고려가 되어있지 않다.
클라이언트에서만 사용하는 내부 로직은 물론 훌륭하겠지만 서버에서 다수의 클라이언트들을 추적하는데 사용하기엔 무리가 있다. 너무 느리고 무겁고 커스터마이즈 하기 어렵다. 그래픽 API와 완전히 분리해서 서버의 콘솔환경에서 작동하기에도 무리가 있다.
그렇기 때문에 서버와 클라이언트에서 공용으로 사용할 수 있는 코드 덩어리가 필요하다.
자체 엔진을 개발한다는 것은 이 부분을 가장 깔끔하게 해결할 수 있는 방법이다. 물론 ‘잘’ 만들때 얘기지만.
그렇고 그런 게임들이 넘쳐나게 된 이유가 꼭 시장 트렌드 때문일까? 결국 필요한 부품은 다 사다 쓰면 된다는 생각으로 개발하다보니 할 수 있는게 정해질수 밖에 없는것이다.
서버가 클라이언트에서 하는 짓을 다 할 수 있어야 진짜로 인터랙티브한 온라인 게임이 가능하다.
그리고 정형화된 솔루션들의 조합만으론 인터랙티브하면서도 게임의 특성을 살릴 수 있는 환경은 만들지 못한다.
하지만 뭐.
클라에선 빠징코 돌리고 http리퀘스트로 서버에 점수만 쏴주면 되는 형태의 게임으로도 돈을 충분히 벌고 있다 하니, 애초에 특색있고 인터랙티브한 게임 따윈 필요 없는거겠지.