목록언리얼 엔진/Network (7)
게임 개발 메모장
. 우리가 사용하는 리슨 서버 구조에서는 서버와 클라이언트가 동일한 어플리케이션을 사용한다. 그렇기 때문에 이 어플리케이션을 구현할 때는 서버와 클라이언트가 같은 코드를 사용해야 되는데 신뢰를 가져야된다. 신뢰를 가져야 하는 액터는 서버에만 존재하기 때문에 게임 플레이에 영향을 미치는 게임 로직은 우리가 서버인지를 파악해서 그 서버에서만 동작하도록 구성을 해줘야 된다. 액터 단위로 이 액터가 신뢰할 수 있는지를 파악할 수 있어야 되는데 이를 위해서 제공하는 것이 언리얼엔진에서는 '역할' 이라는 설정을 제공한다. 현재 동작하는 어플리케이션을 중심으로 해서 이 어플리케이션의 역할을 로컬 역할, 그리고 이 어플레케이션과 커넥션으로 맺어진 원격 어플리케이션의 역할을 리모트 역할이라고 한다. 그리고 오른쪽에 어플..
RPC의 기본 개념과 동작 원리 - 원격 프로시저(함수) 호출 - 원격 컴퓨터에 있는 함수를 호출할 수 있도록 만든 통신 프로토콜 - 네트워크 멀티플레이에서 서버와 클라이언트 간에 빠르게 행동을 명령하고 정보를 주고 받는데 사용 - 언리얼 엔진에서 클라이언트에서 서버로 통신하는 유일한 수단을 제공한다. 이 기능의 주요 용도의 속성상 장식이나 휘발성인 비신뢰성 게임플레이 이벤트를 위한것 이는 사운드 재생, 파티클 스폰, 액터의 핵심적인 기능과는 무관한 일시적 효과와 같은 작업을 하는 이벤트를 포함한다. RPC 사용시 OwnerShip 작동 방식을 이해해둬야 한다. 대부분 RPC 실행 장소를 결정하기 때문이다. RPC 사용하기 함수를 RPC 로 선언하려면 UFUNCTION 선언에 Server, Client,..
1. 언리얼에서는 클라이언트에서 서버로 패킷을 보내는 방법은 서버RPC가 유일하기 때문이다. 서버에 보낼 명령의 중요도에 따라 Reliable 인지 Unreliable 인지 판단해서 RPC 함수를 선언해주면 된다. 2. 게임 플레이 판정은 서버에서 무조건 처리하는 것 게임을 구현할 때 가끔식은 서버의 부하를 줄이고 게임의 쾌적한 반응성을 위해서 클라이언트에서 중요한 기능을 처리하는 경우가 종종 있다. 하지만, 최종 판정은 항상 서버에서 진행되도록 원칙을 지켜줘야 된다. 3. 게임 플레이에 영향을 주는 중요한 정보는 프로퍼티 리플리케이션을 사용하는 것이다. 예를 들어, 모바일 게임을 하고 있는데 엘리베이터를 타서 접속이 잠시 끊어진 상황이라면 엘리베이터에서 내리면 다시 재접속을 하게 될 텐데 이렇게 재접속..
- 특정 플레이어에 속한 액터의 정보를 네트워크 내 다른 플레이어에게 복제하는 작업이다. - 클라이언트 - 서버 모델에서는 대부분 서버에서 클라이언트로 전달한다. ( 언리얼 엔진이 사용하는 클라이언트 서버 모델에서는 서버만이 Authority를 가지기 때문이다. ) - 리플리케이션의 방법에는 크게 두 가지가 있는데 1) 프로퍼티 리플리케이션 2) RPC(Remote Procedure Call) 이있다. 기본 액터의 로딩 리플리케이션 작업이 진행 되기 위해서는 네트워크로 데이터를 전송해줘야 된다. 사용자마다 다양한 디바이스와 네트워크 환경에 변수가 있기 때문에 우리는 항상 이것을 정확하게 예측하는 것은 어렵다. 그렇기 때문에 최악의 경우를 언제나 가정해야 되는데, 리플리케이션 작업에서 가장 중요한 것은 데..
서버 섹션에서 플레이어 컨트롤러부터 전달된 어떤 명령은 넷커넥션 객체에 의해서 관리가 되는데, 이 넷커넥션은 상위에서 네트워크 통신을 담당하는 클래스이다. 상위 명령어를 로우레벨 데이터로 변활할 수 있는 기초 작업을 진행해준다. 전체적인 관점에서 네트워크가 원활하게 진행할 수 있도록 어떤 밴드위스라든지 대역폭이라든지 흐름을 조절하는 역할도 함께 담당해준다. 그 아래 NetDriver는 NetConnection에서 정돈된 데이터를 실제 네트워크상으로 보내는 로우 레벨 기능을 제공한다. 이렇게 해서 NetDriver를 통한 데이터가 클라이언트에 전달이 되면 클라이언트는 거꾸로 NetConnection을 거쳐서 액터에 명령을 내리게 된다. 서버가 시작하는 과정 처음에는 StandAlone의 모드로 시작했다가 ..
네트워크 모드 및 서버 유형 네트워크 모드는 네트워크 멀티플레이어 세션에 대한 컴퓨터의 관계를 설명한다. 어플리케이션을 담당하는 게임 인스턴스는 다음과 같은 네트워크 모드 중 하나를 취할 수 있다. 네트워크 모드 Standalone 이 게임은 서버로 실행되고 있으며 원격 클라이언트의 연결을 허용하지 않는다. 게임에 참여하는 모든 플레이어는 엄격하게 로컬 플레이어입니다. 이 모드는 싱글 플레이어 및 로컬 멀티 플레이어 게임에 사용된다.로컬 플레이어에 맞게 서버 측 로직과 클라이언트 측 로직을 모두 실행한다. Client 이 게임은 네트워크 멀티플레이어 세션의 서버에 연결된 클라이언트로 실행되고 있다. 서버 측 로직을 실행하지 않는다. Listen Server 게임은 네트워크 멀티플레이어 세션을 호스팅하는 ..
https://docs.unrealengine.com/5.1/en-US/networking-overview-for-unreal-engine/ Networking Overview Setting up networked games for multiplayer. docs.unrealengine.com https://www.inflearn.com/course/%EC%9D%B4%EB%93%9D%EC%9A%B0-%EC%96%B8%EB%A6%AC%EC%96%BC-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-part-3 이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해 강의 - 인프런 또 하나의 언리얼 엔진이라고도 불리는 네트웍 멀티플레이어 프레임웍을 학습합..