게임 개발 공부/네트워크 5

콜백 함수 - UPROPERTY(ReplicatedUsing)

📞 콜백(Callback) 함수란?콜백 함수란 어떤 이벤트나 상황이 발생했을 때 자동으로 호출되는 함수를 말합니다. 여기선 ReplicatedUsing이 그 상황이고, 그에 대한 콜백 함수가 OnRep_XXX인 거죠.  "서버에서 변수 값이 바뀌어서 클라이언트에 복제되었을 때, 자동으로 어떤 함수를 실행하고 싶다!"👉 그럴 때 ReplicatedUsing=함수이름을 사용합니다.   UPROPERTY(ReplicatedUsing = 함수이름)언리얼 엔진(UE4/UE5)에서 네트워크 복제(Network Replication) 를 할 때 사용하는 매크로. 공식설명ReplicatedUsing=FunctionNameReplicatedUsing 지정자는 네트워크를 통해 프로퍼티를 업데이트할 때 실행되는 콜백 함..

RPC

RPC (Remote Procedure Call)네트워크로 연결된 다른 컴퓨터에 있는 함수나 프로시저를 마치 로컬에서 호출하듯이 실행할 수 있게 해주는 통신 기술. 사용법함수를 RPC로 선언하려면 Server, Client, NetMulticast 키워드를 붙여줘야한다.  Client 호출  → Server 실행 UFUNCTION( Server ) void ServerRPCFunction(); Server 호출 → Client 실행 UFUNCTION( Client ) void ClientRPCFunction(); Server 호출  → 모든 Server, Client 실행 UFUNCTION( NetMulticast ) void MulticastRPCFunction(); 멀티캐스트 RPC 는 클라이언트에서..

Broadcast

개요언리얼 리슨서버로 야구게임을 구현을 위해함수가 호출될 때 GEngine->AddOnScreenDebugMessage() 바로 호출하는 방식으로 구현을 했고 작동도 잘 되는 것을 확인했으나 해당 방식이 실제 멀티플레이에는올바른 방식이 아님을 알고 수정한 결과를 담고 있습니다. 해당 글에서 말하는 브로드캐스트는 Multicast Delegate의 Broadcast()가 아님.BaseballGameMode.cppvoid ABaseballGameMode::HandleOutCondition(APlayerController* OutPlayer){ if (IsHostPlayer(OutPlayer)) { //FString DebugMessage = TEXT("Guest Won!! 다시 게임이..

Multiplayer Framework Replication과 RPC

해당 사진은 Dedicated Server 기준클래스존재 위치역할GameModeServer게임 규칙 제어GameStateServer와 모든 Client게임의 전체적인 정보(e.g. 점수, 시간) 동기화PlayerControllerServer와 자신을 소유한 Client각 플레이어의 입력은 자기 Client와 Server에만 알 수 있음PawnServer와 모든 Client모든 플레이어가 자신 외의 Pawn도 볼 수 있도록 Server에서 Replicate   서버만 모든 Player State를 가지면 안 될까?만약 서버만 모든 Player State를 관리한다면...다른 플레이어의 정보 (개인 점수, 체력 등의 정보)를 매번 서버에 요청해야함.네트워크 부하가 커지고 응답 속도가 느려질 수 있음.결국에는..

Player State vs Game State

📌 Player State vs Game State 구분 Player State Game State 소유 주체각 개별 플레이어 (APlayerState)게임 전체 (AGameState)동기화 범위각 플레이어별로 개별 관리되며, 모든 클라이언트와 공유됨모든 클라이언트와 공유됨저장하는 데이터플레이어 관련 공유 데이터 (점수, 팀, 남은 시도 횟수 등)게임 전체 상태 (현재 라운드, 게임 진행 상태, 남은 시간 등)예시- 플레이어 점수- 현재 입력 상태- 플레이어가 아웃됐는지 여부- 현재 진행 중인 라운드- 남은 시간- 전체 플레이어들의 상태📌숫자야구 게임 예시Player State (APlayerState)플레이어별 개별 점수남은 시도 횟수 (각 플레이어가 3회까지 가능)현재 입력한 숫자 (123 등..