저는 C++도 처음이고, 언리얼도 처음 본 그야말로 핵초보 입니다. 이 강좌를 보기전에 블루프린트 강의 1회 청취 후, cpp 동강을 1회 청취하면서 코드를 따라 해 본 다음에 이 강좌를 듣게 되었습니다. 약 두달 준비하고 이 강좌를 접한 것입니다.
자율주행 시뮬레이션을 준비하는 사람인데요, 자율주행 센서/데이터 경험 + cpp-30% + bp-30%이 언리얼로 진행되다 보니 언리얼을 하게 되었구요, 언리얼 cpp를 하려다 보니 bp부터 수강하는 것이 good-path가 되리라 싶어 순서를 위처럼 잡고 진행하였습니다.
그래서 어떻게 이 강좌를 이용해야 하는지에 대한 방법론이 없이 듣다보니 1회 청취 과정에서는 전혀 의미를 파악하지 못했었습니다. 로봇(NPC)제작에 대한 전체 부분을 4회 청취하면서 '아하~ 이런 것이구나'라고 느끼게 되었습니다. 그 이전까지는 제대로 이해되지 않음에 엄청난 스트레스와 시간을 보냈습니다. 4회독까지 오는데 정말 독한 마음으로 왔습니다. 예전 고시공부 했던 경험이 있는데, 그 때처럼 말이죠...
이 강좌는 제가 보기엔 다음과 같은 특징을 가지고 있습니다. 수강하 실때에 참고하세요.
강의 하시는 분이 엄청난 경험과 노하우가 느껴지긴 해도, 아쉬움이 있는 부분, 부분에서 조금은 도움이 되실 겁니다.
=====================================================================
1. 변수나 함수를 생성할 때, 규칙적인 표준화가 되어 있지 않습니다. 따라서 명칭을 정확히 암기/인지 하시고 진행해야 함을 항상 염두해 두고서 진행하는 것이 좋을 듯 합니다. 주인공을 Player/Character/Enemy로, 적 로봇을 Robot/My~ 등등 동일한 객체에 대해 다른 명칭으로 여기저기 코드에서 다르게 사용하고 있죠. 처음엔 뭐가 뭔지 따라 가기가 너무 어렵습니다. 이 부분이 초보자에게 가장 이해를 방해하는 물건이라 생각되는데요, 예를들면 적 Robot이 플레이어를 발견하면 블랙보드에 있는 Enemy 키에 플레이어를 "TargetEnemy"라고 셋팅하고 Player를 자동으로 따라가도록 함수를 만들 때, 그 함수명을 "SetEnemy"라고 강의에서 생성을 합니다. 함수명만으로는 함수의 기능을 이해하기에 어려움이 느껴집니다. 또한 함수명으로는 어느 구현파일에 적용이 될지 추측도 되지 않습니다. 제 생각엔 "SetSensoredPlayerToBBKey"라고 하면 암기할 필요가 없어지고 가독성이 매우 높아지므로 보다 용이하게 학습되지 않을까요? 참고로 블루프린트의 노드명들은 대부분 후자처럼 만들어 놓아 쉽게 이해됩니다. 이런 표준이 몸에 베어 있는 사람은 블루프린트 보다 UE4 Cpp가 오히려 더 쉬울수도 있을지 모릅니다.
2. NPC제작 부분의 경우, 인공지능 구현방법이 너무나도 다양하겠지만 여기서는 3가지를 설명합니다. 그런데 그 3가지를 설명한다는 이정표 제시를 처음에 하지 않기 때문에, sequence로 연결되었다고 오해를 불러 일으킵니다. 언제 어떤 것이 필요해서 만드는 것인지 처음엔 이해되지 않아 전체가 연결된 하나의 개념이라 오해하고 따라서 너무 복잡한 느낌을 갖게 됩니다. 각각 불리된 구현 항목임을 인지하면 조금 쉽게 느껴지거든요.
3. 포인터의 타입이나 input 파라미터에 대한 설명을 너무 빠르고 간단하게 하기 때문에 해당 Codes를 이해하는데 조금은 어려움을 느끼게 됩니다. 저는 언리얼 문서을 검색하면서 리스팅을 해 보았습니다. 한번이라도 본 기억을 조금 더 살려보기 위한 것이었습니다.
4. 언리얼 코딩 패턴과 전반적인 게임구현을 위한 UE4에서 필요한 구현 아키텍처(예를들면, 모듈 간의 연관성과 역할에 대한 이미징 같은)에 대해, 초반부에서 설명이 조금 있기는 하지만 부족하다는 생각이 듭니다. 개인적으로 게임개발 엔지니어링 기술에서 가장 중요한 것이 캐릭터 조작과 인공지능 구현방식이라 생각되는데요, 여기서 핵심을 차지하는 캐릭터BP↔AIController↔블랙보드/블랙보드TreeTask"의 연관성과 그 구현과정에서의 UE4에디터/visual Studio 각각이 처리하는 역할을 보다 명확히 분리하고 그 이유를 시간을 할애하여 정확히 설명하는 강의가 진행되었다면, 너무 좋았을 것 같습니다. 이것을 인지하고 나니 강의를 이해하는데 너무 편해졌습니다.
5. UE4의 인공지능(AI, Perception)과 머신러닝에서 일컫는 인공지능의 차이(?)랄까요... 처음엔 유사성이 있으리라 생각했지만, 시간이 지나서는 전혀 무관하다는 것을 알게 되었습니다.
6. 마지막으로는 UE4 최신 버전은 전체가 한글화 또는 번역된 문서를 찾을 수가 없다는 것이죠. 이 부분이 UE4개발 방법을 습득하는데 가장 시간적 누수가 많이 생기는 부분인 것 같습니다. 강의에서는 4.1x 버전으로 하며 현재 최신 버전과는 메뉴가 조금 다릅니다. 그렇다고 예전 버전으로 진행하기엔 찜짐합니다. 그래서 저는 이 부분은 거의 포기했구요, 최신 UE4.26-Window 최신 소스 받아서 컴파일해서 공부하고 있습니다... 난관은 정면돌파하다는 정신으로요... (매우매우 힘듭니다.. ㅜㅜ)
갤론) → 게임 개발방법의 습득에 필요한 중요 개념은, 기술/명석함 보다는 "관심과 반복"이 더 어울리는 것 같습니다. 관심은 전체 흐름을 창의하고 주도해 나가는 습성이 생기고, 반복은 손가락에 기억력을 만든다고나 할까요?
강사분의 실력은 매우 높다고 생각되지만, 1회에 많은 것을 이해하기는 매우 어려운 것 같습니다.
현재 이 강좌를 4번째 반복하면서 보다 심도있게 따라가고 있구요, 5번째 반복할 때에는 어떤 정보가 새롭게 인지될지 매우 궁금해 하고 있습니다. 한 10회 반복할 예정입니다. 선 수강자의 이런 저런 느낌이었습니다.
언리얼 공부 과정에서 쌓인게 많다보니...^^
행운을 빕니다.