2025/03 13

남의 블루프린트 읽는공부

게임 템플릿우선 나는 템플릿을 받아서 버그를 수정해 사용하려고한다. 게임 템플릿이란 게임 개발 시 기본적인 구조와 기능을 제공하는 미리 만들어진 프레임 워크나 샘플 프로젝트를 의미한다.그래서 내가 분석할 템플릿은https://www.fab.com/listings/1516c689-17c3-4299-9589-f4bb4b3faca8이거다. 캐릭터캐릭터 펼쳐보기 보기만 해도 어지럽다... 어디서부터 시작해야될 지 모르겠다. 그렇다면 어떻게 봐야할까?순서대로처음에는 좀 적은 노드를 가진 구역부터 중간부터 봤었는데 뭔가 빙글빙글 돌다가 뭐가 뭔지도 모르고 시작했던곳으로 돌아오거나 했다. 이러다가는 답도없을거같아 더는 뒤로 갈수없는 BeginPlay부터 시작하도록 해야겠다.BeginPlayEvent BeginPlay..

언리얼 공부 2025.03.31

비헤이비어 트리

비헤이비어 트리란?언리얼 엔진에서 비헤이비어 트리(Behavior Tree)는 AI 캐릭터의 의사결정(Decision Making)을 시각적으로 설계할 수 있게 도와주는 트리 기반의 시스템이다.이렇게 들으면 뭔가 긴가민가 할텐데 대충 AI가 어떤 행동을 어떤 조건에서 할지 "트리 구조"로 순서와 우선순위를 설정하는 시스템 이라고 생각하면 편하다언리얼 공식문서의 자료다.주요 노드 종류노드 타입설명Selector자식 노드를 순서대로 실행, 성공하는 노드가 하나라도 Sequence자식 노드를 순서대로 실행, 하나라도 실패하면 전체 실패Task실제로 무언가를 수행하는 행동(공격하기, 걷기 등)Decorator조건 체크(ex: 체력이 50% 이상일 때만 실행)Service계속 반복해서 체크하는 것(ex: 적 위치..

언리얼 공부/AI 2025.03.25

멀티플레이 객체 생성 순서 & 동기화 흐름

기본 개념 정리클래스역할서버/클라이언트GameMode게임 규칙, 시작/종료, 승리 조건 등 관리서버 전용GameState게임의 전체 상태 공유모두 공유(서버에서 생성 -> 클라에 복제)PlayerState각 플레이어의 정보(이름, 점수, 역할 등)모두 공유(서버에서 생성 -> 클라에 복제)PlayerController입력 처리, UI 호출, 서버와 상호작용서버/클라 각각 존재Pawn/Character실제 월드에 있는 플레이어 캐릭터서버에서 소유 후 클라에 복제 생성&동기화 흐름1. 서버가 월드를 시작할 때 GameMode가 생성됨GameModeBase는 서버에서 단 하나만 생성됨.이 때 GameStateBase도 함께 생성된다.(GameMode가 GameStateClass를 참조해서 생성).GameMod..

언리얼 공부 2025.03.21

RPC 이해하기

RPC란?RPC( Remote Procedure Call )는 네트워크 환경에서 한 시스템(클라이언트)이 다른 시스템(서버)에 함수를 실행해 달라고 요청하는 방식. 쉽게 말해서, "클라이언트가 서버의 함수를 직접 호출할 수 있도록 해주는 개념"이다.언리얼 엔진에서 RPC의 역할언리얼 엔진에서 RPC는 서버와 클라이언트 간 데이터 동기화 및 함수 호출을 위해 사용된다.특히, 멀티플레이어 게임에서는 필수적인 기능이다!RPC 유형호출 방향사용 예시Client RPC서버 -> 클라이언트서버에서 클라이언트의 UI 업데이트 요청Sever RPC클라이언트 -> 서버플레이어 입력을 서버로 전달Multicast RPC서버 -> 모든 클라이언트이펙트, 애니메이션 동기화RPC 예시보드게임 Bang을 아신다면 이해하실 수 있..

언리얼 공부 2025.03.19

언리얼의 네트워크 기본구조

개요언리얼 엔진 네트워크 시스템은 서버 - 클라이언트 구조를 기반으로 동작한다.기본적으로 이런느낌으로 되어있는데 이것만 봐서는 이해가 잘 안된다. 하지만 알고 보면 정리가 되고 이해가 되기 때문에 하나하나 알아보겠다.핵심 개념 설명GameMode(서버 전용)서버에서만 실행되고, 게임의 전반적인 규칙을 관리한다.플레이어의 스폰, 점수 계산, 게임 진행 상태 변경 등을 담당한다.GameState(서버 & 클라이언트)모든 클라이언트가 공유하는 게임의 상태 정보 저장.Replication(복제)이 가능하며 클라이언트에서도 게임 정보 확인 가능사실상 서버와 클라이언트를 이어주는 다리!PlayerController(서버 & 클라이언트)각 플레이어의 입력으 서버로 전송하고, 서버에서 받은 정보를 바탕으로 클라이언트의..

언리얼 공부 2025.03.18

네트워크 기본 장비 정리

네트워크란? 1. HUB정의여러 장치 간의 데이터 통신을 가능하게 하는 장치다. 기본적으로 HUB는 네트워크의 다양한 장치들을 연결하여 데이터를 송수신하는 역할을 한다(예 : 컴퓨터, 프린터 등)특징네트워크 초기에 자주 쓰인 장비 요즘은 잘 쓰이지 않는다다중포트를 가지고 있어 여러 장치를 동시에 연결할 수 있다수신된 데이터를 연결된 모든 포트로 전송한다. A라는 컴퓨터에서 B라는 컴퓨터로 메세지를 전송하고싶으면 연결되어있는 C, D 컴퓨터에도 전송된다.HUB는 데이터의 목적지를 파악하지 않고 단순히 전송하기 때문에 네트워크 효율성이 낮고 충돌이 발생할 가능성이 높다메모충돌이 잘 나는 이유네트워크에 연결된 모든 장치에게 데이터를 전송하게되는데, 여러 장치가 동시에 브로드 캐스트 데이터를 전송하려하면, 같은..

카테고리 없음 2025.03.13

미안해

일본 게임을 하다가 "미안해" 라는 자막인데 말은 わるい라고 하는게 눈에 띄었다. 내가알기로는 悪い는 나쁘다 라는 뜻으로 알고있어서 한번 찾아봤다. 1.ごめんなさい가장 흔히 쓰이는 사과의 표현이다.정중하고 부드러운 느낌이 있있어서 남녀노소 누구나 자주 사용함.상대에게 예의를 갖추고싶을 때 적합하다.2.すまない좀 더 캐주얼하고 남성적인 뉘앙스가 있다.주로 가까운 사이에서 쓰거나 남성이 자주 사용한다.정중함보다는 솔직하고 직설적인 느낌이 강함.3.悪(わる)い직역하면 나쁘다는 뜻이지만 맥락에 따라 미안해로도 사용된다상대에게 부담을 끼친 것에 대해 가볍게 사과할 때 사용함.캐주얼하고 일상적인 표현이다.

빌더 패턴

빌더 패턴이란?객체 생성 과정을 캡슐화하고, 복잡한 객체를 단계적으로 구성할 수 있게 해주는 디자인 패턴 중 하나다.이 패턴은 주로 객체를 생성하는 데 여러 단계가 필요하거나, 동일한 생성 과정을 통해 다양한 표현을 만들어야 할 때 유용하다.빌더 패턴의 주요 구성 요소Product(제품) : 최종적으로 생성될 복잡한 객체Builder(빌더) : 객체를 생성하기 위한 인터페이스 또는 추상 클래스. 단계별로 객체를 구성하는 메서드를 정의한다.ConcreteBuilder(구체적인 빌더) : Builder 인터페이스를 구현하여 실제로 Product를 만드는 클래스.Director(디렉터) : 빌더를 사용해 객체를 구성하는 과정을 관리하는 클래스(이건 선택).예시1. Product 클래스#include #incl..

C++/개념정리 2025.03.11

네트워크 CAP 이론

CAP이론이란?CAP이론은 분산 시스템에서 세가지 주요 특성을 말하는 이론이다. 일관성(Consistency), 가용성(Availability), 분할 내성(Partition Tolerance)을 말하며 분산 시스템은 이 세가지 특성을 동시에 완벽하게 만족시킬 수는 없으며, 항상 두 가지 특성만을 만족할 수 있다.1. 일관성정의모든 노드(데이터를 저장하고 처리하는 기본 단위)가 동일한 데이터를 동시에 볼 수 있어야한다. 즉, 어떤 노드에서 데이터를 변경하면, 그 변경 내용이 모든 노드에  즉시 반영되어야 한다.즉 모든 유저의 화면이 같은 상황을 만드는 것이다. 예시롤에서 내가 피오라를 한다고 치고, 상대방이 다리우스를 한다고 치자, 이 때 피오라의 응수(W)와 다리우스의 포획(E)의 심리전 싸움은 유저들..

카테고리 없음 2025.03.10