Make Unreal REAL.
article thumbnail
프로젝트를 패키징하는 방법

Unreal Engine 5 C++ Multiplayer Shooter 실행 가능한 파일로 패키징할 수 있다.

article thumbnail
C++로 멀티 플레이 테스트하는 방법

Unreal Engine 5 C++ Multiplayer Shooter 3인칭 기본 템플릿에 포함된 캐릭터 클래스에 리슨 서버를 여는 함수와 접속하는 함수를 구현한다. OpenLobby() 함수는 Lobby 레벨을 Listen 서버로 연다. UWorld::ServerTravel() 함수를 실행하면 서버가 해당 레벨로 점프하게 된다. 레벨의 경로인 URL 뒤에 listem 파라미터를 붙여 주면 Listen 서버로 레벨을 열게 된다. 서버에 접속하는 함수는 2가지 버전으로 만들었다. UGameplayStatics::OpenLevel() 함수에 IP 주소를 전달하면 IP 주소에 해당하는 서버의 레벨로 접속을 시도한다. APlayerController::ClientTravel() 함수에 IP 주소를 전달해도 동..

article thumbnail
블루프린트로 멀티 플레이 테스트하는 방법

Unreal Engine 5 C++ Multiplayer Shooter 하나의 로컬 머신에서 테스트하지 않고, LAN으로 연결된 다른 리모트 머신들 간에도 IP 주소를 알고 있다면 테스트해 볼 수 있다. 블루프린트에 간단하게 구현해본다. 10.0.0.151 IP를 가진 컴퓨터는 1번 키를 누른다. Open Level 노드의 Options에 listen 문자열을 전달하면, Listen 서버로 레벨을 열게 된다. 나머지 플레이어들은 2번 키를 눌러 1번 컴퓨터의 리슨 서버를 통해 레벨에 접속한다. Execute Console Command 옵션은 언리얼 콘솔 명령을 실행하는 노드이다. Open 10.0.0.151은 해당 IP의 리슨 서버에 접속을 시도한다. 서로 다른 컴퓨터에서 실행 중인 플레이어들이 리슨 ..

article thumbnail
에디터에서 멀티 플레이 테스트하는 방법

Unreal Engine 5 C++ Multiplayer Shooter Play 메뉴 우측의 점 3개를 클릭하면 테스트 환경을 설정할 수 있다. MULTIPLAYER OPTIONS에서는 멀티 플레이 테스트 환경을 설정할 수 있다. Number of Players: 플레이에 참가하는 플레이어 수이고 설정한 만큼 윈도우가 켜진다. Net Mode: Play Standalone: Dedicated(전용) 서버를 켜지 않고 싱글 플레이로 실행한다. Play As Listen Server: 에디터는 리슨 서버이자 클라이언트로서 게임에 참가하게 되며 나머지 플레이어는 클라이언트로서 참가하게 된다. Play As Client: 에디터와 플레이어들은 모두 클라이언트로서 참가하고 에디터는 백그라운드에서 Dedicated..

article thumbnail
P2P와 클라이언트-서버 모델

Unreal Engine 5 C++ Multiplayer Shooter 멀티 플레이어 모델에는 P2P(Peer-to-peer) 모델과 클라이언트-서버(Client-Server) 모델이 있다. Replication(복제) 멀티 플레이어 환경에서 누군가의 상태를 모든 다른 컴퓨터에 적용하는 Broadcast를 특별히 Replication이라고 한다. P2P 각 플레이어(어플리케이션)가 자신의 상태 변경이 발생하면 나머지 플레이어들에게 Replicate하는 방식으로 동작한다. 구현이 간단하지만, 이용자 수가 늘어날수록 네트워크 부하가 늘어난다. 모든 플레이어에게 인정 받는 대표성 있는 게임의 상태가 존재하지 않는다. 클라이언트-서버 모델 게임의 진행을 위한 하나의 서버가 존재하며, 각 클라이언트는 서버와만 통..

article thumbnail
옵저버 패턴(Observer Pattern)

Unreal Engine Blueprint Design Patterns: Code to Blueprints 옵저버 패턴 발행-구독 패턴(Publisher-Subscriber Pattern)이라고도 불린다. 상태 변경을 Broadcast하는 발행자가 있고, 그것을 듣는 구독자가 있다. 구독자에게서 발행자를 디커플링할 때 유용하다. 발행자는 구독자에 대한 정보를 몰라도 문제가 없다. GoF에 따르면, 옵저버 패턴 사용 시 주의할 점은 삭제된 구독자의 무효(Dangling) 참조를 계속 유지하면 메모리 릭이 발생한다는 것이다. 구독자는 자신이 삭제될 때 발행자에게 자신은 이제 구독을 취소하겠다고 알려야 한다. 언리얼 엔진에서는 여러 개의 함수를 등록할 수 있는 멀티캐스트 델리게이트가 옵저버 패턴의 활용이라고 ..

검색 태그