강의 목표 : 언리얼 오브젝트 리플렉션 시스템의 활용 강의 내용 : 언리얼 리플렉션 시스템을 사용해 언리얼 오브젝트의 특정 속성과 함수를 이름으로 검색할 수 있다. 리플렉션 시스템을 사용해 접근 지시자와 무관하게 값을 설정할 수 있다. 리플렉션 시스템을 사용해 언리얼 오브젝트의 함수를 호출할 수 있다. [ ✔️실습 : 리플렉션 시스템 ] 📍실습 : 실습 예제 구성 : 학교에서 학생과 선생이 수업 하는 것을 기본 전재로 한다. 각 클래스의 내부적인 구조는 아래와 같다. 실습 코드 : // UObject 객체 생성 UStudent* Student = NewObject(); UTeacher* Teacher = NewObject(); Student->SetName(TEXT("학생1")); UE_LOG(LogTe..
강의 목표 : 언리얼 오브젝트의 특징과 리플렉션 시스템의 설명 언리얼 오브벡트의 처리 방식의 이해 강의 내용 : 언리얼 오브젝트에는 항상 클래스 정보를 담은 UClass 객체가 매칭되어 있다. UClass로부터 언리얼 오브젝트의 정보를 파악할 수 있다. UClass에는 "클래스 기본 오브젝트(CDO)"가 연결되어 있어 이를 활용해 개발의 생산성을 향상시킬 수 있다. 클래스 정보와 CDO는 엔진 초기화 과정에서 생성되기에 게임 개발에서 안전하게 사용 가능 헤더 정보를 변경하거나 생성자 정보를 변경하면 언리얼 에디터를 끄고 컴파일하는 것이 안정적임 [ ✔️리플렉션 시스템 ] refer : https://www.unrealengine.com/ko/blog/unreal-property-system-reflect..
강의 목표 : 게임 프로그래밍이 가지는 특수성을 파악하고 언리얼 오브젝트의 필요성 이해 언리얼 오브젝트 선언과 엔진 내부 컴파일 과정 학습 강의 내용 : 게임이 대형화되며 성능과 유지보수 두 가지 모두 중요해짐 언리얼 엔진은 C++ 언어를 확장한 언리얼 오브젝트라는 객체 구조를 고안함 지정된 매크로를 사용해 빌드를 수행하면, 추가 코드가 자동으로 만들어지는 구조를 가짐 언리얼 오브젝트를 사용해 대규모 게임 제작을 안정적으로 설계하고 구현할 수 있음 [ ✔️게임 프로그래밍의 특수성 ] 📍사용자와 개발자의 관점차이 : 사용자 : 쾌적한 경험을 위해 단일 컴퓨터에서 최대 성능을 뽑아야함 개발자 : 게임의 규모가 커질수록 방대하고 복잡한 기능을 안정적으로 관리해야함 이러한 이유로 하드웨어에 직접 접근해서 성능을..
강의 목표 : 언리얼 환경에서 알아두어야 할 기본 타입과 고려할 점 캐릭터 인코딩 시스템에 대한 이해 언리얼 C++이 제공하는 다양한 문자열 처리 방법과 내부 구성의 이해 강의 내용 : 언리얼이 C++ 타입 int 를 사용하지 않는 이유 다양한 캐릭터 인코딩 시스템 언리얼의 문자열 이해 FString의 구조와 사용 방법 FName의 구조와 사용 방법 [ ✔️기본 타입 ] 📍따로 지정하는 이유 : C++ 언어는 1970년대에 개발되었다. ( 엄청 오래됨) 플랫폼마다 C언어를 구현하는 방법이 달랐다. (플랫폼 파편화, Platform Fragmentation) 최신 규약에서 int는 최소 32비트를 보장하도록 규정되어 있지만 어떤 플랫폼에선 64비트로 해석될 수 있다. (int 타입의 크기 모호) 📍게임 제..
강의 목표 : 언리얼 C++ 코딩 표준 이해 / 주의점 확인 강의 내용 : public 에서 private 으로 이어지는 클래스 체계 명명규칙 : 파스칼 케이싱(Pascal Casing), 언더스코어(_) 사용x, 클래스와 구조체의 고유 접두사 코드의 명확성 : 파라미터 In/Out 접두사 명시, const 지시자 적극 활용, 레퍼런스(&)를 활용한 복사 방지, auto 키워드 사용 자제 Find In Files 활용 #include 구문 사용시 의존성 고려할 것 (의존성 최소화 시키기) [ ✔️코딩 표준 Coding Standard ] = 코딩 스타일(Style), 코딩 컨베션(Convention) 프로그래밍을 작성하는데 지켜야 하는 프로그래밍 이름 규칙과 작성법 등을 지정한 가이드라인 프로젝트를 진행..