게임 엔진 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까지 게임 메모리 구조 관점에서 이어서 읽을 수 있게 모아 둔 시리즈 허브 글입니다.
시리즈 열기최근에 올린 글을 시간순으로 확인할 수 있습니다.
이전 글에서는 벌스(Verse)의 함수 문법이 기존 C++나 게임 스크립트 언어와 어떻게 다른지를 정리해보았습니다. 특히 override와 suspends 같은 표현들을 통해 함수의 상태와 특성을 코드 안에서 비교적 직접적으로 표현하고 있다는…
이전 글에서는 벌스(Verse)의 변수 선언 방식과 타입 시스템, 그리고 option 타입과 Failure 개념이 어떤 방향성을 가지고 있는지를 정리해보았습니다. 이번 글에서는 벌스 함수 문법이 왜 기존 언어들과 조금 다르게…
이전 글에서는 벌스(Verse)가 기존 게임 스크립트 언어들과는 조금 다른 방향성을 가지고 있다는 점을 정리해보았습니다. 특히 Failure와 동시성 같은 개념을 언어 안으로 가져오려는 특징도 함께 살펴보았습니다. 이번 글에서는 실제…
이전 글에서는 Epic이 왜 새로운 언어인 벌스(Verse)를 만들기 시작했는지를 정리해보았습니다. 언리얼 엔진에는 이미 강력한 C++와 블루프린트가 존재합니다. 그럼에도 Epic은 새로운 언어를 준비하기 시작했고, UEFN(Unreal Editor for Fortnite)을 통해…
언리얼 엔진 4버전이 출시된 이후로 언리얼 엔진에서는 C++와 블루프린트를 활용해 게임 로직을 개발할 수 있었습니다. C++는 언리얼 엔진의 핵심 시스템을 구성하는 강력한 언어이고, 블루프린트는 프로그래밍 경험이 많지 않은 개발자도…
시리즈 바로가기 1. 렌더링 파이프라인 완벽 이해 – 게임 엔진은 화면을 어떻게 만들어낼까? 2. Input Assembly 단계는 왜 필요할까? 3. Vertex Shader 단계는 왜 필요할까? 4. Rasterizer 단계는…
이전 글에서는 Output Merger 단계가 왜 필요한지를 정리했습니다. Output Merger 단계에서는 Depth Test와 Blending, 그리고 Frame Buffer 갱신 같은 작업들이 수행되며, 최종적으로 GPU가 실제 화면 이미지를 완성하게 된다는…
이전 글에서는 Pixel Shader 단계가 왜 필요한지를 정리했습니다. Pixel Shader 단계에서는 Fragment마다 최종 색상을 계산하게 되며, Texture Sampling, 조명 계산, Material 표현 같은 다양한 그래픽 처리들이 이 단계에서…