카테고리 C++

C++ 게임 루프 방식 비교: 고정, 가변, 하이브리드 구조 완전 정리

🚀 들어가며 이전 글에서는 C++로 게임 루프를 직접 구현하면서👉 고정 프레임(Fixed Timestep) 구조를 살펴봤습니다. 이번 글에서는 한 단계 더 나아가👉 게임 루프의 다양한 방식들을 비교해보겠습니다. 🎯 이번 글의 목표 게임 루프에는 여러 방식이 존재합니다. 이번 글에서는 다음을 비교합니다: Fixed timestep…

C++ 게임 루프 구현: QueryPerformanceCounter로 고정 프레임 엔진 루프 만들기

🚀 들어가며 이전 글에서는 게임 루프의 기본 개념과deltaTime이 왜 필요한지 살펴봤습니다. 👉 게임은 반복되는 루프를 통해 계속 실행된다 이번 글에서는 한 단계 더 나아가👉 C++로 실제 동작하는 게임 루프를 구현해보겠습니다. 🎯 이번 글의 목표 이번 글에서는 다음을 구현합니다: 고정 프레임(Fixed…

C++ 게임 루프 완벽 이해: 게임은 어떻게 계속 움직일까?

🚀 들어가며 이번 글에서는 C++ 게임 루프의 기본 구조와 게임이 어떻게 계속 실행되는지를 설명합니다. 게임을 실행하면 캐릭터가 움직이고, 화면이 계속 갱신됩니다. 그렇다면 이런 질문이 자연스럽게 떠오릅니다. ❓ 게임은 어떻게 “계속” 실행되는 걸까? 이 질문에 대한 답이 바로 👉 게임 루프(Game…

C++ RTTI 완벽 이해: dynamic_cast부터 커스텀 RTTI까지 (시리즈 정리)

🚀 들어가며 C++에서 타입을 다루는 방법은 단순한 문법 이상의 의미를 가집니다. dynamic_cast로 시작해서👉 직접 RTTI를 구현하고, 나아가 엔진 수준 구조로 확장하는 과정은게임 엔진을 이해하는 데 매우 중요한 단계입니다. 이 시리즈에서는: RTTI의 개념 dynamic_cast의 원리와 한계 커스텀 RTTI 구현 Unreal Engine…

C++ RTTI 활용 (완성): TSubclassOf 스타일로 타입 기반 객체 생성 구현하기 (4탄)

🚀 들어가며 이번 글에서는 C++ TSubclassOf 구현을 통해 타입 정보를 기반으로 객체를 생성하는 방법을 살펴봅니다. 이전 글에서 우리는 다음의 내용을 이해하고 구현했습니다. dynamic_cast의 원리 이해 다운캐스팅의 위험성 TypeId 기반 RTTI TypeInfo 기반 엔진 수준 RTTI 이제 마지막 단계입니다. ❓ 타입을…

C++ RTTI 직접 구현하기 (2): TypeInfo로 언리얼 엔진 스타일 RTTI 만들기 (3편)

🚀 들어가며 이전 글에서는 TypeId 기반으로👉 dynamic_cast 없이 타입을 비교하는 방법을 구현했습니다. if (obj->Is(Player::TypeId())) 이 방식은 매우 빠르고 단순합니다.하지만 실제로 사용하다 보면 한 가지 한계에 부딪힙니다. ❗ 타입에 대한 “정보”가 부족하다 🎯 이번 글의 목표 이번 글에서는 TypeId 기반 시스템을…

C++ RTTI 직접 구현하기 (1): TypeId 기반으로 dynamic_cast 없이 타입 체크하기 (2편)

C++ RTTI 직접 구현하기 (1): TypeId 기반으로 dynamic_cast 없이 타입 체크하기 🚀 들어가며 이전 글에서 C++의 dynamic_cast와 RTTI 개념을 살펴봤습니다. 그리고 중요한 사실을 확인했습니다. ❗ dynamic_cast는 안전하지만, 런타임 비용이 발생한다 또한 다운캐스팅이 왜 위험한지도 메모리 관점에서 확인했습니다. 그렇다면 자연스럽게 이런…

C++ 다운캐스팅이 위험한 이유: 메모리 구조와 포인터 관점에서 이해하기 (1.5편)

[1.5편] C++ 다운캐스팅이 위험한 이유: 메모리 구조와 포인터 관점에서 이해하기 🚀 들어가며 이전 글에서 dynamic_cast와 RTTI에 대해 살펴봤습니다. 그런데 여기서 한 가지 중요한 질문이 남습니다. ❓ 왜 C++에서 다운캐스팅은 위험하다고 할까? 단순히 “안전하지 않다”는 설명만으로는 부족합니다. 이번 글에서는 메모리 구조와…

C++ RTTI 완벽 이해: dynamic_cast의 원리와 한계 – 커스텀 RTTI까지 (1편)

🚀 들어가며 C++을 공부하다 보면 한 번쯤 이런 상황을 만나게 됩니다. Base* obj = GetObject(); Derived* derived = dynamic_cast<Derived*>(obj); if (derived) { // Derived 타입일 때만 처리 } 이 코드는 너무 익숙하지만,면접에서 이런 질문을 받으면 답변하기가 막막합니다. ❓ dynamic_cast는 내부적으로…

게임 엔진 구조를 이해하려면 꼭 해야 하는 1가지

들어가며 게임 엔진 구조 이해는 많은 개발자들이 어려워하는 부분입니다. 게임 개발을 공부하다 보면 “엔진 구조를 이해해야 한다”는 이야기를 자주 듣게 됩니다. 하지만 막상 어떻게 해야 하는 지에 대해 정보를 찾아도 잘 나오지 않습니다. 문서를 보고, 강의를 듣고, 검색을 해봐도 결국…

Please turn AdBlock off

Notice for AdBlock users

Please turn AdBlock off