약 3년간 유니티 클라이언트 프로그래머로 근무하다가 새로운 기술에 도전해보기 위해 언리얼을 공부하고자 마음먹었습니다. 프로그래밍 엔지니어 출신으로써 c++언어를 이용해서 언리얼에 접근해보고자 했는데, 대부분의 튜토리얼이 블루프린트로 되어있어서 학습의욕이 안나던 중 이득우님이 언리얼 c++강의 시리즈를 출시해주셔서 수강하게 되었습니다.
언리얼은 유니티와 함께 가장 대표적인 게임 엔진으로 알려져 있는데, 유니티와 달리 개발을 시작하기 위한 진입장벽이 높은 것으로 유명합니다. 그 큰 이유중 하나가 언리얼은 엔진에서 제작할 수 있는 프로젝트의 구조가 어느정도 잡혀있는 상태에서 시작하기 때문에 작업을 위해서는 그 구조를 일단 어느정도 파악한 후 접근해야 한다는 인식이 있기 때문이였습니다.
저는 이득우님의 언리얼 강의 시리즈를 통해, 전문 언리얼 프로그래머를 목표로 학습을 원했는데, 이득우님의 강의가 딱 그러한 느낌의 강의였습니다. 괜히 대기업 현업자들을 대상으로 수강한다고 말한 것이 아닌, C++언어와 CS지식의 기초가 어느정도 잡혀있는 사람들을 대상으로 기초부터 탄탄히 쌓아올릴 수 있게 방향성을 잡아주는 강의였습니다. 반대로 말하자면, 언리얼을 사용해 가볍고 빠르게 게임컨텐츠부터 만들어보고싶으신 분들에게는 추천하는 커리큘럼은 아니였습니다. 만약 개발 경험이 없는데 전문 언리얼 프로그래머가 되고싶으신 분들도 해당 강의가 아닌, 다른 가벼운 강의를 먼저 들어보시고 오시는걸 추천합니다. (이득우님의 강의를 다 들으실 분이라면 Part2부터 듣는것도 추천합니다)
그리고 해당 강의를 통해 객체지향적 설계 방법과 메모리 관리, 직렬화, 패키지 등 게임 프로젝트에서 필요한 지식들을 많이 익혀나갈 수 있었습니다. 위에서 말한 가볍고 빠르게 컨텐츠를 만드는 식의 강의에서는 배울 수 없는 전문 언리얼 프로그래머들을 위해 꼭 필요한 커리큘럼이라고 생각하는데, C++ 쌩포인터에서 생길 수 있는 문제들(메모리 누수, 댕글링 포인터, 와일드 포인터 등)에 대한 이슈들과 가비지 컬렉션을 통한 메모리 관리에 대한 설명을 해주시고, 언리얼 에셋과 로딩전략, 언리얼 빌드 시스템과 모듈에 대한 이야기를 해줌으로써 언리얼 엔진을 통해 최적화된 프로젝트를 만들 수 있는 길을 잡아주십니다. 이러한 내용들을 통해 단순히 혼자 간단한 게임을 만들기 위한 프로젝트가 아닌, 대규모 팀에서 작업할 수 있는 기본기를 잡아주는 느낌이였습니다.
제가 해당 강의를 통해 언리얼의 기초를 학습하면서 느낀 점들은 다음과 같습니다.
1. 언리얼에서 사용하는 프로그래밍 언어는 C++의 형태를 한 또다른 언어이다.
이득우님 강의에서도 언리얼에서 사용하는 언어를 'Unreal C++'이라고 표현하는데, 저도 그 표현에 동의하며 언리얼에서 사용하는건 C++의 문법을 빌린 또 다른 언어의 형태라는 생각이 들었습니다. C++과 C#의 중간쯤 위치하는 언어를 사용하는 느낌이랄까. c++을 잘 사용한다고 해서 언리얼의 엔진구조를 모르는 상태로 프로그래밍 작업을 할 수는 없고, 반대로 언리얼에서 c++로 컨텐츠 작업을 많이 해봤다고 해서 C++숙련도를 크게 보장하지는 못할거라는 생각도 들었습니다.
해당 강의에서도 인터페이스, 델리게이트, 리플렉션과 같은 C#에서 자주 사용하던 개념들을 언리얼 엔진에서 어떻게 구현하고 응용하는지에 대한 내용이 강의의 많은 부분을 차지하고 있었습니다.
2.C++에 집착하지 말자. 블루프린트도 쓸 곳이 많다
제가 이 글 서론에 '대부분의 튜토리얼이 블루프린트로 되어있어서 학습의욕이 안나던 중'이라는 표현을 사용했지만, 프로그래머 직군도 블루프린트에 대한 학습이 필요하다고 느꼈습니다. 나는 프로그래머니까 코드만 짜야지 하고 생각하는건 게임 클라이언트 엔지니어로써 매우 좋지 않은 태도인듯 합니다. 이 내용은 해당 파트보다는 이후 파트를 공부하며 느낀 점이기는 했지만, 혹시 저와 같은 생각을 하며 언리얼 공부를 미루고 계셨던 분들은 일단 블루프린트 튜토리얼을 보면서라도 언리얼 학습을 해보시길 추천합니다. 1번에서 이야기했듯이 프로그래밍 실력도 물론 중요하겠지만, 언리얼을 이용한 개발자라면 언리얼 엔진 자체에 대한 이해도를 먼저 높이는게 중요하다는 생각이 듭니다.
3.나는 인터렉션이 가능한 무언가를 만들면서 배우는게 재밌다
강의 소개 페이지에서도 기본기(게임 프레임워크)를 먼저 배우고 기초 체력(언리얼 C++)를 배워도 된다고 하셨는데, 저는 Part1부터 강의를 쭉 볼 생각이였기에 해당 강의부터 봤는데.. 약 10시간동안 언리얼 C++에 대한 내용을 일방적으로 듣는 형태였기에 강의를 수강하며 조금 심심한 느낌도 있었습니다. (제가 집중력이 안좋은 것도 있습니다..) 저와 같은 분들은 파트2와 병행해서 듣거나 파트2부터 듣고 언리얼에 대한 감각을 익히신 후에 해당 파트를 듣는것이 좋을 것 같습니다.
물론 이러한 기본기를 학습하는것은 조금 지루할 수는 있지만, 한번 꾹 참고 들으면 나중에 다양한 곳에서 큰 도움이 되는것 같습니다. 앞에서 말했듯이 대규모 팀에서 일하는 언리얼 전문 프로그래머가 되고싶다면 해당 강의의 내용을 꼭 공부해보시는걸 추천합니다.
'강의수강' 카테고리의 다른 글
이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해 수강 후기 (0) | 2024.01.27 |
---|---|
이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해 수강 후기 (1) | 2023.12.31 |
파이썬 추월코스 수강 후기 (4) | 2023.05.27 |
홍정모 연구소 - 그래픽스 새싹코스 1 : 렌더링의 원리 (1) | 2022.09.26 |
인프런 Rookiss 유니티 Part3 : 유니티 엔진 완강 (0) | 2022.05.23 |