티스토리 뷰

https://youtu.be/7dfdEYF0z2Y

직접적인 서버 연결이 대충 어느정도 끝이 났다.

컴퓨터가 한 대 뿐이라 스팀상에서의 연결은 시도해보지 못했지만 많은 포럼을 돌아다녀 본 결과 게임 실행했을 때 우측 하단에 스팀앱이 실행중입니다! 이거 뜨면 연결이 올바르게 된 거라고 함.

 

사실 가능하다면 스팀상에서도 테스트 해보고 싶지만 가장 어려운것은

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ...

 

서버가 붙은 UI 구현을 위해 위해 ini 파일 편집부터 언리얼 인터페이스 생성, 일시정지 메뉴 띄웠다 지우기, 레벨 변경 등 많은 부분을 공부했다..

 

이 포스팅은 누군가에게 보여주려고 하는 포스팅이 아니고 내가 공부한 단어들 정리해두는 포스팅이 ㅇ될 것.

아래부터는 그 단어들이 있을 예정이니까 안보는걸 추천함.


심리스/논심리스 로딩

논심리스란 : 서버는 모든 클라이언트의 연결을 끊고 새 맵에 로드시킨 뒤 자체적으로 맵을 로드한다. 프리징이 생김. 연결 해제에 시간이 걸리기 때문. 프리징을 방지하기 위한 방법으로 트랜지션 맵이 있음.

 

트랜지션 맵 → 로딩을 하기 위해 아주 작은 맵으로 먼저 이동하는 것. 원활한 전환을 위함.

bUseSeamlessTravel = true; 로 간단하게 할 수 있음. 프로젝트 세팅에서 킴.

 

TOptional 

  1. TOptional 은 인자로 들어간 녀석이 생성되었는지 아닌지 여부를 간단하게 확인할 수 있는 Wrapper 클래스이다.
  2. Optional.h 에 보면 Value 와 bIsSet 이 있는데, Value 가 실제 넘기는 데이터이고, bIsSet 이 해당 데이터의 생성자가 호출되었는지 여부를 판단하는 녀석이다. IsSet, Emplace, GetValue 등을 사용하면 해당 클래스를 유용하게 활용할 수 있다.
  3. TOptional 을 사용하는 장점 중 하나는, 특정 변수가 초기화되었는지를 판단하기 위해 'Magic Number' 를 쓸 필요가 없어진다는 것이다!

컴파일 타임 종속성 - 한쪽으로 이동

런타임 종속성 - 양 방향으로 이동 가능

 

종속성 반전이란?

메인메뉴에서 게임인스턴스에 접근하는 상황에서 게임 인스턴스에 대한 종속성을 제거하기 바람. 다른 게임으로 이동하면 게임인스턴스가 바뀌니까. 또 게임인스턴스가 없을수도있음 (코드 변경 없이.)

이를 가능하게 하기 위해 인터페이스가 존재한다. 객체를 만들지 않고 상속용으로만 사용. 게임인스턴스는 인터페이스를 포함함.

 

TSharedPtr 와 가비지 컬렉션 기초

  1. 언리얼에서 객체를 세기 위해 어떻게 할까?
    1. 언리얼 참조 카운팅 사용. TSharedPtr<AActor>. 스택에 존재하지만 힙에 있는 객체를 가리키고있다.
  2. 언리얼이 가비지 컬렉션을 위해 스캔할 객체를 알게 하는데 어떤 코드를 알아야할까?
    1. 중요! UObject에서 UPROPERTY()인 것은 자동으로 가비지 컬렉션의 대상이 된다!
    2. 가비지컬렉션은 UObject를 전부 담을 수 있다.
  3. 언리얼이 어떤 포인터를 따라야 하는지 어떻게 알 수 있을까?
    1. 질문이 좀 애매한데 객체를 UObject* 로 가리킨다는 말인듯

 

리플리케이션

액터는 리플리케이션의 핵심 요소. 클라이언트와 서버 사이의 핵심 요소라는 의미. 서버를 통해 최신 상태를 유지한다. 리플리케이터 된 액터는 서버를 통해 계속 업데이트 됨.

 

언리얼 동기화

동기화는 클라→서버 로는 이루어지지 않음. 동기화는 늘 서버의 권한. 서버→클라 만이 동기화가 됨.

 

트레블러

서버 트레블러는 월드(엔진)에서 작동. 플레이어 컨트롤러를 싹다 이동

클라이언트 트레블러는 하나하나 이동

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

[UE5] Unreal Server Replicated - 1  (0) 2023.07.03
[UE5] RPC - 1  (0) 2023.06.30
[UE5] Unreal Server Steam 연결  (0) 2023.06.29
[UE5] Server Join Session  (0) 2023.06.29
[UE5] Server Main UI  (0) 2023.06.28
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함