• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

Unreal Engine의 핵심기능을 이해하기 위한 방법론에 대해 질문드립니다.

23.04.17 17:29 작성 조회수 936

4

안녕하세요, 언리얼 프로그래밍 Part 1 강의를 듣고있는 문민철이라고 합니다.

언리얼 리플렉션 시스템 관련 내용을 들으면서 궁금한 것이 있어 질문드립니다. 어쩌면 리플렉션 시스템에 국한된 질문이 아닌, 전반적인 질문이 될 수도 있겠네요.

1. 강의에서는 언리얼 리플렉션 시스템이 어떤 것이고, 어떤 역할을 하는지에 대해 다뤄주셨습니다. 제가 궁금한 것은 이 기능들이 어떻게 동작하는지에 대한 내부 동작 원리입니다.

(언리얼엔진의 내부 구조동작 원리에 대한 지식을 얻기 위해 본 강의를 신청했습니다.)

2. 문서만으로는 이 내용들을 이해하는게 제한적으로 보이고, 실제 코드 분석을 하면서 이해해야 할 것 같습니다. 코드 분석 방법론(철학)에 대해 질문드리고 싶습니다.

- 소규모 코드의 경우 전체적으로 분석을 하면 되지만, UE5와 같은 대규모 코드의 경우 분석을 위해서는 접근하는 방법론이 필요해 보입니다. 분석하는 방법론을 추천해 주시면 감사하겠습니다.

3. 마지막으로, 이 강의를 들은 후 해 볼만한 과제(ex: Unreal Build System 동작 원리 분석 등, 언리얼 엔진의 내부 구조를 이해하기 위해 도움이 될 만한 것들)를 추천해 주시면 감사하겠습니다.

감사합니다.

답변 1

답변을 작성해보세요.

2

안녕하세요. 좋은 질문이네요.
질문 주신 부분은 사실 많은 분들이 궁금해하시는 부분이기도 합니다.
1번에 대한 답변입니다.
언리얼 엔진이 제공하는 블루프린트라 흔히 부르는 창작자를 위한 상위 개발 환경은, 강의에서 언급한 언리얼 테크놀로지라고 부르는 C++ 프레임웍 기반에서 제공되는데, 이는 언리얼 오브젝트를 기반으로 구성되어 있고, 이 중의 핵심 기능 중 하나로 리플렉션이 있습니다.
이러한 언리얼 오브젝트는 C++ 언어가 제공하지 않는, 흔히 타입 정보라 불리는 클래스가 런타임에서 분석되고 인스턴스 값을 관리하는 기능을 제공하는데, 이들은 창작자들이 블루프린트를 사용해 가볍게 콘텐츠를 만들어주는 기반이 됩니다.
이러한 방향성은 언리얼 C++은 C++ 언어지만 Java나 C#이 추구하는 모던 객체 지향 언어 철학을 따른다고 할 수 있습니다. 이는 한번에 파악하기는 어렵고 강의를 진행하면서 계속 설명합니다.
지금 리플렉션을 막 마친 상황인데, 이후에 등장할 다양한 디자인 설계 기법에 대해서 학습해보시면 많이 도움될 것 같습니다. 그리고 언리얼 오브젝트가 어떻게 타입을 관리하는지에 대해서는 11강 구조체에서 추가로 설명하는데, Part1 강좌는 자료구조를 포함해 이러한 언리얼 엔진 C++의 특징을 설명하는데 거의 대부분의 시간을 할애했다고 보셔도 됩니다.
2번에 대해 답변을 드리면,
현재 언리얼 엔진 5를 분석하는 가장 좋은 공부 방법은 라일라(Lyra)샘플을 분석하는 것입니다. 다만 해당 샘플은 상위 개발 방법론인 GAS(Game Ability System)과 멀티 플레이까지 너무 많은 내용을 담고 있어서 먼저 기본에 해당하는 언리얼 엔진의 게임 프레임웍을 이해해야 합니다. 게임 제작을 체계적으로 빌드업하는 과정은 곧 올라갈 예정인 Part2 강좌에서 자세히 다룰 예정입니다.
3번에 대해 답변을 드리면,
해당 부분에 대해서는 가장 마지막 강좌인 15강에서 모두 정리해두었습니다. 다른 강좌와 큰 연관이 없어서 먼저 보셔도 무방합니다.

문민철님의 프로필

문민철

질문자

2023.04.17

답변 감사합니다.

아직 모든 궁금증에 대해 해결된 것은 아니지만, 모든 강의를 듣고 난 후, 다시 정리해서 질문드리겠습니다.

감사합니다.