[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
pop 함수를 보면 if (right < (int)_heap.size() && predicate( heap[next], _heap[right])) 인 left와의 비교에서 나온 결과 값을 비교하는 부분에만 predicate를 적용하였는데 위에 left와 비교하는 부분은 둘 중 더 큰 값을 next에 넣는게 목적인 코드입니다. 더 작은값을 찾을때 문제가 생길 수 있을것이라 생각이 되는데 문제가 생기지 않아 의문점이 생겨 질문 드립니다. left쪽엔 predicate 비교를 하지 않아도 되는 이유가 무엇일까요?
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
영상 초반 내용을 보면 using FuncPtr = void();는 잘 사용하지 않는 문법이라고 하고, 뒤이어 나오는 using FuncPtr = void(*)();와 같은 형식을 자주 사용한다고 했는데 동일하게 동작한다면 오히려 앞쪽이 더 편한 것 아닌가요? (*)를 추가하는 이유가 단순히 포인터임을 표시해주기 위함 인가요?
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
#include <iostream> using namespace std; class Player { public: Player() { cout << "Player()" << endl; } virtual ~Player() { cout << "~Player()" << endl; } }; class Pet { }; class Archer : public Player { public: Archer() { cout << "Archer()" << endl; _pet = new Pet(); } virtual ~Archer() { cout << "~Archer()" << endl; delete _pet; } public: Pet* _pet; }; int main() { Player* archer = new Archer(); delete archer; } 영상 내용에서 자식클래스의 소멸자에도 virtual 을 붙이셨는데 부모 클래스의 소멸자에만 붙여도 자식 클래스의 소멸자가 잘 호출이 됩니다. 그래서 GPT를 통해 둘 다 붙이는게 좋은지 부모 클래스에만 붙이는게 좋은지 질문해봤는데 부모 클래스에만 붙여도 문제가 없다고 답변을 받았습니다. 근데 루키스님께서 둘 다 붙이는 이유가 분명 있으실탠데 그 이유가 궁금합니다.
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
Scene과 SceneManager 강의 수강 중 키보드 입력 오류가 있어서 문의드리게 되었습니다. DevScene의 Update()에서 키보드 입력을 받을 때 강의와 똑같이 코드를 입력했음에도 불구하고 콘솔창에서는 한쪽 방향으로만 오브젝트가 움직입니다. (만약 A를 입력하면 A로만 움직임.) 혹시 원인이 뭔지 알 수 있을까요?
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
안녕하세요! 10주차의 Window API 강의를 듣던 중 TimeManager.cpp에서 QueryPerformanceFrequency와 QueryPerformanceCounter메서드에 LARGE_INTEGER 타입으로 변환해서 인자를 넘겨주는 과정에서 오류가 있었는데 해결 과정을 문의하고 싶습니다. Types.h에 문제가 있을까 싶어서 찾아봤지만, 별다른 이상이 없어서 원인을 모르겠습니다.
안녕하세요. 개발자는 아니지만 업무에 꼭 필요한 내용이 있어서 해당 강의를 수강하게 되었습니다. 사전지식이 전혀 없는 상태에서 열심히 검색하며 강의를 듣고 있는 상태입니다. 함수 프롤로그와 에필로그 강의 9분 20초 부분에 F9 를 눌러 브레이크 걸어주고 F5를 했을 때 브레이크가 되지 않고 넘어가버립니다. 잠깐 1초정도 브레이크가 되었다가 그냥 넘어가는 바람에 디스어셈블리 창도 뜨지 않습니다. [종단점 설정 확인] [F5 실행 시 상태 확인] 혹시 제가 놓치는 부분이 있을까요?
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
멀티스레드 환경이라는 가정 하에, RefCountable 클래스만 존재할 때 발생하는 문제점은 이해를 했습니다. 그래서 TSharedPtr 클래스가 제공하는 이점이 RefCountable 클래스에서 여러 단계로 처리해서 다른 스레드가 침투하는 빈틈을 막기 위해서 마치 포장지로 덮듯 단일로 이루어지게끔 설계한 것이라고 이해하면 되는걸까요?
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
안녕하세요. 부모클래스의 함수를 override 하기 위한 목적으로 부모클래스 함수에 virtual 키워드를 붙여주고 자식클래스가 이 함수구현을 강제하기 위해 virtual 키워드를 사용하는 것으로 이해 했습니다. 하나 이해가 되지 않는 부분은, 소멸자에 virtual 키워드를 붙여주었을때, 부모클래스의 소멸자와 자식클래스의 소멸자가 이름이 다름에도 자식클래스 소멸자를 호출해준다는 것인데, 해당 내용을 Perplexity에 질문해보니 C++ 내부적으로 소멸자를 동일한 이름으로 취급하기 때문이라는 답변을 얻었습니다. 이 내용이 맞는건지 답변 부탁드립니다. 감사합니다.
안녕하세요 얌얌님. Gdiplus로 Ocean 이미지를 띄우면 급격하게 프레임이 떨어지는 문제가 있어서 문의드리게 되었습니다. 이미지를 띄우지 않았을 땐 2~3000프레임까지 나왔었는데, Scene에서 Gdiplus::Image로 Ocean 이미지를 띄우면 100프레임으로 뚝 떨어지고, Layer 계층을 추가해서 Image를 띄우면 4~5프레임까지 떨어져서 정상적인 조작이 불가능해집니다. https://github.com/9kyo-hwang/Unity-Clone 강의 영상 보고 따라한 코드를 깃헙에 올려놓았는데, 혹시 확인 한 번 해주시면 감사하겠습니다...
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버 학습 완료 후 루키스님 게임 서버 프로그래머 로드맵 따라가면 될까요? 일단 저의 상태는 서버쪽 먼저 공부하고 싶은 마음이 크고 언리얼과 유니티 경험이 없습니다. [c++과 언리얼로 만드는 MMORPG]의 경우 part1에서 바로 part4로 넘어가고 [c#과 유니티로 만드는 MMORPG] 강의에 경우에도 1, 4, 7로 구성되어 중간중간 비는 부분 때문에 어떻게 수강 계획을 잡을지 고민되어 질문드립니다!
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
28:20 영상을 보면 'Tilemap' 빈 파일을 만들지 않고 저장이 되는 모습입니다. 그런데 제가 진행을 하면 위 이미지와 같이 assert(file != nullptr);에 걸립니다. 혹시 28:50 같이 'Tilemap' 빈 파일을 만들고 타일맵 저장을 진행해야 하는 게 맞는 방법인지 알고 싶어 글 올립니다.
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
17분 쯤 unique_lock을 사용하였는데 별도의 인자로 std::defer_lock , std::try_to_lock , std::adopt_lock 등 을 넘겨주지도 않는데 굳이 unique_lock을 사용하는 이유가 있을까요? 그냥 lock_guard를 써도 되지 않나요?
안녕하세요 강사님 11.inlineHook 예제를 debug 빌드로 실행하면 pfOpenProcess에서 Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention. 뭔가 강의중에 언급하신 stack memory 고장같은데 이유를 아시나요? function prologue 디스어셈블이 조금차이가있는데 어차피 5바이트만큼 백업해두니 상관없는것은 맞나요?
안녕하세요 강사님 MyMessageBox안에서는 MessageBoxW를 쓴 이유를 제가 제대로 이해한게 맞나요? MessageBoxA로 바꾸니까 stack overflow 가 생기는것 까지는 확인하였습니다. iat hook으로 인해 MessageBoxA 호출 -> IAT 에서 메모리 참조 -> MyMessageBox -> MessageBoxA호출 -> .. 무한 반복 될뻔한것을 MessageBoxA 호출 -> IAT 에서 메모리 참조 -> MyMessageBox -> MessageBoxW호출 후 그냥 return 0 -> main으로 무사히 돌아옴 이렇게 된건가요?
안녕하세요, 강사님 수업에 사용된 예제 (x86) 06:03 해당 강의가 아래 화면과 같이 재생이 되지 않고 있습니다. 우측에 스크립트가 있는 것으로 보아, 소스코드 이외에 강의가 있는 것으로 보이는데, 아래와 같은 에러 메시지가 발생하고 있습니다. 해당 강의 이외에 앞뒤 강의는 정상적으로 재생 되는 것을 확인했습니다. 위 강의에 대해 한번 확인 부탁드립니다! 감사합니다.