월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터 질문입니다.
C#을 먼저 배웠고, 지금 C++을 배우고 있는 중에 궁금한 점이 생겨 질문 남깁니다. C#은 타입에 따른 값형식과 참조형식이 있다보니 매개변수로 전달하는 과정에서 자동으로 형식을 따라가서 값만 전달하는지 주소를 전달하는지가 결정이 되는데 때에 따라 값형식에 데이터를 수정하고 싶을 경우 ref 키워드를 통해서 수정을 하는데 이게 c++의 포인터와 동일하다고 생각하는게 맞을까요 ?C++ 개발자들의 역량 중 포인터를 다루는 정도가 항상 언급되는데, C#을 배우고 C++을 배우는 입장에서 아직 깊게 C++을 배운게 아니어서 그럴지 모르지만 C++의 포인터가 어느 부분에서 중요하게 사용되는지 잘 모르겠습니다. 1번에서 들었던 값형식의 데이터를 수정할 경우밖에 생각이 안나는데 혹시 중요하다고 매번 언급되는 만큼 게임개발에 있어서 사용하는 경우의 예시를 하나 들어주실 수 있을까요 ?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
SASM 어셈블러 설정에 대한 공유입니다
먼저 파일 경로에 한글이 포함되어 있으면 빌드가 안되고 응답이 없음이 뜨게 됩니다. 특히 사용자 파일명이 한글이라면 기존의 파일명을 포함한 레지스트리 내의 사용자 이름을 싹 다 갈아 엎어줘야 합니다. 구글에 검색하면 방법이 나옵니다.다음으로는 %include "io64.inc"가 안되는 경우입니다. 일단 SASM이 설치된 파일로 갑니다. 우리가 쓰는 NASM파일, include 파일이 있습니다. include파일에 io64가 있을텐데 그걸 복사해서 NASM 파일에 붙여넣기 해줍니다. SASM을 다시 켜서 %include를 해주면 됩니다. 이제 io64 내의 PRINT_STRING을 포함한 이것 저것을 쓸 수 있습니다.도움이 되셨기를 바랍니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
매개변수로 넘어온 배열의 총 길이를 알 수 있는 방법이 없나요?
당연한 말이겠지만, 아래 방식으로 하니까 설명해주신 대로 포인터가 넘어오기 때문에 sizeof(arr)가 8byte로 잡혀서 값이 2로 뜹니다. (64bit 환경입니다)포인터의 size를 계산하려고 시도했기 때문에 이와 같은 오류가 뜨고요.https://learn.microsoft.com/ko-kr/cpp/code-quality/c6384?view=msvc-170C#에서처럼 arr.Length를 통해 배열의 길이를 받아올 수 있는 것이 아니기 때문에, Generic 을 대비한 함수를 만들어서 사용하고 싶은데 별도 함수를 통해 받아올 수 있는 방법이 없나요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
Asio 기반 서버 멘토링
안녕하세요 루키스님. 질문할 곳을 찾지 못해 이 곳에 질문하게 되었습니다.이번 Asio 기반 C++서버 멘토링을 일단 신청은 해놨는데, 선수 지식으로 part4 게임서버 정도까지의 수강이 필요할까요 ? 요구되는 수준을 알려주시면 감사하겠습니다 !
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
제꺼는 return ret 뒤에 조금 다르게 나옵니다
(포인터 실습. 14분 38초) 비주얼 스튜디오 2022, x86에서 디스어셈블리 확인했습니다 ret.hp = 100;000A245E 8B 45 08 mov eax,dword ptr [ret]000A2461 C7 00 64 00 00 00 mov dword ptr [eax],64h ret.attack = 10;000A2467 8B 45 08 mov eax,dword ptr [ret]000A246A C7 40 04 0A 00 00 00 mov dword ptr [eax+4],0Ah ret.defence = 2;000A2471 8B 45 08 mov eax,dword ptr [ret]000A2474 C7 40 08 02 00 00 00 mov dword ptr [eax+8],2 return ret;000A247B 8B 45 08 mov eax,dword ptr [ret]}000A247E 52 push edx000A247F 8B CD mov ecx,ebp000A2481 50 push eax000A2482 8D 15 A4 24 0A 00 lea edx,ds:[0A24A4h]000A2488 E8 A3 ED FF FF call @_RTC_CheckStackVars@8 (0A1230h)000A248D 58 pop eax000A248E 5A pop edx000A248F 5F pop edi000A2490 5E pop esi000A2491 5B pop ebx000A2492 81 C4 D4 00 00 00 add esp,0D4h000A2498 3B EC cmp ebp,esp000A249A E8 F5 ED FF FF call __RTC_CheckEsp (0A1294h)000A249F 8B E5 mov esp,ebp000A24A1 5D pop ebp000A24A2 C3 ret return ret;000A247B 8B 45 08 mov eax,dword ptr [ret]ret 뒤에 이렇게 한줄 나오고 없어요어떻게 해석해야할까요??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
x84, x64 스택 메모리
스택이 높은 주소 에서 낮은 주소로 값이 저장 되는 것으로 알고 있었는데 x64 에서는 스택 메모리의 저장 방법이 다른건가요? x64로 실행했을 경우 메모리 까보면 낮은 주소에서 높은 주소 순서대로 저장되는 걸로 보이네요
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
c++ 강의 듣고있는데 혹시 강의자료가 있을까요?
강의 자료가 없다면 참고하면서 볼 서적이 있는지도 궁금합니다사실 fundemental c++ 프로그래밍 원리 라는 책을 제가 주문했습니다만은앞의 어셈블리어 파트는 이럴만한 레퍼런스가 없어서 복습할 때 뭘 보면서 해야 할지 모르겠네요
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
StrCmp 질문 있습니다
char a[BUF_SIZE] = "Hello";char b[BUF_SIZE] = "Helloa";일 때StrCmp를 실행 하고 난 후 이 부분에서 i 가 5일 때 a[i] 의 값이 '\0' 인데 왜 while 문을 한번 더 도는지 잘 모르겠습니다
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
x64로 MultiplyBy(b,a)를 보고 있습니다
4.2 스택프레임 강의 수강중입니다 x32와 x64는 다르다고 하셨는데주소가 4byte, 8byte 차이인거 말고도 push 가 없고 mov만 쓰고 있는거 같기도 했는데 제꺼는 선생님꺼랑 다르게 RDX 레지스터로 mov하는것 같았습니다 mov 해서 b를 넣기 전에는 RDX 값이RDX = 0000014CC24ABD40 였다가 b를 넣고 난 이후에는RDX = 0000000000000005 로 바뀌었는데 주소가 들어가있다가 값으로 바뀌는게 너무 어색합니다기존에 RDX에 들어 있었던 0000014CC24ABD40 는 쓰레기 값인가요??? x64에서 원리가 궁금합니다
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
언리얼5 PC 사양 추천 부탁드립니다.
학습을 위해 PC를 구입하려는데최소사양이나 추천사양이 있을까요?취준을위해 포트폴리오 만들 정도면 좋을것 같습니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
for문 어셈블리
int count부분 제가 할때는 [rbp+4] 라고 나왔는데rbp+4도 스택의 주소일까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
const 메모리 할당 없이 사용하는 부분 질문입니다
강의 19분 쯤에 나오는부분에서값을 바꿔치기한다고 하셨습니다 그런데 그 부분이 INVINCIBLE이 나오는 부분이 아니라int c=3; 에서 설명을 하셔서 제가 INVINCIBLE 있는 부분을 찾아서 봤는데// 무적 상태로 만든다flag = (1 << INVINCIBLE); // 0001을 왼쪽으로 3칸 이동시킨 값, 즉 이진수 1000를 나타냄, 컴파일러가 8이라는 값으로 알아서 대체한다00007FF66C17193A C6 05 3F A8 00 00 08 mov byte ptr [flag (07FF66C17C180h)],8 으로 되어있는데 int c=3일때랑 마찬가지로 INVINCIBLE를 8로 바꿔서 인식한다고 하면 될까요?
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
강의 선택에 질문있습니다.
안녕하세요, 클라 개발자 취준생입니다.최근에 유니티로 클라이언트 포트폴리오 개발을 하고 있는데다른 이력서랑 경쟁력이 떨어지는것같아서클라는 Unity,C# , 서버는 IOCP,C++로 개발을 진행해서 클라+서버 연동 포트폴리오를만들고싶은데요 루키스 선생님 강의중에 어떤 강의들을 구매해서 들어야하는지조언 부탁드립니다. 중복된 강의 갯수가 많아서 어떤 강의를 선택해서 들어야 하는지 궁금합니다.C, C++, C#, DirectX은 선수지식이 있습니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
배열의 원소를 출력하는 for문의 조건문에 const int를 해야하는 이유
제목그대로인 질문이라 죄송하지만배열의크기가 5라고 할때const int size = v.size();for (int i=0; i<size; i++)const int size = v.size(); 중 const를 붙여야하는 이유가 있나요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
벡터 erase 관련 질문입니다
벡터 v.erase(it)에서인자로 it를 넘겨주는데래퍼런스, 포인터로 넘겨주는것도아닌데넘겨준 it의 myproxy 를 null 값으로 바꾼건 진짜 it의 myporxy값과 상관없지안나요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
복사생성자와 이동생성자 차이를 잘모르겟습니다
개념은 알고 있습니다복사 : 복사하여 똑같은 개체를 만드는 것이동 : 원본 객체에서 새로운 객체로 이동 시키는 것구글링 했을때 이동 생성자에 대한 정보가이동 생성자는 객체의 데이터를 복사하지 않고, 데이터의 소유권만 이전합니다라고 되 있는대 객체의 데이터는 복사 하는 거 아닌가요?Night(const Night& night) : m_hp(night.m_hp),m_Attack(night.m_Attack),m_Pet(new Pet(night.m_Pet)){PrintText("Night(const Night&) 복사생성자 호출");}Night(Night&& night) noexcept : m_hp(night.m_hp), m_Attack(night.m_Attack), m_Pet(night.m_Pet){night.m_Pet = nullptr;PrintText("Night(const Night&&) 이동생성자 호출");}
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
이중연결리스트 list에 대해 질문있습니다
이중연결리스트라고 말씀하셨는대수업내용 들어보니까 [1] <->[2] <->[3] <->[4] <->[Header] <->[Header]노드가 [1]노드랑 연결되어있으면원형연결리스트 아닌가요..?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
가상 함수 에 대해 이해하고있는지 봐주세요
1 .컴파일 시 가상함수가 정의된 클래스가 있다면 가상함수테이블(Virtual function table)이 만들어진다.2.동적 바인딩 (Dynamic Binding): 동적 바인딩은 런타임 시간에 함수 호출을 어떤 함수와 연결할지가 결정되는 메커니즘3.vftable(4byte)( 함수포인터 배열) 은 객체 마다가 아닌 클래스 마다 동일한 메모리 주소 가리킨다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
복사생성자 질문입니다
얕은복사 vs 깊은복사 #1 19:00int main(){Knight knight;knight._hp = 200;Knight knight2 = knight;Knight knight3;knight3 = knight;}Q1)얕은복사는Stack : Knight1 [ hp 0x1000 ] -> Heap 0x1000 pet[ ]Stack : Knight2 [ hp 0x2000 ] -> Heap 0x1000 pet[ ]Stack : Knight3 [ hp 0x3000 ] -> Heap 0x1000 pet[ ]깊은복사는Stack : Knight1 [ hp 0x1000 ] -> Heap 0x1000 pet[ ]Stack : Knight2 [ hp 0x2000 ] -> Heap 0x2000 pet[ ]Stack : Knight3 [ hp 0x3000 ] -> Heap 0x3000 pet[ ]이렇게 되는거아닌가요 ? hp 가 값만 복사 되서 전달되고 hp 주소는 그대로 아닌가요? Q2 )얕은복사는 그냥 명시하지 않은 암시적 복사생성자라고 봐도되나여? Q3) 얕은복사와 깊은복사 두개다 쓰는경우도있나요?아니면 둘중 하나를 골라서 쓰게되나요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
vector 메모리영역
vector<int> v; vector 메모리를 까보니까 힙영역인거같은대 맞나요?