본문 바로가기

전체 글

2025 - 03 - 18 TIL 0. 문제멀티 시스템을 공부하면서 목적을 모르는거같다뭘 배워야되는거고 순서는 뭐고 왜 배워야 되는건지 이유가 안잡혀있으니 그냥 글 만 읽고 있는 듯한 느낌이다 그렇기에 이번에는 목적을 한번 찾아보려했다 왜 멀티플레이어 시스템을 배워야 하나? 실시간 상호작용하는 게임을 만들기 위해서 그렇다면 무엇을 해야하나? 큰틀을 생각해보았다. 1. 클라이언트에서 특정 행동을 할시 서버에 전송해주는 방법2. 서버에서 클라이언트에 특정 이벤트를 호출 하는 방법 결국 클라이언트와 서버와의 상호 작용이다. 내가 간단한 멀티게임을 하나 만들어야 겠다 아무런 베이스 없이  한번쯤 해보면서 실제로 필요한걸 찾아봐야겠다. 먼저 간단한 기획을 생각해봤다 장르 :  간단한 시뮬레이션 내용 : 2명의 클라이언트와 서로 하나의 맵에서 움직.. 더보기
2025 - 03 - 17 TIL FString 과 FText 의 차이 FString  문자열 데이터를 저장하고 조작 하는데 사용 (수정 , 추가 , 삭제 등)파일 경로, 변수 이름, 로그 메시지 등 프로그램 내부에서 사용하는 문자열등에 사용됨.FString MyString = TEXT("Hello");MyString += TEXT(" World");// "Hello World"로 변경UE_LOG(LogTemp, Warning, TEXT("MyString: %s"), *MyString); FText 읽기전용 텍스트이며 수정하려면 새로 생성해야됨!!UI 텍스트 , 대화창 메시지 , 버튼 라벨 등 사용자에게 보이는 텍스트  즉 FString은 코드에서 데이터 처리용FText는 표시용 으로 변경이 되지 않는다.   언리얼 멀티 시스템 서버와 .. 더보기
2025 - 03 - 14 TIL (컴포넌트 , 블루프린트 라이브러리) Component를 알아야 되는 이유! 기능을 묘듈화 해서 액터에서 사용할 수 있게 해주는 용도로코드를 재사용 할 수 있고 액터가 너무 비대해지지 않으며 해당 기능(예 : 체력 공격 이동 로직 등 )을 컴포넌트 단위로분리해서 관리가 가능해진다. Actor Component와 Scene Component의 차이  Actor Component (UActorComponent)위치나 공간(Transfrom)을 조절하지 않는 논리적 기능을 제공하는 데 초점이 맞춰진 컴포넌트데미지 계산 , 상태 관리, 액터에 추가적인 동작 부여하는 용도로물리적이거나 시각적인 요소를 다룰필요 없을 때 사용  Scene Component (USceneComponent)액터 컴포넌트를 상속받아 만들어짐. 위치(위치, 회전, 스케일등)의.. 더보기
2025 - 03- 12 TIL (언리얼에서 네트워크 이해과정) RePlication은 무엇인가? 언리얼에서 Replication은멀티플레이어 환경에서 데이터와 상태를 클라이언트와 서버간의 동기화 하는 과정 즉 서버와 클라이언트 간 동기화서버에서 결정된 상태를 클라이언트로 전송 되어 일관성 유지(오늘 공부했던 내용 중 일관성) 언리얼에서 변수나 함수에 Replication이라는 프로퍼티를 설정해 복제 여부를 지정 할 수 있다.  RepNotify값 변경시 서버에서 클라이언트로 이벤트 호출자동 호출클라이언트에서 실행네트워크가 연결되어 있으면 신뢰 가능  UPROPERTY(ReplicatedUsing=OnRep_HealthChanged) int32 PlayerHealth = 100;  ActorReplication변수값의 동기화 및 오너쉽 관리로 서버에서 클라이언트자동 .. 더보기
2025- 03 - 12 TIL (네트워크 이해 과정 중) -네트워크의 기본 구성 요소 3가지노드 (네트워크 기본 단위)링크 (노드 연결)프로토콜 (데이터 전송 규칙) 네트워크 배치형태p2pbusringstarmeshtree (★) 네트워크 레이어소프트웨어에서 생성한 신호를 네트워크를 통해 다른곳으로 전달 되는 것을 정의한 표준 모 물리계층데이터링크 계층네트워크 계층전송 계층세션 계층프리젠테이션 계층어플리케이션 계층 네트워크 유형(아래로 갈수록 범위가 광대해짐) Pan (블루투스 등)Lan (근거리 통신망)Man (도시 단위 통신망)Wan ( 광역 통신망 , 도시 ,국가 대륙간)Internet  대표적인 프로토콜 TCPUDPIP MAC Address네트워크 디바이스에 부여된 데이터 링크 계층을 위한 고유 주소(물리적 주소가 Mac Address)48비트 체계로 .. 더보기
2025 - 03 - 11 TIL (Flood Fill) 0 . 아침 코딩 과제가 끝난김에 다시 코딩 테스트 준비 겸 내가 필요한 코딩 기술을 생각해보았다 게임에서 필요한알고리즘을 먼저 조금알아보니A* , 다익스트라, FloodFill, BFS, DFS, State Machine, Perlin Noise, Sorting Algorithms, QuadTree & Octree 언리얼에서 사용하는 자료구조는TArray, TMap, TSet, Priority Queue( TQueue ), Graph , Linked List( TLinkedList), KD-Tree라고 일단알았는데대부분 길찾기 알고리즘 에서 사용되는 거나 마지막 kdtree에서는 충돌감지까지 할수있다고한다  유닛 이동은 A*시야처리는 BFS, DFS , Flood Fill멀티 유닛 움직임 (집단 이동!.. 더보기
2025 - 03 - 06 TIL 0 .개요어제 플레이해보면서 부족한점을 다 뜯어고치는 중이다.  void ANBC_Zombie_AIController::OnPossess(APawn* InPawn){ Super::OnPossess(InPawn); if (InPawn && BehaviorTreeAsset) { if (UseBlackboard(BehaviorTreeAsset->BlackboardAsset, BlackboardComp)) { UE_LOG(LogTemp, Warning, TEXT("Blackboard initialized successfully")); } else { UE_LOG(LogTemp, Error, TEXT("Blackboard initialization failed!")); } StartGame().. 더보기
2025 - 03 - 05 TIL 0.개요 오늘은 어제 갑작스럽게 만든 총기 코드를 상속받게 하여서 여러 총기를 만드려한다.     (객체에 기능 추가는 UObject보다 UComponent를 사용 할것!!!!) - 중간 수정UObject 캐릭터에서 총 발사에 사용될 함수만 넣어보고 싶어서AActor가 아닌 UObject를 사용해봤다. 플레이어 컨트롤러 , 캐릭터 등에서 코드를 추가 하면 관리하는 사람의 코드와의 충돌이 생길 것 같아서사용 시켜줄 코드만 따로 분리시켜봤다. 일단 코드를 다 작성하여서 필요는없지만 UComponent라는 클래스객체가 존재했었다.   TakeDamage & UGameplayStatics::ApplyDamage() #include "Kismet/GameplayStatics.h"   // 필요 피격 함수를 언리얼.. 더보기