Actor Replication Frequence & Relevancy - Unreal Network MultiPlayer Framework 액터 리플리케이션 빈도( Actor Replication Frequence)클라이언트와 서버간의 진행되는 통신 빈도를 의미한다.NetUpdateFrequency 1초당 몇번 리플리케이션을 시도할지 지정한 값 (가능한 최소화하는 것이 성능에 좋음)값이 100이라는 의미는 서버가 이론적으로 1/100초 간격으로 리플리케이션을 시도한다는 뜻이다. (무조건 보장하진 않음)네트워크 빈도는 최대치일 뿐 이를 보장하진 않음서버의 Tick Rate에 따라 리플리케이션이 발생하지만 서버의 성능에 따라 달라진다.서버의 성능이 네트워크 빈도보다 낮을 경우 서버의 성능으로 복제된다.(NetUpdateFrequency가 100으로 설정되어있을 때 서버의 Tick이 50번 밖에 수행이 되지 않는다면 50번 리플리케이션이 발생함... 2025. 3. 8. Actor & Property Replication, Replication Callback Function - Unreal Network MultiPlayer Framework Actor Replication (액터 리플리케이션)특정 플레이어에 속한 정보를 네트워크 내 다른 플레이어에게 복제하는 작업이다. (동기화)클라이언트 - 서버 모델에서는 대부분 서버에서 클라이언트로 전달한다. 리플리케이션의 방법프로퍼티 리플리케이션 : Actor가 가진 속성 값을 복제한다.RPC(Remote Procedure Call) : 함수를 호출하는 역할을 한다. (예전엔 함수 리플리케이션으로 부름)기본 Actor의 로딩클라이언트가 초기화 될 때 모든 Actor의 정보를 서버로부터 받는 것은 데이터양이 너무 많아 비효율적이다.따라서 기본 배경과 관련된 Actor는 맵을 통해 스스로 로딩하도록 설계되어있다.이 말은 서버와 클라이언트가 가지고 있는 배경 파일에 유효성 검사만 진행하고 서버로부터 배경 데.. 2025. 3. 7. Network에서의 Actor, Connection Handshaking(클라이언트 접속 및 게임 시작 과정) - Unreal Network MultiPlayer Framework 서버와 클라이언트에 위치한 Actor의 역할클라이언트 - 서버 모델에서 항상 서버에 있는 Actor만 신뢰된다. 이를 Authority를 가진다고 표현.클라이언트의 Actor는 대부분 서버 Actor를 복제한 허상이다. 이러한 Actor를 Proxy라고 한다.이를 구분하기 위해서 현재 동작하는 어플레케이션(게임)에서의 역할을 로컬 역할(Local Role), 커넥션으로 연결된 어플리케이션에서 역할을 리모드 역할(Remote Role)이라고 한다. 리슨 서버의 경우 서버 또한 Player로서 게임에 참가하므로 어플리케이션(게임)의 게임 로직을 사용한다.그렇다면 서버의 어플리케이션에서 Player가 존재하고 클라이언트가 추가되면 해당 클라이언트에서도 어플리케이션이 실행된다.그럼 A는 서버의 Player, B.. 2025. 3. 7. 원격 Actor & Network 초기화, 오너십(소유) - Unreal Network MultiPlayer Framework 원격 액터의 초기화로컬 게임에서의 초기화는 PostInitializeComponents와 BeginPlay가 존재한다.원격 클라이언트에서 네트워크 관련 설정의 초기화는 PostNetInit함수를 사용한다.PostNetInit클라이언트에서는 게임이 시작되기 전(BeginPlay 전)에, 서버에서 변경된 속성을 반영해야 하는 경우가 있다.(ex. 폴가이즈에서 참가 인원 수가 계속 변해서 알려줘야하는 경우. 이 현재 접속한 플레이어 수를 GameState에 저장한다. &Red or Blue 팀으로 변경했을 때 자신 및 타 플레이어가 어느 팀인지 UI로 보여줘야한다.)이 변경된 속성들은 네트워크를 통해 동기화되어야 하며, 클라이언트가 올바르게 게임을 시작하기 위해 미리 받아야 한다.그러나 PostInitiali.. 2025. 3. 7. Network Mode, 로그인 과정, GameMode, GameState - Unreal Network MultiPlayer Framework Network Mode독립형(Standalone)게임이 원격 클라이언트의 접속을 허용하지 않는 서버로 실행된다.게임에 참여하는 모든 플레이어는 로컬 플레이어뿐이다.이 모드는 싱글 플레이어 게임 및 로컬 멀티플레이 게임에 사용된다.서버와 클라이언트를 구분하지 않고, 모든 로직을 로컬 컴퓨터에서 실행한다.(즉, 네트워크를 사용하지 않는 게임 환경)클라이언트(Client)이미 존재하는 서버(Server)에 접속하여 플레이하는 방식이다.클라이언트는 게임 상태를 직접 계산하지 않고, 서버에서 받은 데이터를 기반으로 동작하며 화면을 구성한다.서버가 종료되면 연결된 모든 클라이언트도 자동으로 접속이 종료된다.리슨 서버(Listen Server)원격 클라이언트의 접속을 허용한다.가벼운 협동(Co-op) 및 경쟁(PvP.. 2025. 3. 6. 설정 및 네트워크 개요 - Unreal Network MultiPlayer Framework 네트워크 멀티 플레이어를 위해 몇가지 설정을 지정해야한다.이렇게 설정하면 View Port에서 보여지는 화면은 Listen Server라는 Server로 동작한다.그리고 Play하면다음과 같은 이미지가 나온다. 플레이+ 톱니 버튼 (add another clinet)을 누르면 클라이언트가 추가된다.혹시 위에 저 버튼이 보이지 않는다면다음과 같이 Check해주면 나타난다.또한 Always On Top을 true로 해주면 여러 클라이언트를 실행할 때 창이 위로 나와서 Client를 확인하기 편하다. Unreal의 네트워크 개요이다.https://dev.epicgames.com/documentation/ko-kr/unreal-engine/networking-overview-for-unreal-engine?ap.. 2025. 3. 6. Unreal GAS (Gameplay Ablility System) GASGAS: 액터가 소유하고 발동할 수 있는 어빌리티(이동, 점프, 스킬 등) 및 액터 간의 인터랙션 기능을 제공하는 프레임워크RPG, 액션 어드벤처, MOBA 장르의 제작을 쉽게하는 도구이며 대부분의 게임 제작에 활용 가능 GAS 장점유연성과 확장성 : 다양하고 복잡한 게임 제작에 대응할 수 있도록 설계모듈러 시스템 : 각 기능에 대해 의존성이 최소화되도록 설계네트워크 지원 : 네트워크 멀티플레이 게임에도 활용 가능데이터 기반 설계 : 데이터를 기반으로 동작하도록 설계완성도 : 포트나이트 게임 서비스를 통해 실효성 검증 GAS 단점배우는 학습 비용 : 구성 요소가 많아서 학습하는 비용이 크다.오버헤드 : 작은 규모의 프로젝트에는 오히려 복잡한 구조가 부담될 수 있다.Unreal GAS 핵심요소어빌리티.. 2024. 4. 26. Unreal Build System Unreal Engine 게임 제작을 위해 에픽 게임즈가 제공하는 제작 도구 Unreal Engin 구성 Editor: 게임 제작을 위해 제공되는 응용 프로그램 (일반적으로 인식하는 Unreal Engine) Game Build: EXE File과 리소스로 이루어진 독립적으로 동작하는 게임 클라이언트 Unreal Editor 특징 게임 개발 작업을 위한 다양한 폴더와 파일 이름 규칙이 미리 설정되어 있다. 정해진 규칙을 잘 파악하고 프로젝트 폴더와 파일을 설정해야한다. Editor에서 기획 및 개발을 완료한 후, 게임 빌드를 통해 최종 Game Build를 제작하도록 설정 Unreal Editor Unreal Editor 실행 방법 프로젝트 폴더의 uproject를 더블클릭하면 에디터가 트리거 된다. E.. 2024. 4. 14. Unreal Package & Asset Unreal Object Package Serialization을 통해 단일 Unreal Object를 Read, Write할 수 있었다. Package라는 단위로 Unreal Object들이 다양하게 조합되어 있을 때 Read, Write할 수 있다. Package는 Unreal Object를 감싼 포장 오브젝트를 의미한다. Package와 Asset Unreal Obejct Package는 다수 Unreal Object를 포장하는데 사용하는 Unreal Object이다. 모든 Unreal Object는 Package(Transient Package)에 소속되어 있다. Unreal Object Package의 서브 오브젝트를 Asset이라고 하며 에디터에 노출되는 것이 Asset이다. 구조상 Packa.. 2024. 1. 12. 이전 1 2 3 다음