ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [뿌직] 유니티만 하다가 언리얼로 취업하면서 느끼게 되는 점
    작은 똥/뿌직 2024. 4. 14. 21:48
    반응형

    개요

    게임 업계로 들어오기 위해서 상용 엔진을 통해 게임 제작을 했어야 했고 이에 따라 가장 메이저 한 2개의 엔진 중 하나를 고르게 됩니다. 유니티와 언리얼. 
     
    제가 대학교에 입학한 시점부터 언리얼도 요금 정책이 달라졌기에 이 둘 중 원하는 엔진을 고르면 되었습니다. 여러 생각과 경험들이 있었지만 이 상황에서 저는 유니티를 먼저 공부했고 추후 취직은 언리얼 프로젝트로 하게 되었습니다. 이러한 과정들 속에서 느끼게 된 점들을, 더 이상 잊기 전에 한번 작성해 보려고 합니다. 이를 통해 추후 엔진을 선택하실 분들에게 도움이 되었으면 합니다.
     
     

    유니티를 통한 2D 게임 제작

    당시 제작했던 게임. 같이 달려주신 팀원분들께 언제나 무한한 감사를...

     

    첫 제작은 유니티를 통해서 2D 게임들을 제작하는 것이었습니다. 연합 게임 제작 동아리에서 2년, 게임잼 3회 동안 전부 유니티를 통해 게임을 만들게 되었으며 이 과정 속에서 많은 성장을 이뤘습니다.
     
    일단 유니티로 시작을 하게 되어 가진 장점은 아래와 같습니다.

    • 일단 UI 가 쉽고 알아야 할 지식이 얕다 (언리얼에 비해)
    • 각종 레퍼런스들이 영어 자료로 많이 있었다. 유튜브에 unity ~~~ 로 검색하면 수많은 자료들이 나왔다
    • 배운 디자인 패턴들을 적용하기가 쉬웠다 (멀티플레이가 아닌 전제)

     
    유니티가 초보자들에게 쉽다는 이유들을 몸소 느낄 수 있었습니다. 일단 UI도 보기 쉽게 되어 있으며 언어도 C++에 비하면 C#은 너무 예쁘게 코드를 짤 수 있었습니다. 지금도 코드를 쓰라면 C#에서 코드가 더 깔끔하게 나올 것 같네요.
     
    그 외 여러 가지 영어 자료들이 많이 있어 유튜브에 unity~~ 로 검색하면 갖가지 기능들을 제작하는 방식들이 나왔습니다. 물론 아주 코어한 시스템을 짜는 자료들은 없었지만 아직 입문인 단계에서, 이런 자료들을 통해 다양한 상황을 제작할 수 있는 방법을 얻을 수 있었죠.
     
    그리고 추후, 성장에 대해 고민하던 중 디자인 패턴들을 알게 되었고, 이를 적용하는 게 쉬웠습니다. 복잡한 헤더들을 넣을 필요도 없었으며 멀티플레이 게임도 아니었기에 더더욱 패턴들에 대한 적용이 쉬웠습니다.
     
    그 외에 여러 장점들이 있지만 '유니티를 통해 게임 제작을 입문한다'라는 상황에서 위 장점들이 제일 먼저 생각나게 됩니다. 무튼, 돌이켜 봤을 때 유니티로 입문한 건 나쁘지 않은 선택이라 생각합니다.
     
     

    왜 유니티를 안 쓰게 되었는가

    하지만 결국은 언리얼 개발자로 들어서게 되었습니다. 취업 준비를 하던 중 결정하게 된 사항이며 아래와 같은 이유들로 언리얼로 변경을 하게 되었습니다.
     

    • 취업 길의 수는 비슷하지만 큰길에서 언리얼의 선택지가 더 넓었다
    • 각종 게임들을 보며 유니티의 최적화에 대한 의문을 품게 되었다
    • 멀티플레이에 대해 언리얼에 대한 지원이 더 크다
    • 언리얼을 하면 엔진의 코드를 볼 수 있다

     
    일단은 취업을 목표로 하였기에 기업에서 나오는 공고들을 무시할 수 없었습니다. 유니티나 언리얼이나 공고의 수 자체는 비슷했지만 큰 기업에서는 언리얼의 공고가 더 많았습니다. 큰 회사에서 어떤 식으로 일하는지 보고 싶었기에 언리얼 프로젝트에 지원하고 싶었고 이에 따라 언리얼을 배우자는 생각이 들었습니다.
     

     

    그리고 여러 게임 방송들을 보고 있는데 눈에 들어온 게임이 하나 있습니다. Excape From Tarkov. 상당히 재미있는 게임으로 지금은 없는 트위치에서 많은 인기를 끌었던 게임입니다. 
     
    이 게임을 보면서 유니티로 제작되었음에도 빼어난 그래픽에 감탄을 했지만 그와 동시에 유니티의 한계를 느끼기도 했습니다. 최적화에 대한 한계와 애니메이션들에 대한 관리가 힘들다는 걸 계속 생각하게 되었고 이와 동시에 '이게 언리얼로 만들어졌으면 좀 더 최적화가 되었을까?' 란 생각이 들었습니다.
     
    물론 언리얼이 마법의 지팡이는 아니라 이걸 한다고 해서 무조건 최적화가 되는 것은 아니지만 이런 고민을 하게 만든다는 점에서 유니티로 3D 게임을 규모 있게 만드는 건 어려운 길이라 생각했습니다.
     
    그리고 멀티플레이. 기본적으로 제가 유니티를 하던 시절, 2019 버전까지 유니티 자체적으로 멀티플레이를 지원하는 경우는 없었습니다. 지금은 있을지 모르겠네요. 거의 막바지에 로비 서버나 다른 지원들이 있어 멀티플레이를 도전해 봤지만 언리얼에 비해 너무나도 부족했습니다.
     
    기본적으로 에디터에서 여러 클라이언트를 켤 수 없는 유니티에 비해 언리얼은 4에서부터 해당 기능들을 제공해주고 있었습니다. 이에 반해 유니티는... 계속 빌드를 뽑아낸 뒤 테스트를 해야만 했었죠. 
     
    마지막으로 유니티는 엔진의 코드를 제공해주지 않습니다. 물론 엔진을 만드신 분들이 최적화를 다 해놓았겠지만 아마추어의 입장에서 '프로'들이 쓰는 코드들이 궁금한 경우가 있습니다. 당장 GetComponent <>는 어떤 식으로 동작하기에 느린지, 물리 연산은 어떻게 이루어지는지... 이런 것들을 알아보기 위해서는 구글링만이 답이었고 인터넷에서 여러 의견들이 있었지만 공식 의견들이 아니라 확신을 가지기에는 어려웠습니다.
     
    언리얼은 이에 반해 런처를 통해 다운 받아도 모든 코드들을 볼 수 있었습니다. 심지어 깃허브에 참여하게 되면 소스코드 리포지토리도 제공해주고 있죠. 수정도 가능합니다!
     
    이 과정에서 엔진의 코드들을 보면서 게임 엔진에 대한 이해도 높아지고 여러 기법들을 보면서 더 성장을 하게 되었습니다. 그동안 오브젝트를 새로 만들면 어떤 식으로 동작할지도 몰랐는데 언리얼은 참으로 상세하게 알려주더라고요.
     
     

    결국 언리얼로 왔다. 단점은 없나?

    언리얼로 제작했던 멀티플레이 게임

     

    앞에서 말한 여러 장점들로 인해 언리얼로 포지션 변경을 하게 되었습니다. 그렇다면 언리얼은 최적화도 잘되고 모든 게 되는 완전무결의 게임 엔진인가? 그건 아닌 것 같습니다.
     
    제가 유니티를 하다가 본 언리얼의 단점은 아래와 같은 문제들이 있습니다.

    • 알아야 할 지식들에 대한 진입장벽이 높다
    • 개발 기간이 길어진다
    • 왜 이렇게 무겁냐
    • UI 가 별로다

     
    가장 큰 장점이자 단점이고 제가 유니티를 먼저 하게 된 계기입니다. 진입장벽. GameObject를 바로 레벨에 배치하는 유니티와는 달리 언리얼은 준비된 여러 클래스들의 상속 관계에 대한 파악이 필요합니다. Object와 Actor, Pawn, Character, 그리고 GameMode와 PlayerController, PlayerState, GameState... 왜인지 모르게 분리된 Interface.
     
    게임 내 구조들에 대해서 알아야 할 것들이 많았고 당장 레벨에 무언가를 배치하는 것조차 어려웠습니다. 아니 유니티는 그냥도 배치가 되었는데. 그리고 레벨에 설정해야 하는 것들이 왜 이렇게 많은지, 각 클래스들이 게임에서 무슨 역할을 하는지 등을 계속 알아야 했습니다.
     
    위 이유로 인해 개발 기간도 길어집니다. 구조적으로 설정해야 하는 게 유니티보다 훨씬 많은 느낌이거든요. 그리고 엔진이 상당히 무겁습니다. 그래픽카드를 많이 필요로 한다는 느낌이 확 느껴져요. 이런 이유로 추후 게임잼에 참가한다면 어떻게 해야 할지 고민입니다. 과연 유니티가 아닌 언리얼로 3일 만에 유니티만큼의 게임을 만들 수 있을지... 이런 고민들을 하게 됩니다.
     
    마지막은 개발자로서 별로인 건 아니지만 UI가 참... 별로입니다. 5는 좀 나아졌지만 4는 진짜 너무 개발자스러운 디자인이었으며 그 이전 버전들은(3의 에디터는 충격적이었다, 워낙 옛날 엔진이라)... 긴 말 안 하겠습니다.
     
     

    아무튼 언리얼로 정착은 했다

    이러저러한 장단점들을 써 놨지만 결국 취업은 언리얼로 했습니다. 지금에 와서는 언리얼의 단점들이 익숙해졌습니다. 회사에서도 이러저러하게 개발하고 있고요.
     
    만일 저에게 다시 돌아가서 시작 엔진을 고르라고 하면 언리얼로 할 것 같습니다. 멀티플레이, 엔진 코드, 취업에 있어서 유니티보다 언리얼이 더 좋게 느껴지거든요. 지금 개인 개발도 언리얼로 하고 있으니 앞으로도 언리얼 인생을 살아갈 것 같습니다.
     

    아 좋았었었는데


    여담으로 유니티 주식 90에 산 능지라 더더욱 안 볼 것 같습니다. 

    반응형

    댓글

Designed by Tistory.