자체엔진 vs 상용엔진

자체엔진을 쓰느냐 상용엔진을 쓰느냐…하는 문제에 대해서 몇 자 적어봄.

1. 엔진 기술이 아예 없는 개발팀(or 회사)은 상용 엔진을 사용하지 않으면 게임이 아예 안나온다. 선택의 여지가 없다. 이 경우 엔진부터 만들겠다고 하면 자살행위다.

2. 엔진 기술을 가지고 있고 이미 해당 엔진으로 게임 출시 경험이 있다면 굳이 상용엔진을 사용해야할 이유가 없다. 로열티 지불 안해도 되니 돈 굳어서 좋고, 내 맘대로 컨트롤 할 수 있으니 좋다. 다만 명백하게 상용엔진보다 나은 점이 있어야 하는데 이 부분을 충족하지 못한다면 상용엔진 선택이 나을 수 있다. 다음중 하나는 만족해야 한다.

a) 상용엔진보다 그래픽이 우월하다.

b) 상용엔진보다 성능(속도/메모리)면에서 우월하다.

c) [코드수정->테스트->디버깅->코드수정…)의 개발 이터레이션 속도가 상용엔진보다 빠르다. 만일 언리얼 엔진 프로젝트보다 빌드에 오래 걸린다면 고민좀 해봐야 한다.

d) 상용엔진에 없는 기능을 가지고 있다. ex) 복셀 처리, 서버 클라이언트 공용 사용 등..

게임 하나 무사히 출시해본 자체 엔진이라면 b,c는 거의 충족할거라고 본다. 이 경우는 굳이 상용엔진 쓸 필요가 없다.

3. 다만 복병이 하나 있는데. 아트 디자이너들이 경력관리 혹은 포트폴리오 관리 때문에 언리얼이 아니면 꺼리는 경우가 많다. 이 문제 때문에 상용엔진으로 갈아타기도 한다.

하지만 결론은 결정권자 마음이라는것.

난 내 엔진 가지고 있고 나 혼자 내 맘대로 만드니까 앞으로도 상용엔진은 쓸 생각이 없다. b,c,d는 충족할뿐더러 남의 엔진 가지고 게임 만들거면 난 게임 안만들고 만다. 나한텐 재밌는 기술이 우선이다.


