C++ 게임 루프 구현: QueryPerformanceCounter로 고정 프레임 엔진 루프 만들기
🚀 들어가며 이전 글에서는 게임 루프의 기본 개념과deltaTime이 왜 필요한지 살펴봤습니다. 👉 게임은 반복되는 루프를 통해 계속 실행된다 이번 글에서는 한 단계 더 나아가👉 C++로 실제 동작하는 게임 루프를 구현해보겠습니다. 🎯 이번 글의 목표…
Series Archive
게임 개발 및 프로그래밍에 관련된 주제에 대한 카테고리 입니다.
🚀 들어가며 이전 글에서는 게임 루프의 기본 개념과deltaTime이 왜 필요한지 살펴봤습니다. 👉 게임은 반복되는 루프를 통해 계속 실행된다 이번 글에서는 한 단계 더 나아가👉 C++로 실제 동작하는 게임 루프를 구현해보겠습니다. 🎯 이번 글의 목표…
🚀 들어가며 이번 글에서는 C++ 게임 루프의 기본 구조와 게임이 어떻게 계속 실행되는지를 설명합니다. 게임을 실행하면 캐릭터가 움직이고, 화면이 계속 갱신됩니다. 그렇다면 이런 질문이 자연스럽게 떠오릅니다. ❓ 게임은 어떻게 “계속” 실행되는 걸까? 이 질문에…
예제 코드 깃허브 링크 🚀 들어가며 👉 이 시리즈는 RTTI 개념에서 시작해 엔진 구조까지 단계적으로 확장됩니다. C++에서 타입을 다루는 방법은 단순한 문법 이상의 의미를 가집니다. dynamic_cast로 시작해서👉 직접 RTTI를 구현하고, 나아가 엔진 수준…
예제 코드 깃허브 링크 🚀 들어가며 이번 글에서는 C++ TSubclassOf 구현을 통해 타입 정보를 기반으로 객체를 생성하는 방법을 살펴봅니다. 이전 글에서 우리는 다음의 내용을 이해하고 구현했습니다. dynamic_cast의 원리 이해 다운캐스팅의 위험성 TypeId 기반 RTTI…
예제 코드 깃허브 링크 🚀 들어가며 이전 글에서는 TypeId 기반으로👉 dynamic_cast 없이 타입을 비교하는 방법을 구현했습니다. if (obj->Is(Player::TypeId())) 이 방식은 매우 빠르고 단순합니다.하지만 실제로 사용하다 보면 한 가지 한계에 부딪힙니다. ❗ 타입에 대한 “정보”가…
예제 코드 깃허브 링크 🚀 들어가며 이전 글에서 C++의 dynamic_cast와 RTTI 개념을 살펴봤습니다. 그리고 중요한 사실을 확인했습니다. ❗ dynamic_cast는 안전하지만, 런타임 비용이 발생한다 또한 다운캐스팅이 왜 위험한지도 메모리 관점에서 확인했습니다. 그렇다면 자연스럽게 이런 질문이…
[1.5편] C++ 다운캐스팅이 위험한 이유: 메모리 구조와 포인터 관점에서 이해하기 🚀 들어가며 이전 글에서 dynamic_cast와 RTTI에 대해 살펴봤습니다. 그런데 여기서 한 가지 중요한 질문이 남습니다. ❓ 왜 C++에서 다운캐스팅은 위험하다고 할까? 단순히 “안전하지 않다”는…
🚀 들어가며 C++을 공부하다 보면 한 번쯤 이런 상황을 만나게 됩니다. Base* obj = GetObject(); Derived* derived = dynamic_cast<Derived*>(obj); if (derived) { // Derived 타입일 때만 처리 } 이 코드는 너무 익숙하지만,면접에서 이런 질문을…
들어가며 게임 엔진 구조 이해는 많은 개발자들이 어려워하는 부분입니다. 게임 개발을 공부하다 보면 “엔진 구조를 이해해야 한다”는 이야기를 자주 듣게 됩니다. 하지만 막상 어떻게 해야 하는 지에 대해 정보를 찾아도 잘 나오지 않습니다. 문서를…
유니티나 언리얼을 써도 게임 엔진 구조가 이해 안 되는 이유 유니티나 언리얼을 사용해서 게임을 만들다 보면 어느 순간 이런 생각이 들 때가 있습니다. 기능은 만들 수 있는데 왜 이렇게 동작하는지는 잘 모르겠다 특히 이런…