일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 게임개발
- gameplay ability system
- gas
- unity
- 메카님
- MLFQ
- boss monster
- CTF
- 언리얼 엔진
- ability task
- Rr
- Replication
- Multiplay
- stride
- Race condition
- 유스케이스
- Security
- dirty cow
- animation
- DP
- Delegate
- Unreal Engine
- MAC
- 언리얼엔진
- ret2libc
- 게임 개발
- 유니티
- photon fusion2
- 운영체제
- DSP
- Today
- Total
목록언리얼 엔진/Unreal Network Framework (4)
다양한 기록
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ttrLd/btsLN2eg76x/F4ezIQIA4mcjKfkKe9mt9K/img.png)
네트워크 모드와 서버 타입스탠드얼론: 게임이 원격 클라이언트에 연결을 허용하지 않음클라이언트: 프록시만 보여줌리슨 서버: 게임이 서버 역할까지데디케이티드 서버: 로컬 플레이어는 없이 서버로 동작 서버의 초기화1. 스탠드얼론 상태스탠드얼론이나 서버는 게임 모드 액터를 소유함2. 플레이어 컨트롤러 0리슨 서버는 일단 자신도 게임에 참여해야 함-> 여기까지 하면 네트워크 기능을 켜고 게임 서비스를 시작하면 됨=> 스탠드얼론에서 리슨서버로 변경 3. 클라이언트의 접속 요청서버에는 플레이어 컨트롤러 1 생김클라이언트를 대표하는 플레이어 컨트롤러는 클라이언트에 복제되는데,클라이언트 내부에선 플레이어 컨트롤러 0 임 // Copyright Epic Games, Inc. All Rights Reserved.#pragm..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/k12W5/btsLLBUsjfx/gfA5WUOOEkHWpZcxee5a01/img.png)
멀티플레이어 설정실행 옵션에서 리슨 서버로 설정Allow late joining 활성화* 저거 없으면 클라이언트 추가하는 기어 버튼 안나옴 추가 시 클라이언트 하나 더 생김 고급 옵션에서 Always On Top 하면 항상 상위의 윈도우로 동작 언리얼 네트워크 멀티플레이어 프레임워크어플리케이션: 게임인스턴스, 월드, 네트워크 모드접속 플로우: 로그인, 커넥션, 오너십, 역할액터 리플리케이션: 연관성, 우선권, 빈도RPC: 신뢰성, 검증움직임 리플리케이션: 캐릭터, 물리프로퍼티 리플리케이션: 상태, 최적화 * 언리얼엔진에서 멀티플레이용으로 만든 게임은 싱글로 그대로 작동함 * 언리얼 엔진은 클라이언트 서버 모델 사용네트워크의 한 대의 컴퓨터가 서버 역할 동작시키는 프로그램은 게임 인스턴스라고 하는 클래스가..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bALR6F/btsLK8Ejw1D/Ygr9JFrwLkSKasuIPCznI0/img.png)
서버- 컴포넌트의 움직임 혹은 물리 상태 저장- ReplcatedMovement 프로퍼티 리플리케이션클라이언트- OnReq_ReplicatedMovement 호출- 움직임 조정 혹은 물리 상태를 기록- 클라이언트와 서버의 물리 상태를 동기화- 캐릭터의 추가적인 움직임 처리 캐릭터의 리플리케이션과 다른점액터의 리플리케이션은 RPC를 사용하는게 아니라 프로퍼티 리플리케이션을 사용 * Authority, SimulatedProxy, AutonomousProxy 이런 건 전부 Actor 단위임어떤 클라이언트가 AutonomousProxy이다 이런게 아니라 액터 하나의 역할을 의미함 [ReplicatedMovement]- 서버에서 SimulatedProxy로 보내는 움직임 정보를 기록한 멤버 변수- OnReq_R..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/DNqHF/btsLIiVm3pA/Cj2F6nbTJuYUK1tm8Csck1/img.png)
캐릭터 움직임의 리플리케이션 플로우1. 클라이언트의 로컬 움직임 기록 - 현재 틱에서 입력 가속과 캐릭터의 움직임 기록- PerformMovement 실행 -> CharacterMovement에서 설정한 속성에 맞게 캐릭터가 이동됨- 특정 클래스에 움직임 저장- 서버 RPC를 호출해서 서버로 클라이언트의 움직임 정보를 보냄 2. 서버의 움직임 평가- MoveAutonomous 함수 실행해서 캐릭터를 자율적으로 이동시킴 - 서버 캐릭터와 클라이언트 캐릭터의 위치에 따라 ClientAdhustPosition RPC 호출해서 조정 가능 3. 캐릭터의 위치 조정 캐릭터 무브먼트 컴포넌트는 여러가지 이동 시스템 제공+ 네트워크 게임 플레이 통합 기능도 제공모두 기본적으로 리플리케이티드 되도록 빌드됨 TickCo..