자체엔진 vs 상용엔진”에 대한 답글 10개

  1. 저도 제 엔진 개발이 꿈인데 대체 뭐부터 시작하고, 공부해야 하는지 조언 좀 부탁드립니다.

    좋아요

    1. 1. DX11로 삼각형을 하나 그립니다.
      2. 그리고 간단한 텍스처를 입혀봅니다.
      3. 그 상태에서 카메라를 돌릴수 있게 만들어봅니다.
      4. 키보드 입력을 받나 삼각형을 움직일수 있게 해봅니다.
      5. 모델데이터를 삼각형 점배열과 인덱스 배열로 만들어주는 모델 로더를 만듭니다.
      6. 맥스등으로 만든 데이터를 로드해서 삼각형 대신 렌더링합니다.
      뭐 일단 이 정도 해보면 될거같네요. 여기까지 대략 6개월?

      좋아요

  2. 3번 아트 디자이너가 회사에서 요구하는 경력이나 포트폴리오 관리 때문에 언리얼이 아니면 꺼린다는 건 사실이랑은 다소 틀린 얘기네요.

    사실 아트 디자이너가 회사에서 요구하는 언리얼 경력이나 언리얼로 만든 포트폴리오 때문에 언리얼이 아니면 꺼리는 경우보다는 프로그래머가 회사에서 요구하는 언리얼 경력이나 언리얼 포트폴리오 때문에 언리얼이 아니면 꺼리는 경우가 훨씬 많아요. 아트 디자이너들이 언리얼을 꺼리는 경우는 프로그래머에 비해 상당히 드물죠. 이게 왜냐면 아트 디자이너 쪽은 어차피 게임엔진이 본인들 원화, 모델링, 애니메이팅 같은 리소스 만드는 프로그램 툴도 아닌 상황인 데다가 게임 리소스 같은 경우에는 게임엔진이 언리얼이냐 아니냐랑 딱히 별 상관이 없는 문제다 보니 프로그래머에 비해 신경 쓸 이유가 크지 않아서 그래요. 아트 디자이너 경력이나 포트폴리오도 언리얼이든 그다지 중요한 요소가 아니고요. 그래서 게임회사에서 아트 디자이너한테 꼭 언리얼 경력이나 포트폴리오를 요구하는 경우도 거의 없죠.

    반면에 프로그래머의 경우에는 일을 하는 툴 자체가 게임엔진인 데다가 경력이나 포트폴리오 부분에서도 회사에서 언리얼이나 유니티 같은 특정 상용엔진 경력이나 포트폴리오를 요구하는 경우가 많아서 상용엔진이냐 아니냐가 중요한 부분이라 같은 조건에서는 자체엔진 프로젝트를 꺼리는 면이 확실히 있죠. 거기다 자체엔진 같은 경우에는 성능이 낮은 경우가 많고 관련 기능 구현을 프로그래머가 스스로 해야 하는 경우도 꽤 있어서 실력이 없으면 꺼리는 경우도 많고요.

    근데 이런 경우는 있어요. 아트 디자이너들이 자체엔진의 기능이나 편의성 등의 성능이 낮아서 상용엔진을 선호하는 경우인데 이 경우는 굳이 언리얼이 아니면 꺼리는 것도 아니고, 기능이나 편의성 등의 성능이 낮아서 꺼리는 건 3번에서 말씀하신 회사에서 요구하는 경력이나 포트폴리오 관리 때문에 언리얼이 아니면 꺼린다는 얘기랑은 맥락이 다른 얘기입니다. 왜냐면 이 경우는 회사에서 요구하는 조건 때문에 꺼리는 게 아니라 특정 기능이 있냐 없냐, 편의성이 높냐 낮냐처럼 게임엔진의 성능에 따라 꺼리는 상황이기 때문에 꺼리는 이유가 달라요.

    거기다 상용엔진이나 언리얼이 아니라도 엔진 소스 수정이나 플러그인 같은 방법으로 기능 구현이나 편의성을 좋게 만들 수 있는 부분이라 자체엔진이냐 상용엔진이냐, 언리얼이냐 아니냐랑은 딱히 연관이 없고 같은 프로젝트에 소속된 그래픽 프로그래머나 엔진 프로그래머 역량이 중요한 문제입니다.

    좋아요

    1. 제 경우는 그랬고 님의 경우는 달랐던거겠죠. 딱 잘라서 틀린 얘기라고 적으셨는데 저는 님의 댓글에 대해 틀린 얘기라고 하진 않겠습니다. 그냥 각자의 경험이 달랐다고 해두겠습니다. 공격적인 느낌으로 댓글을 다셨는데 공격적인 느낌의 댓글을 달면서 소속과 실명을 밝히지 않으면 결코 좋은 이미지로는 전달되지 않습니다.

      좋아요

  3. 영천님 혹시 자체엔진에서 만든게임을 빌드해서 exe파일로 만드는 과정도 강의해주실 수 있을까요?
    유튜브 같은 곳에 기능 구현은 많은데 구현한걸 게임파일로 만드는 방법같은 건 어떻게 구현하는지 궁금해서 여쭤봅니다.

    좋아요

    1. 빌드해서 exe로 만드는 방법이라고 하는게 무슨 뜻인가요? 자체엔진이라고 하면 보통 dll이나 lib, 더 원시적으로는 h/cpp 파일 형태이기 때문에 사용하려면 무조건 exe가 있죠. 아마 쯔꾸르 형태의 어떤 툴을 생각하시는것 같은데 자체 엔진이라고 하면 그런것과는 거리가 멉니다.

      좋아요

주조지님에게 덧글 달기 응답 취소