티스토리 뷰

Unreal/UE Server (完)

[UE5] RPC - 1

굥굔 2023. 6. 30. 17:32

https://youtu.be/5VB6aY7JtGg

오늘의 영상부터 첨부.

 

액션 바인딩부터 한 자동차 시뮬레이션. 오늘의 중요한 부분은 RPC 서버라는 것.

RPC란 네트워크를 통한 함수 리플리케이션 지정하기 라고 한다.

 

 " RPC (Remote Procedure Call) 는 로컬에서 호출되지만 (호출하는 머신과는) 다른 머신에서 원격 실행되는 함수를 말합니다.

RPC 함수는 매우 유용하게 사용될 수 있으며, 네트워크 연결을 통해 클라이언트와 서버 사이에 메시지를 전송할 수 있습니다. "

 

라고 공식 문서에는 나와있음. 일단 도큐는 아래

https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/Networking/Actors/RPCs/

 

RPC

네트워크를 통한 함수 리플리케이션 지정하기 입니다.

docs.unrealengine.com

 

비 신뢰성 게임 플레이를 위한 함수 리플리케이션 인것 같다.

리플리케이션은 언리얼이 서버와 동기화 하기 위한 기능으로 리플리케이션의 단위?객체는 액터가 됨.

 

클라이언트에서 서버로 데이터를 넘기는 방법은 RPC 서버 함수 호출하는 방법이다. (유일한 방법이라고 하는데 더 있을수도 내가 무지했을수도) RPC 함수를 호출하면 서버에있는 함수 본문이 호출되는 형태.

 

이 함수의 특징은 유효성 검사와 같은 특정 함수들이 필요하다.

유효성 검사는 서버에 올바른 값이 넘어갔는지를 알려준다.

MoveForward 함수를 리플리케이트 시키면 앞에 Server_ 가 붙은 함수가 필요하고 (정의만 하고 구현은 하지 않아도 된다고 함. 구현하면 .gen 안에 이미 정의 되어서 중복정의라는 오류 메시지를 볼 수 있다.) 그 외에 _Implementation 과 _Validate 가 붙은 함수도 필요하다. _Validate 는 유효성 검사로 리턴 타입이 bool 인 것을 잘 보자. (이거 false면 게임 꺼짐)

 

전적으로 서버에 제어되는 물체는 시뮬레이티드 프록시라고 부름. 모든 정보는 서버에서 관리.

나를 제외한 다른 모든 물체는 시뮬레이티드 프록시가 됨. 클라이언트(나)A 에서는 A는 자율(automonous) 프록시가 됨. B의 입장에서는 A는 시뮬레이티드가 됨. 서버에서는 모든 객체가 Authority 가 된다.

 


수치 적분

오늘 배운 것중에 제일 중요한부분이 수치 적분이라는 개념이지 싶다. 따로 설명안하고 강의 들으면서 정리한 내용 복붙하고 마치겠다.

 

시간이 지남에 따라 가속도를 얻게 된다. 모든 오류의 원인. 매 틱마다는 오류가 작은데 틱이 쌓이면 위치가 완전히 달라짐. 시간의 흐름에 따라 더 큰 오류가 발생하게 된다.

회전이 있다면 이게 더 커짐.

걍 미분적분하는 과정 (예 dt 사용) 에서는 이 오류 값을 생각 안 할 수 없다는 뜻인듯.

 

수치적분 문제 해결 방법

  1. 서버에서 속도를 아주 낮게 줄이게 되면 로컬로 생성하는 오류 중 일부를 제거할 수 있다. 적분 과정 제거. → 오류 수치를 줄일 순 있어도 완전한 제거는 불가.
  2. 서버에서 위치 회전을 덮어쓰기. → 회전에서 문제가 생김
  3. 서버 클라이언트와 모든 시뮬레이팅 클라이언트에서 고정된 시간 단계로 시뮬레이팅을 하는 것. 오류가 발생해도 모두 동일하게 오류를 가지고 있을 것. → 실제 사용. but 복잡함

실제 해결은 다음 포스팅에서 이어짐.

 

오늘 대표 이미지가 될 폐차장 짤 ㅋㅋㅋㅋㅋ 플레이어 스폰을 하나만 해뒀더니 이렇게 되어버림 ㅋㅋㅋㅋㅋㅋ 

'Unreal > UE Server (完)' 카테고리의 다른 글

[UE5] Unreal Server Replicated - 2  (0) 2023.07.04
[UE5] Unreal Server Replicated - 1  (0) 2023.07.03
[UE5] Server UI 완성  (0) 2023.06.30
[UE5] Unreal Server Steam 연결  (0) 2023.06.29
[UE5] Server Join Session  (0) 2023.06.29
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함