inflearn logo
강의

講義

知識共有

ゲインウのアンリアルプログラミング Part3 - ネットワークマルチプレイヤーフレームワークの理解

第3講 コネクションとオーナーシップ

플레이어(Actor) 로 (리슨)서버에서 생성 되나요?

解決済みの質問

96

devyh87

投稿した質問数 17

0

강의를 계속 듣고 보니 저는 (리슨)서버 의 경우 필요한 객체만 생성되는 줄 알았으나

 

마지막 Owner 에 대한 내용도 보니 결국 서버에서 플레이어 캐릭터 액터 도 생성 및 초기화 하고 이를 다시 클라이언트에서 Owner 가 설정되기 전이긴 하나 다시 생성 후 컴포넌트 초기화 , 오너 설정 등이 이루어지는데요.

(리슨)서버의 경우 플레이어-접속된 클라이언트의 객체 모두 생성 후 다시 이를 클라이언트에게 전달 , 클라이언트에서는 서버에서 받은 객체 정보를 바탕으로 다시 플레이어 캐릭터 생성 및 오너 설정

즉 서버는 모두 생성한다. 그리고 접속되어 진 클라이언트 플레이어 액터 객체는 모두 서버에 의해 클라에서 생성되며 OnRep_Owner, PostNetInit 등을 통해 서버의 PossessedBy 와 동일한 일을 진행한다

이렇게 이해해도 될까요?

unreal-engine 네트워크 언리얼-c++

回答 2

0

ideugu

네 모두 잘 이해하신것으로 보여집니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 충실한 전복님.

리슨 서버와 클라이언트의 오브젝트 생성 및 동기화에 대해 질문 주셨네요. 언리얼 엔진에서의 리슨 서버는 클라이언트 역할을 동시에 수행하는 서버를 의미하며, 모든 플레이어의 액터 객체는 먼저 서버에서 생성됩니다. 다음의 과정으로 이해하시면 도움이 될 것입니다:

  1. 서버에서 객체 생성: 서버는 모든 플레이어의 캐릭터 및 관련 객체(예: PlayerController, Pawn 등)를 생성하고 초기화합니다. 이때, 각 객체에는 고유한 오너십이 설정됩니다.

  2. 클라이언트에 객체 전송: 생성된 객체 정보는 서버에서 각 클라이언트로 전송되며, 클라이언트는 이 정보를 받아 자신만의 객체 복제본(replicate)을 생성합니다.

  3. 동기화 및 초기화: 클라이언트는 OnRep_Owner와 같은 리플리케이션 관련 콜백 함수를 통해 객체의 오너십 정보를 동기화합니다. 이러한 과정은 PostNetInit 함수를 통해 초기화 단계가 완료되며, 서버에서 수행한 PossessedBy와 동일한 처리를 클라이언트도 행합니다.

  4. 오너십 및 상호작용: 클라이언트와 서버 간 액터의 오너십은 서버에서 결정되며, 이를 기반으로 클라이언트의 상호작용이 이루어지는 구조입니다. 클라이언트는 서버의 객체 상태에 맞춰 자신의 객체를 동기화하여 게임플레이를 원활히 유지합니다.

관련해서 더 자세히 이해하실 수 있는 기존 답변을 추천드립니다:

이 링크들은 언리얼 엔진의 네트워크 객체 관리와 관련하여 보다 상세한 설명을 제공하고 있으니 참고해 보세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

5.6버전 Networking Insights 실행안됨 문제에 관하여

0

24

1

8강 중간, 분수대의 SetOwner 에 대해 궁금합니다.

0

73

2

2강) HandleBeginPlay 의 역활이 궁금합니다.

-1

70

2

3강 중간, 모드 로그로 찍을 시 스탠드얼론이 안찍힙니다.

1

73

2

CompressedFlag 질문

0

55

2

10강까지 머리 위 체력바가 표시가 안됩니다.

0

105

3

10강까지 머리 위 체력바가 표시가 안됩니다.

0

93

2

16:44 부분에서 질문이 있습니다.

0

100

2

12:50 NetMulticast RPC 커넥션 관려하여 질문이 있습니다.

0

116

2

github 3-5 파트 프로젝트에서 컴파일 에러가 발생합니다.

0

112

3

언리얼 인사이트 5.6버전 networking insights 가 뜨지 않습니다.

0

163

3

Insight 사용이 안되어서 문의 드립니다!

0

126

2

하위 레벨...?? High Level 말씀하신거죠..??

0

143

1

CompressedFlags를 이용한 InputThrottle, InputSteering 전달 방법 질문

0

188

1

조건식 프로퍼티 리플리케이션 질문

0

141

2

ArenaBattle에 Log추가하는 곳에 에러가 나타나 질문 드립니다.

0

158

2

7강에서 DORM_Initial 안됨

0

126

3

안녕하세요 강의 내용 정리에 관련해서 질문있어요

0

128

2

캐릭터 클래스의 mesh 관련

0

129

2

3파트 6강 분수대 로테이트에 문제가 생겼습니다.

0

127

3

클라이언트의 오너십 설정에 대해서 궁금합니다.

0

197

3

프로퍼티 리플리케이트 동기화 보장 개념.

0

220

2

결국엔 액터 기본함수들은 어디든 똑같이 일단 실행되는건가요?

0

86

2

3분 39초 경에 질문이 있습니다

0

73

2