프로젝트 생성할 때 옵션 뭘 선택하든 나중에 다 다시 설정할 수 있어서 의미없음.
언리얼에서 서버역할 제공. 오브젝트들의 동기화 같은거다지원해줌. 코옵게임정도는 만들수있음. 이거로 MMORPG같은건 안됨.
언리얼에서도 서버면 어캐처리하고 클라면 어캐처리하는지 다르게하는건 필요함.
게임을 만들면서 지속적으로 내가 만든 기능이 네트워크에서도 연계되는지를 확인해야 한다.
sln파일 지우고
uproject 우클릭, 추가옵션에 보면 Generate Visual Studio project files 가 있음. 언리얼에서는 sln파일이 중요하지 않다. 이게 닷넷을 통해 만들어짐. 닷넷은 C#.
이런거 가능
Open으로 열면 DebugGame Editor로,
Launch Game으로 열면 DebugGame Client로 여는거랑 같음
언리얼은 sln파일 올릴필요없음. uproject파일 있으면 되기 때문.
우리는 언리얼 이그노어 설정으로 올리면 됨. 안올려야 하는 파일이 많음.
블루프린트가 좋냐 C++로 하는 게 좋냐 ⇒ 이렇게 해도 되고 저렇게 해도 되고,,, 둘다 잘하고 제대로 이해하고 있으면 됨 스타일차이. 선생님의 스타일이 있긴 함. 블루프린트는 기본적으로 느리다. 대부분의 회사는 블루프린트로 만들고 최적화를 위해 블루프린트로 한 작업을 C++로 변경하는 경우가 많다. 그냥 시키는대로하면됨.
기본적으로 선생님 실행 방법은 비쥬얼스튜디오 프로젝트를 열고 빌드 설정을 DebugGame Editor로 변경,
언리얼은 Main을 철저하게 숨기기때문에
(UE5는 우리 여태 한걸로치면 엔진, Games필터아래에 있는애가 Contents인거임)
컨텐츠 브라우저에서 우클릭 > 레벨 로 바로 만들 수 있음.
파일 > 새 레벨로도 가능. 언리얼에서 제공하는 기본 예제 레벨들 만들 수 있음.
선생님은 기본 조명이랑 발판 제공하는 Basic 레벨로 만듦. 그상태로 컨트롤+S누르면 이 레벨 저장해서 정식으로 파일로 만들겠다는 것. 나중에 다시 불러올 수 있게.
월드세팅 에서 게임 모드 세부사항 열 수 있음.
게임 모드를 변경하면 내가 만든 게임모드를 이 레벨의 게임모드로 지정할 수 있다.
언리얼에서 말하는 레벨의 개념은
언리얼이 지정한 담당자를 싹다 무시해도 된다. 하지만 이런 복잡한 구조를 만든 이유는 네트워크때문임. 서버 동기화때문에 이런 구조를 만들어놨다. 서버를 아예 배제하겠다면 언리얼이 만들어둔거 다 무시해도됨. 언리얼 리플리케이트 기능.
GameMode ⇒ 네트워크 플레이지원기능 탑재
GameModeBase ⇒ 그 기능이 빠져있는 기본 클래스
툴 > 새 C++ 클래스 만들기
새로 만든 파일 안뜨면 라이브코딩 버튼 눌러서 컴파일 다시 하면 됨.
블루프린트로 gamemode를 만들어서 지정해주면 캐릭터나 등등을 바꿀 수 있고
내가 만든 C++ 클래스로는 다른 요소들을 변경할 수 없다. 이유? C++은 당연히 중간에 못바꿈. 블루프린트는 클래스가아니고 데이터 덩어리라서 가능한 거임. 코드를 수정하는 게 아님. 코드를 바꿨다고 착각하게 만드는 느낌? 완전히 새로운 함수를 만드는건안됨.
private으로 만든 변수도 블루프린트에서 넣어주는 값으로 값을 바꿔줄 수 있음. 그건 어떻게 했는지는 우리가 알 건 아님.
블루프린트도 f9걸어서 중단점 확인할 수 있음. Super를 꼭 해야함. Super안에서 블루프린트 실행하고있었음.