묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
future에서 deferred를 사용하는이유
future타입을 deferred로 하면 future를 get하는 시점에 future에 바인딩된 함수를 호출한다는건데 그냥 get하는 시점에 해당함수를 바로호출하면 되는거 아닌가요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
WSAWaitForMultipleEvents 에 대해 약간 궁금한 것이 있습니다.
조금 이해를 못한 부분이 있습니다. while문을 돌면서 WSAWaitForMultipleEvents에 도달했을 때 timeout 조건을 WSA_INFINITE로 걸게 되면 이 지점에서 block되는 것과 같아지나요? 그러면 비동기 논블락 소켓을 사용하는 이점이 사라지게 되는 것인지 문득 궁금해졌습니다. 더불어서 혹시 취업 특강은 다음 주에 나오는걸까요..? ㅎㅎ
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
GSessionManager관련 생성 순서에 문제가있는것같습니다
GSessionManager를 전역변수로 추가하면서 allocator한 초기화(pool)가 안된 상태로 session의 set stl할당을 시도하게되어 문제가되는것 같습니다. 다만 Stomp allocator를 사용하는경우는 pool을사용하지않아 잠재적문제가있음에도 넘어가고있는것같아요. 따라서 세션매니져생성시점이 CoreGlobal이 초기회된뒤여야할것 같습니다
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
TypeConversion 부분 관련
위의 내용이 필요 없을 것 같아서 지워보았는데 에러가 발생하네요. 바로 위에있는 class TypeConversion 내부에도 존재하는 것을 외부에 추가로 선언해야 에러가 발생하지 않는 이유가 무엇인가요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
InterlockedCompareExchange64관련 문의드려요
안녕하세요. 아래 InterlocekdCompared64로 설명해주신 부분들은 실제로 사용된다면 아래와 같이 수정되어야 할것 같은데 맞나요? while (::InterlockedCompareExchange64((int64*)&header->next, (int64)entry, (int64)entry->next) == 0) { } ==> while (::InterlockedCompareExchange64((int64*)&header->next, (int64)entry, (int64)entry->next) != entry) { entry->next = header->next; }
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
16바이트 정렬이라 마지막 4자리가 0000이라는건 무슨 뜻인가요?
삭제된 글입니다
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
질문있습니다
queue와 stack을 헤더파일에 구현을 해놓으셨는데 이런 자료구조?객체 같은경우는 cpp파일이 아닌 헤더파일에 구현을 하는게 일반적인 가요? 그리고 lockguard 객체는 lock을 잡지 못하였을때 spinlock형식으로 작동하나요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Send, ProcessSend, RegisterSend, OnSend간 차이?
수업을 듣고 코드 분석하다가 질문드립니다. 이게 명확한 차이가 구분이 안가서 그런데 -Send -ProcessSend -RegisterSend -OnSend (이건 Send 완료시로 알고있는데 맞나요?) 간의 어떤 차이가 있나요? 그리고 제가 코딩 실력이 부족해서 그런데 하나의 큰Send안에서 다 처리하는게 아니라 세분화 시켜놓아서 얻는 이점이 어떤건가요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
템플릿 문법적인 질문입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 위와 같은 내용에서 typename 이 TypeAt 앞에 선언된 이유가 무엇인지 알 수 있을까요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
연산자 오버로딩 하는 부분에서 이해가 가지 않는 코드가 있습니다.
operator T* () const { return _ptr; } 연산자 오버로딩 부분 중에 이 부분이 있는데, 다른 것은 앞에 반환 타입이 정해져있는데 이전 C++의 연산자 오버로딩 강의 때는 못본 것 같은데, 이렇게 반환 타입을 따로 정해두지 않는 문법이 있는건가요? 아, 추가로 질문이 있습니다. TSharedPtr에서 Set, Release를 inline 함수로 선언하는 이유가 T가 RefCountable라고 명시를 해두지 않았기 때문에 RefCountable의 멤버함수를 함수 안에서 사용할 수 없어서 인라인 함수로 선언한다고 이해하면 될까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
함수 포인터 질문드립니다!
1) using FuncType = Ret(*)(Args...);일 때, 매개변수로 FuncType func를 주는 것과 Ret(*func)(Args...)를 주는 것은 완전히 동일하다고 봐도 되나요? 찾아본다고 찾아봤는데 익명 함수 포인터라는 단어는 없고, 기본적으로 함수이름을 붙여서 사용하는 것만 설명이 되있어서 백퍼센트 확신을 하기가 힘드네요 2) using FuncType = Ret(*)(Args...) 와 using FuncType = std::function<Ret(Args...)>가 의미상으로는 완전히 동일하다고 봐도 되나요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Iocp 함수 관련 질문 드립니다!
WSAGetOverlappedResult 함수의 4번째 매개변수인 fWaitAll 불리언값의 경우 기본적으로 false를 사용하지만, 하나만 깨우거나 전부 깨우거나 개별 설정을 할 수 있는데요. 복습하다 보니까 GetQueuedCompletionStatus의 경우 iocp핸들, recvLen포인터 같은것, 컴플리션키 포인터, overlapped포인터, 시간 을 매개변수로 받는데 여기는 fWaitAll을 설정하는 부분이 없더라구요. 궁금한 점은 GetQueuedCompletionStatus는 내부적으로 fWaitAll을 false로 가지고 처리되는 함수인가요? 검색해서 찾아보니 GetQueuedCompletionStatus 역시 IO Completion Queue에 처리결과가 삽입되는 순간 깨어나는 시스템이고 이게 Alertable Wait와는 조금 다른 매커니즘이라는 것 까지는 알겠는데 자세하게는 잘 모르겠어서 디폴트로 false인 fWaitAll 플래그를 가지고 처리되는건지 아닌지를 잘 모르겠습니다..ㅠ