RPC란?
- 호출하는 PC와 실행하는 PC가 달라도 되게끔 해주는 통신 기법

- 대부분 게임에 큰 영향을 끼치지 않는 일시적인 효과들에 사용해야한다.
- 게임에 큰 영향을 끼치는 것들은 프로퍼티 레플리케이션을 사용해야 한다.
Call vs Invoke
- Call
- Invoke
Actor Ownership
- 네트워크 멀티플레이가 적용되려면, 액터는 서버에서 스폰되고 bReplicated가 true여야한다.
- 서버에서 스폰된 후 SetOwner(PlayerController) 함수를 호출해야 Client-Owned Actor가 된다.
- PlayerController가 Local PlayerController와 같다면, 호출한 클라이언트가 소유한 액터가 되어야 한다.
- PlayerController가 Local PlayerController와 다르다면 다른 클라이언트가 소유한 액터가 되어야한다.
- 서버에서 스폰되었지만 SetOwner() 함수 호출이 없으면, Server-Owned Actor가 되어야한다.
- Unowned Actor와 Server-Owned Actor를 같은 개념으로 생각하면 된다.
NetMulticast, Server, Client 키워드
- UFUNCTION() 매크로와 함께 사용되는 키워드
- 해당 원격 PC에서 RPC를 실행시켜달라는 요청을 나타내야함
- 실제로 실행될지는 표에 따라 판단

NetMulticast RPC는 액터가 레플리케이트 되어있는 모든 컴퓨터에서 실행

Server RPC는 클라이언트에서 호출되고 서버에서 실행
- Server 키워드를 사용
- ClientConnection이 소유하고 있는 액터에서 RPC가 호출되어야함

Client RPC는 서버에서 호출되고 클라이언트에서 실행
- 해당 ClientConnection이 소유하고 있는 액터에서 RPC가 호출되어야 한다.
- PlayerController의 멤버 함수로 UFUNCTION 달고 클라이언트 키워드를 넣어주면 된다.
WithValidation
- UFUNCTION() 매크로와 함께 사용되는 키워드
- 서버에서 실행되는 RPC인 경우에 사용
- _Implementation() 함수와 _Validate() 함수로 나뉨
Unreliable VS Reliable
- UFUNCTION() 매크로와 함께 사용되는 키워드
- RPC는 기본적으로 Unreliable
- 코스메틱(이펙트, 사운드)처럼 큰 영향이 없으면 Unreliable, 충돌, 대미지, 스폰처럼 게임에 큰 영향을 끼치는 로직은 Reliable로 설정
'게임 개발 > 학습 일지' 카테고리의 다른 글
| 언리얼 엔진으로 좁은 에어리어 바닥 만들기 (0) | 2026.07.13 |
|---|---|
| 언리얼 내배캠 - 멀티플레이 채팅 구현 (0) | 2026.06.22 |
| 언리얼 내배캠 - 언리얼 멀티플레이 기초 NetRole (0) | 2026.06.18 |
| 언리얼 내배캠 - 언리얼 멀티플레이 기초 NetMode, NetConnection, NetDriver (0) | 2026.06.17 |
| 언리얼 내배캠 - 언리얼 멀티플레이 기초 실습 환경 설정 (0) | 2026.06.16 |


