공부/Unreal Engine 5109 [언리얼5] 언리얼 게임 흐름 관계 클래스 1. 게임 모드 Game Mode 게임의 전반적인 규칙을 정하며 플레이어를 관리 게임에 필요한 객체들을 초기화 플레이어를 스폰 게임의 종료 조건을 결정 (2)게임 세션과 (3)게임 스테이트를 관리하며 상호작용하여 진행 상황을 관리 2. 게임 세션 Game Session 멀티 플레이 게임에서 사용 게임의 인스턴스를 관리하며 플레이어들의 연결을 유지 플레이어들의 연결 상태를 추적하여 플레이어가 게임의 출입을 처리 3. 게임 스테이트 Game State 게임의 현재 상태를 표현 플레이어들의 정보와 (2)게임 세션의 상태를 관리 플레이어들의 위치, 점수, 팀구성등의 정보를 추적하며 게임의 상태 변경을 감지 4. 플레이어 컨트롤러 Player Controller 플레이어가 조작하는 캐릭터나 객체를 제어 플레이어의.. 2024. 4. 9. [언리얼5] 위젯 텍스트 롤업(C++) 엔진 출력시 정확한 이름 출력 X, 스팀계정 연결후 멀티플레이시 스팀계정이름으로 플레이어 명칭 노출 확인 슈팅게임에서 플레이어를 처치한뒤 'A플레이어가 B플레이어를 처치' 와 같은 텍스트 알림을 롤업 방식으로 설정하기 유저위젯 클래스로 C++클래스를 생성하고 해당 클래스를 부모 클래스로 BP를 생성하여 작업. 위젯의 변수는 HorizontalBox의 계층으로 텍스트를 넣어주어 일정한 간격을 계산할 수 있도록 한다. C++에서 해당 위젯클래스를 생성하여 뷰포트에 추가. 필요하다면 애니메이션을 커스텀하여 재생. 유저위젯 클래스형태의 배열을 생성하여 해당 배열에 있는 텍스트(위젯)를 위젯의 박스 크기만큼 위치를 설정해 주도록 한다. 박스, 패널, 위젯레이아웃라이브러리 헤더 사용 #include "Compone.. 2024. 4. 9. [언리얼5] 클라이언트의 검증 함수 멀티 플레이 프로그래밍을 할때 해킹을 방지하기위한 방법중의 하나인 클라이언트 검증 함수 프로그래밍은 가능하면 서버를 통하여 계산이 이루어져야하며 만일 클라이언트에 노출되어 수정이 가능한 데이터가 있다면 해당 데이터를 검증한후 전송할 수 있도록 해야함. 예를 들어 슈팅게임에서 무기마다 발사 속도를 BP에서 조절할 수 있도록 변수를 노출시켰을때. 어떠한 프로그램을 통하여 해당 변수가 저장되는 메모리의 주소를 알아내고 값을 변경한다면 해킹이 가능하게 된다. 해당 변수가 사용될 함수는 클라이언트가 서버로 요청하여 실행할 수 있도록 UFUNCTION(Server, Reliable, WithValidation) 을 사용한다. 위처럼 매크로를 선언하고 _Validate 접미어가 붙은 함수를 CPP에서만 선언하여 검증.. 2024. 4. 7. [언리얼5] SSR & CSR Server-Side Rewind (SSR) Server-Side Rewind는 서버가 클라이언트로부터 받은 입력을 처리할 때, 해당 입력이 발생했던 시점의 게임 상태로 "되돌아간다"고 가정하여 처리하는 방식입니다. 이는 주로 히트 스캔(hit-scan) 무기를 사용하는 FPS(First-Person Shooter) 게임에서 플레이어의 총알이 목표물에 맞았는지 판정할 때 사용됩니다. 예를 들어, 클라이언트 A가 적을 쏘고, 그 총알이 명중했다고 서버에 보고했지만, 서버와의 통신 지연으로 인해 서버는 적이 이미 그 위치에서 움직였다고 판단할 수 있습니다. SSR을 사용하면, 서버는 클라이언트 A의 총알이 발사되었던 시점으로 게임 상태를 "되돌린" 후, 그 시점에서 총알이 적에게 명중했는지를 판정합니다. 이.. 2024. 4. 7. [언리얼5] 언리얼 네트워크 시뮬레이션 관련 참고 자료 SettingDescription PktLag Delays the sending of a packet by the amount of time specified in milliseconds PktLagVariance Provides some randomness to the amount of time a packet is delayed, +/- the amount specified in milliseconds PktLoss Specifies a percentage chance of an outbound packet being discarded to simulate packet loss PktDup Specifies a percentage chance to send a duplicate packet PktOr.. 2024. 4. 7. [언리얼5] 프로퍼티 동기화(C++ & BP) C++코드로 작성한 변수 프로퍼티의 값을 BP에서 변경할 수 있도록 생성한다면 언리얼엔진의 블루프린트(BP)에서 해당 변수의 값을 변경시 기존에 설정한 값이 즉시 수정 반영 되지 않습니다. C++클래스생성 > C++클래스를 상속받아 BP 클래스를 생성 > 생성된 BP클래스에서 C++클래스에서 생성하고 노출시켜 변수의 값을 BP에서 변경 > BP의 로직에 사용된 변수는 C++에서 초기화된 값으로만 지정 예를 들어 아래와 같은 변수가있는 투사체 클래스를 C++을 통하여 변수를 생성하고 BP에 노출시키도록 설정하였을때 위의 클래스를 바탕으로 생성한 BP클래스에서 해당 변수가 노출되어 수정이 가능한 것이 보입니다. C++클래스에서 해당 변수를 투사체의 움직임에 사용할때 BP에서 해당 값을 변경합니다. 변경후 컴.. 2024. 4. 5. 이전 1 ··· 4 5 6 7 8 9 10 ··· 19 다음