묻고 답해요
144만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
-1리턴이 대부분입니다
최종적에서 Recv가 정상적으로 처리되는것보다 -1로 리턴되는경우가 대부분입니다. 코드를 다운받아서 해봐도 어떨때는 정상적으로 되다가 다시작동하면 -1이 리턴되길 반복합니다. 무엇이 문제일까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
CRASH에서 cause는 로그를 출력하기 위한 목적인가요?
강의에서는 cause가 실제로 쓰이는 부분이 없는데 용도가 무엇인지 궁금합니다. 그리고 ASSERT_CRASH에서 __analysis_assume을 쓰는 이유는 무엇인가요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
강의 커리큘럼 관련되서 질문 드립니다.(커리큘럼 관련되서 질문할 곳을 찾지 못해서 ㅠㅠ 여기다 올린점 양해 부탁드려요 ㅠ)
안녕하세요. 커리큘럼 관련되서 질문드리고자 이렇게 글 올립니다. 저는 일단 C++을 사용하는데 있어 큰 무리없이 사용하는 편입니다. (modern c++포함) 반면 C#은 거의 모르는 상태인데요, 강사님 커리큘럼중에 C#을 이용해서 MMORPG를 만드는 커리큘럼도 있던데 아래처럼 병행해서 커리큘럼을 짜도 될지 궁금해서 문의 드립니다. [C#과 유니티로 만드는 MMORPG게임 개발시리즈] Part1, Part3, Part7, Part9 만 듣고, [C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4 이렇게 들어서 일단 Unreal 로 연동하는 강의가 나올때까지, 유니티 2D게임을 C++게임서버에 연동해보고 싶은데요, 굳이 C# 게임서버 제작 강의를 들어야할 필요가 있을까요?? C#으로 게임서버를 만들어야겠다는 생각이 들면 듣겠지만, 지금은 우선 게임 클라이언트 자체를 서버에 연동시키는것(구체적으로 맵을 어떻게 서버에서 처리하고, 스킬이나 hit 판정을 어떤식으로 하는지에 대한 것들)을 목표로 하고 있는데, C#게임서버 강의랑 C++ 게임서버 강의가 겹치는 부분이 많아서 C#게임서버 강의를 통해 들어야할지 고민이 됩니다. 결론으로 C# 강의 Part1, Part3, Part7, Part9 와 C++강의 Part4 이렇게 병행하는데, 무리 없이 커리큘럼을 수행할 수 있는지 궁금합니다. 긴글 읽어주셔서 감사드리며, 항상 좋은 강의 올려주셔서 감사합니다.!!!
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
wstring값에 대해서 질문있습니다.
이전 강의 실습까지는 모두 결과가 잘 나왔는데 이번 강의에서는 Read할때 값이 모두 0으로 바뀌어서 전달되었습니다... imbue를 사용하기 전, 후 모두 0이라 다른 문제 인 것 같은데 어느 부분이 문제인지 잘 모르겠습니다ㅜㅜ
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
세션 = 유저, 서버
세션은 user 또는 연결되는 서버라 생각하면 될까요? 세션 하나당 user나 서버 연결 하나 라고 생각하면 될까요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Completion Port모델 질문드립니다.
IOCP강의를 듣고 실습을 하는 중에 이상현상?이 생겨서 질문 드립니다. 정상적으로 실행되거나 밑에 현상이 생기거나 반복이 되고 있는데 뭐가 문제일까요... 코드는 올려주신것과 똑같습니다! 1) accept만 뜨고 client connected가 안뜨는 경우 (클라에서 송신은 계속 하고있다.) 2) server에서 break point를 잡고 실행하면 client connected도 잘뜨고 수신도 잘합니다. (처음 한두번은 800, 200 이렇게 한꺼번에 데이터를 수신합니다.) 3) 다시 break point를 해제하면 1번과 같은 상황이거나, 정상적으로 처음부터 100씩 수신받는 상황이 랜덤으로 발생
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
StompAllocator에서 Release 함수 구현시.. Offset을 다시 원래 위치로 복구 해줄 필요가 있나요??
StompAllocator에서, void StompAllocator::Dealloc(void* p) { // 이건 Offset을 처리해줄 필요없지만... 그래도 모르니... int64 addressNo = reinterpret_cast<int64>(p); addressNo &= 0xffffffffffff1000; ::VirtualFree((void*)addressNo, 0, MEM_RELEASE); } 이런식으로 페이지 끝단에 위치했던 p를 다시 페이지 시작 지점으로 offset을 지정 해줄 필요가 있나요?? VirtualFree 는 p가 존재하는 페이지 전부를 해지시켜주는데 해당 페이지 끝단에 있던, 시작주소에 있던.. 그 페이지가 날라가는건 똑같은걸로 아는데요 ㅠㅠ
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
coreMacro xalloc 관련 질문입니다.
제가 현재 비주얼스튜디오 2019를 사용하고 있습니다. macro에 xalloc이라고 작성하면 오류가 나서 Xalloc으로 이름을 변경하고 사용하니깐 빌드가 잘 되더라구요. 혹시 이름 변경하고 실습을 진행해도 될지 질문드립니다!
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Type변환이 가능 하다는 기준에 대해서 질문드립니다.
강의를 듣다가 확신이 없어서 질문드립니다. 타입변환을 할 때 가능한지를 판단하는 기준이 각각의 클래스 사이즈를 보고 판단하는 것이 맞나요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
LNK2019와 LNK2001 에러
LNK2001과 LNK2019가 대량 발생합니다. 프로토 버퍼 라이브러리 문제인가 싶어서 다른 강의에 있는 라이브러리를 옮겨 보고, 프로토 버퍼 솔루션열어서 라이브러리를 다시 빌드해서 교체도 해보았으나 마찬가지입니다.
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
coreMacro.h 에 define xalloc을 할 경우
CoreMacro.h 에서 xalloc을 define해줄 때 std::ios_base에서 xalloc이라는 이름의 함수가 있어서 오류가 나는 것 같습니다. 올려주신 코드를 내려받아서 빌드해봐도 같은 오류가 생기던데 뭔가 다른 문제가 있어서 오류가 계속 생기는 것일까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
빌드 에러
프로젝트 다운받아서 실행시키면 위와 같은 에러가 발생합니다. pre-build event 때문에 발생한 에러인가 싶어서 pre-build event를 없애면 아래와 같은 에러가 발생합니다. 서버 코어 라이브러리는 정상적으로 빌드 되는것을 확인했습니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
mutex 라이브러리는 busy waiting이 기본인가요?
제목과 같습니다. mutex 라이브러리를 이용한 강의 내용의 mutex m은 기본적으로 busy waiting이라고 말할 수 있나요? 뒷 강의 내용에서 나오는 mutex 변수를 Spinlock 구조로 되어있다고 이해해도 문제가 없는걸까요? (강의내용 11분 50초경) 이번 강의에서 t1과 t2가 Push를 하게 될때, 만약 t1이 lock을 붙잡고 있으면, t2는 Context Switching 이라거나 Event 방식으로 기다리지 않고 Busy waiting 하는것인지 궁금해서 문의 남깁니다. 제가 구글링을 통해 찾아본 해외 자료 느낌에서는 윈도우 환경과 VS에서 코딩하는 경우 Busy waiting을 하지 않는것처럼 나오는데, 만약 그렇다면 이것이 뒷 강의에서 설명하는 Lock 구현 방식중 2번의 Context Switching인건지 3번의 Event 방식인지도 궁금합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
send 에 lock걸어 주는 것에 질문있습니다.
wsasend가 멀티쓰레드환경을 보장하지 않아 lock을 걸어준다고 하셨는데 어떤부분을 보장하지 않는 건가요? 버퍼문제라면 혹시 이번 수업의 코드는 임시로 event마다 독립적인 버퍼를 가지게 했으니 lock을 안걸어주어도 되나요? wsarecv 는 멀티쓰레드환경에서 문제가 발생하지 않나요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
WSAWaitForMultipleEvents 에 대해 약간 궁금한 것이 있습니다.
조금 이해를 못한 부분이 있습니다. while문을 돌면서 WSAWaitForMultipleEvents에 도달했을 때 timeout 조건을 WSA_INFINITE로 걸게 되면 이 지점에서 block되는 것과 같아지나요? 그러면 비동기 논블락 소켓을 사용하는 이점이 사라지게 되는 것인지 문득 궁금해졌습니다. 더불어서 혹시 취업 특강은 다음 주에 나오는걸까요..? ㅎㅎ
-
미해결[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안에서 다 처리하는게 아니라 세분화 시켜놓아서 얻는 이점이 어떤건가요?