- Server / Client 시스템

- Listen Server /  Dedicated Server(전용서버: 클라이언트 포함 안함)

- Listen Server 시스템을 통해 네트워크 개념 학습

- Server(Authority : 변경권한) : 서버가 클라이언트에게 변경권한을 준다.

- Replication(복제) : 서버에서 클라이언트로 복제

- RPC(Remote Procedure Call, 원격함수 호출)


 

Replication(복제)에는 3가지 복제가 있다.

- Actor : 액터가 서버에서 스폰되면 클라이언트에도 복제된다.

- Variable : 변수의 값이 서버에서 변경되면 클라이언트에도 복제된다.(Replicated, RepNotify)

- Function : Run on Server, Multicast, Run on Owning Client

- Run on Server : 호출된 함수가 서버에서 실행됨(클라이언트가 호출)

- Multicast : 서버가 호출해야하고 서버와 모든 클라이언트에서 실행됨

- Run on Owning Client : 서버가 호출해야하고 특정 클라이언트에서만 실행됨(1개에서만!!)


 

GameInstance : 게임 시작부터 종료할때까지 지속적으로 단 1개만 존재, 어디에서나 공유 가능하다.

- 어떤 클라이언트나 접근이 가능

- 모든 클라이언트에게 필요한 정보를 저장 및 제공할 때 사용

GameMode : 레벨이 로드되면서부터 게임 종료시까지 단 1개만 존재

- 게임 룰 : 참여 인원수, 최고점수, 게임 시작 또는 종료 조건

- 서버측 코드에서만 접근가능하다.

GameState : GameMode가 인스턴스 생성, 1개만 존재

- 서버, 클라이언트 측에서 접근가능

- 클라이언트에게 서버측 정보를 전달할 때 사용

- 전체 플레이어수, 전체 PlayerState 정보에 접근가능


 

PlayerController : 플레이어 입력을 통해 캐릭터을 조종할 수 있도록한다.

- 서버측에서는 모든 PC에 접근 가능

- 클라이언트 측에서는 현재 캐릭턱의 PC만 접근가능

PlayerState : 한 플레이어의 게임 상태정보를 가지고 있다.

- 모든 클라이언트가 다른 PlayerState에 접근할 때 사용

- 현재 PlayerState의 주인이 아니면 데이터 갱신 불가

- PlayerController의 단점을 극복할 수 있다. 어디서나 접근 가능하니까

Pawn : 플레이어를 대신할 액터(액터,폰,개릭터)

- 서버측에서는 모든 Pawn에 접근할 수 있다. 


GameMode의 개념 및 한계

GameMode(서버로직)에서 클라이언트 로직 실행

-게임룰 위주의 서버로직

-OnPostLogin 이벤트(PlayerController 접근 가능)

-GameModo(서버로직)에서 클라이언트 로직 실행

-맵이 로드될 때 맵에 등록된 GameMode 실행


게임 메뉴맵 - 로비 맵 - 게임맵 / 맵들이 로드될때마다 각각의 GameMode가 실행된다.


배포 : 

1. 프로그램 작성 완료

2. 서버로 실행[프로그램 이름^맵이름?리슨 -게임], 클라이언트 실행(프로그램 이름^아이피주소 -게임)

3. 클라이언트가 자동으로 서버를 찾아서 연결(LAN, Internet)

4. 세션(Session) : 서버 등록, 게임 찾기, 게임 연결, 게임 해제


 

ServerTravel시 맵간 데이터 유지


SaveGame을 이용하여 다시 사용할 데이터를 파일에 저장

다음 레벨에서 사용할 데이터를 파일에서 읽어 온다.


SaveGame 생성,변수선언

Create SaveGame Object, SaveGameToSlot,

Does ExistSaveGame, Load SavaGameFromSlot



'언리얼4 > 기능' 카테고리의 다른 글

Function 리플리케이션 시 발생하는 오작동 문제  (0) 2019.02.25

+ Recent posts