게임 엔진 Component 기반 구조 완벽 이해
최근 게임 엔진 구조가 지금과 같은 방향으로 발전한 이유와 왜 Component, ECS, Data Oriented Design 같은 기법들이 등장하게 되었는지를 정리했습니다.
시리즈 열기Game Engine Framework Notes
C++와 실제 엔진 사례를 바탕으로 메모리, 자료구조, Unreal/Unity 내부 구조를 설명하는 기술 블로그입니다.
최근에 직접 정리한 허브 글을 기준으로, 먼저 읽으면 좋은 시리즈를 모아 둡니다.
최근 게임 엔진 구조가 지금과 같은 방향으로 발전한 이유와 왜 Component, ECS, Data Oriented Design 같은 기법들이 등장하게 되었는지를 정리했습니다.
시리즈 열기게임 엔진 Transform 구조를 정리한 시리즈 글입니다. Position, Rotation, Scale부터 Local 좌표와 World 좌표, Parent/Child 구조, 행렬까지 게임 엔진의 공간 계산 구조를 함께 설명합니다.
시리즈 열기게임 렌더링 구조와 Rendering Pipeline의 전체 흐름을 입문자 기준으로 정리한 시리즈입니다. GPU가 Vertex 데이터를 어떻게 화면 픽셀로 변환하는지, Vertex Shader와 Rasterizer, Pixel Shader, Output Merger 단계는 왜 필요한지, 그리고 CPU와 GPU는 어떤 방식으로 협력하면서 화면 이미지를 만들어내는지를 전체 흐름 기준으로 설명합니다.
시리즈 열기함수 포인터, callback, std::function, delegate, multicast delegate까지 엔진 관점으로 이어서 읽을 수 있게 정리한 시리즈 허브 글입니다.
시리즈 열기fixed timestep, variable timestep, hybrid loop, deltaTime, FPS 제어를 엔진 관점에서 이어서 정리한 게임 루프 시리즈 허브 글입니다.
시리즈 열기allocator 설계, memory pool, placement new까지 C++ 게임 엔진 메모리 흐름으로 이어서 읽을 수 있게 정리한 시리즈 허브 글입니다.
시리즈 열기C++ RTTI의 기초부터 custom RTTI, Unreal 스타일 reflection 흐름까지 한 번에 따라갈 수 있게 정리한 시리즈 허브 글입니다.
시리즈 열기stack, heap, cache miss, AoS, SoA, ECS까지 게임 메모리 구조 관점에서 이어서 읽을 수 있게 모아 둔 시리즈 허브 글입니다.
시리즈 열기최근에 올린 글을 시간순으로 확인할 수 있습니다.
Scene Graph의 부모-자식 관계 연결하기 지난 글에서는 Scene Graph를 구성하는 가장 작은 단위인 SceneNode 클래스를 만들었습니다. 하지만 아직은 단순히 이름만 가진 객체일 뿐이었습니다. 각 노드는 서로 아무런 관계도…
SceneNode란 무엇인가? 지난 글에서는 씬 그래프가 무엇인지 간단히 살펴봤습니다. 씬 그래프는 게임 오브젝트를 단순한 목록으로만 관리하지 않고, 부모-자식 계층 구조로 관리하는 방식입니다. World └─ Player ├─ Camera └─…
씬 그래프란 무엇인가? 언리얼 엔진 6 로드맵에서 흥미로운 변화 중 하나는 Scene Graph입니다. 에픽은 언리얼 엔진 6에서 Verse 기반의 새로운 게임플레이 프레임워크를 Scene Graph라는 이름으로 소개하고 있습니다.…
이전 글에서는 View Matrix가 왜 중요한지를 살펴보았습니다. View Matrix는 월드 공간(World Space)에 있는 객체를 카메라 기준 공간(View Space)으로 변환하는 행렬이며, 렌더링 과정에서는 카메라를 움직이는 대신 세상을 반대로 이동시키는…
이전 글에서는 월드 행렬(World Matrix)이 왜 중요한지를 살펴보았습니다. 월드 행렬은 이동 행렬과 회전 행렬, 스케일 행렬을 하나로 결합한 결과이며, 모델 공간(Model Space)의 정점을 월드 공간(World Space)으로 변환하는 역할을…
안녕하세요. 장세윤입니다. 오늘은 제가 메인 강사로 참여하고 있는 언리얼 게임 개발자 양성과정 5기 모집 소식을 공유드리려고 합니다. 벌써 다섯 번째 기수가 되었네요. 1기와 3기는 잘 마무리되었고, 4기는 현재…
이전 글에서는 스케일 변환 행렬(Scale Matrix)이 왜 중요한지를 살펴보았습니다. 스케일은 객체의 방향은 유지하면서 크기를 변경하는 공간 변환이며, 게임 엔진에서는 이를 이용해 동일한 모델을 다양한 크기로 배치할 수 있다는…
이전 글에서는 회전 변환 행렬(Rotation Matrix)이 왜 중요한지를 살펴보았습니다. 회전은 객체의 방향 자체를 변경하는 공간 변환이며, 이러한 회전을 계산하기 위해 삼각함수와 행렬이 함께 사용된다는 점도 알아보았습니다. 이번에는 또…