728x90 반응형 UE5/UE5 MultiPlayerGame19 MultiPlayerGame) 7. 플러그인 생성 언리얼 엔진 플러그인 언리얼 엔진의 플러그인은 특정 목적을 위해 설계된 코드 및 데이터모음이다. 각 프로젝트마다 개발자가 쉽게 사용 여부를 설정할 수 있으며 런타임 게임플레이나 에디터에 기능을 추가할수 있다. 이러한 엔진 플러그인은 엔진내의 플러그인 에디터에서 비/활성화 할 수 있다. 그렇다면 플러그인은 무엇일까? 플러그인 플러그인은 하나 이상의 모듈로 구성되어 있다. 즉 플러그인은 모듈의 집합이다. 그렇다면 모듈은 무엇인가? 모듈 모듈은 엔진의 빌딩블록(기본적인 회로)이다.엔젠 자체는 모듈을 모아둔 큰 컬렉션으로 구현되며, 각 모듈은 별개의 C++코드로 구성되어 있으며 캡슐화하는 빌드파일을 포함한다. 모듈은 단지 코드이여서 메쉬나 텍스처와 같은 에셋을 포함하지 않는다. 이를 통해 개별 작업을 캡슐화하며.. UE5/UE5 MultiPlayerGame 2022. 6. 7. MultiPlayerGame) 6. 세션에 참여 1.로비 레벨 만들기 먼저 새로운 레벨을 만든다.(파일->새 래벨->이름:Lobby) 그 후 캐릭터와 연결시킨다. //Character.cpp void _Character::OnCreateSessionComplete(FName SessionName, bool bWasSuccessful) { if (bWasSuccessful) { UWorld* world = GetWorld(); if (world) { world->ServerTravel(FString("로비레벨의 경로?listen")); } } } 2.매치타입 특정하기 SessionSettings에서 추가 데이터를 지정할 수 있으므로 세션을 찾은 후 확인할 예정이다. SessionSettings에서 Set을 사용하면 세션을 찾은 후 확인할 수 있는 세션과.. UE5/UE5 MultiPlayerGame 2022. 6. 4. MultiPlayerGame) 5. 참가세션 만들기 1.JoinGameSession만들기 //Character.h protected: UFUNCTION(BlueprintCallable) void JoinGameSession(); void OnFindSessionComplete(bool bWasSuccessful); 2.델레게이트와 콜백설정 /Character.h protected: void OnFindSessionComplete(bool bWasSuccessful); private: FOnFindSessionsCompleteDelegate FindSessionCompleteDelegate; TSharedPtrSessionSearch; //Character.cpp _Character::_Character(): FindSessionCompleteDelegat.. UE5/UE5 MultiPlayerGame 2022. 6. 3. MultiPlayerGame) 4. 스팀연결 스팀연결 1.온라인 서브시스템 활성화 플러그인->온라인 서브시스템 스팀 활성화->UE재시작 2.코드수정 build.cs에 "OnlineSubsystem","OnlineSubsystemSteam"추가 PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay" }); //->서브시스템추가 PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay", "OnlineSubsystemSteam", "OnlineS.. UE5/UE5 MultiPlayerGame 2022. 6. 2. MultiPlayerGame)3.온라인 서브시스템 이전 포스팅에서 테스트 해보왔던 멀티플레이는 동일한 로컬 네트워크에 연결된 컴퓨터의 게임 인스턴스에 연결한 것이였다. 하지만 멀티플레이라 함은 IP가 다르더라도 연결되어 플레이하는 것을 의미한다. 그렇기에 멀티플레이를 구현하기 위해서는 IP(Internet Protocol address)에 대해서 알아야한다. 그렇다면 게임에서 IP는 어떻게 이용되는것인가? IP Address 내부 IP주소라고도 하는 로컬 IP주소는 로컬 네트워크 라우터에 의해 할당된 주소이다. 이러한 주소는 로컬 네트워크 내의 해당 컴퓨터에서만 볼수 있으며 해당 컴퓨터 이외는 연결할수 없다. 컴퓨터가 이더넷이나 WI-FI등으로 라우터와 연결되면 라우터가 로컬IP를 할당하고, 할당 받은 IP를 사용하여 인터넷 서비스 공급자(ISP)와 연.. UE5/UE5 MultiPlayerGame 2022. 5. 31. MultiPlayerGame)2.LAN 연결 //Character.h UFUNCTION(BlueprintCallable) void OpenLobby(); UFUNCTION(BlueprintCallable) void CallOpenLevel(const FString& Address); UFUNCTION(BlueprintCallable) void CallClientTravel(const FString& Address); //Character.cpp void AmultiplayCharacter::OpenLobby() { UWorld* World = GetWorld(); if (World) { World->ServerTravel(TEXT("/Game/ThirdPersonCPP/Maps/Lobby?listen")); } } void AmultiplayCha.. UE5/UE5 MultiPlayerGame 2022. 5. 30. MultiPlayerGame)1.멀티플레이의 개념 멀티 플레이란? 멀티플레이란 적어도 두개의 게임 인스턴스가 별도의 머신에서 실행되고 두 플레이어간의 변경에 관한 정보가 서로에게 전송되어야하는 것을 의미한다. 그렇다면 이러한 정보는 어떻게 전송해야되는 것인가? 멀티플레이의 종류 게임 색션간에 정보를 공유하기 위한 시스템을 설계하는 방법은 여러가지가 있다. 1.Pear to Pear 정보를 전송하는 간단한 방법중 하나는 피어 투 피어 연결이다. 이 방법은 익히 알려져 있는 토렌트나 중국의 한 스트리밍 방송의 정보전송의 방법이다. 플레이어가 캐릭터를 움직일때 그 정보를 다른 플레이어에게 직접 전송하는 방식이다. 마찬가지로 자신이 움직이게 되면 다른 플레이어에게 직접 정보를 전송한다. 이러한 Pear to Pear 방식은 플레이어가 적을때 굉장히 효율적으로 .. UE5/UE5 MultiPlayerGame 2022. 5. 30. 이전 1 2 다음 728x90 반응형