언리얼4/기능
- Function 리플리케이션 시 발생하는 오작동 문제 2019.02.25
- 언리얼4 네트워크 2019.02.25
Function 리플리케이션 시 발생하는 오작동 문제
언리얼4 네트워크
- 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 |
---|