본문 바로가기

언리얼_엔진_게임개발_공부65

언리얼 엔진의 Subsystem - 싱글톤 패턴 대신 사용해보자 https://benui.ca/unreal/subsystem-singleton/ Unreal-style Singletons with SubsystemsSubsystems are a simple way to make modular, globally-accessible logic.benui.ca 싱글톤 패턴유일한 객체에 대한 전역적인 접근을 보장하기 위해 외부에서 객체의 생성/삭제를 방지하고,getter 를 통해 최초 1회만 생성하여 프로그램 전반에서 동일한 객체에 대한 접근만 허용하는 방식의 디자인 패턴이다. 다만, 일반적인 방식으로 C++에서 싱글톤 패턴을 구현하면 언리얼 엔진 에디터와 호환이 별로 좋지 않다고 한다.- Interacts badly with the editor: Without work, .. 2025. 4. 1.
[UI] MVVM 패턴 / 언리얼 엔진의 ViewModel MVVM 패턴?  [디자인패턴] MVC, MVP, MVVM 비교웹 개발자로 일을 하면서 가장 먼저 접한 디자인패턴이 바로 MVC 패턴이었습니다. 그만큼 유명하고 많이 쓰이는 디자인패턴인 MVC 패턴과 MVC 패턴에서 파생되어져 나온 MVP 패턴과 MVVM 패턴을 이야beomy.tistory.com  View (i.e. UI) 와 Model (i.e. 게임플레이 로직) 간 의존성을 없애기 위한 디자인 패턴 중 하나이다.View 는 화면에 보여주는 것, Model 은 로직을 수행하는 것에만 집중하도록 하기 위해,ViewModel 에서 등록된 프로퍼티가 업데이트되는 시점에 View 를 업데이트 하거나 Model 의 로직을 수행한다.따라서 ViewModel의 프로퍼티는 View의 특정 요소와 데이터 바인딩을 통.. 2025. 3. 31.
숫자 야구 게임 - 로비 기능 로비 구성 요소1. 로비 위젯 (각 클라이언트)- Ready 버튼- 유저네임 표시- Ready 버튼 클릭한 플레이어 표시 2. 플레이어 컨트롤러 (각 클라이언트 & 서버)- 위젯 생성 & 제어- 위젯-서버 간 통신 (준비 상태 알림) 3. 게임 모드 (서버)- Ready 클릭한 플레이어 수 추적 & 게임 라운드 시작- 컨트롤러 통해 모든 클라이언트에 준비된 플레이어 표시 명령- 모든 플레이어 Ready 클릭 시 모든 클라이언트에 로비 화면 퇴장 명령 로비 위젯로비에서 Ready 버튼 클릭 시 NotifyPlayerReady (Run on server) 바인딩컨트롤러 - NotifyPlayerReady (Run on server)1) 게임 모드에 플레이어의 Ready 버튼 클릭을 추적하는 "ServerPl.. 2025. 3. 27.
Gameplay Framework Gameplay Framework 란?게임플레이 구조를 만드는 언리얼 엔진의 구성요소와 플로우를 말한다. 언리얼 엔진을 활용해 게임을 만들 때 기본 단위가 되는 게임플레이 요소들이라 할 수 있다. 구성 요소 / 순서 / 레플리케이션https://dev.epicgames.com/documentation/en-us/unreal-engine/gameplay-framework-in-unreal-engine 위의 엔진 공식 문서에서 설명하는 순서대로 게임플레이 프레임워크의 주요 구성요소 살펴보기 역할예시생성레플리케이션GameInstance레벨 전환에 관계 없이 게임 전반에 걸쳐 데이터 저장 또는 로직 수행하는 매니저 클래스.- 게임 저장 시스템- Online Subsystem엔진 실행 ~ 종료까지 생존X서버, 클.. 2025. 3. 26.
동적 계획법 / 다이나믹 프로그래밍 Dynamic Programming https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 위 문제는 "합이 n이 되는 1과 2의 조합 개수" 로 핵심을 추려볼 수 있고,이러한 문제는 대표적인 동적 계획법 (Dynamic Programming, DP) 문제라 할 수 있다.동적 계획법 / "기억하며 풀기"DP의 핵심은1. 문제를 작은 범위로 나누기2. 특정 범위에 대한 답을 구하기 위해 다른 부분에서 구한 답을 기억 및 활용하는 방식으로 알고리즘을 설계하는 기법이다. 어떻게 보면 분할 정복/재귀와 비슷하다고 볼 수 있는데 가장 큰 차이.. 2025. 3. 25.
C++ 로 채팅 예제 구현 - ChatWidget ~ GameMode & 유저네임 중복체크 / 색상 랜덤 부여 C++ 로 채팅 예제를 구현해보며 아래와 같은 기능을 만들어 보았다.1. 채팅 기능2. 서버에 유저네임 저장하여 중복 체크 & 메세지 출력 색상 지정 아래와 같은 요소들로 구현하였다.1. 채팅 기능- UEditableText 로 메세지 작성 & 커밋- 텍스트 커밋 시 플레이어 컨트롤러에서 서버 (게임모드) 로 전송- 게임모드에서 메세지 각 클라이언트 컨트롤러에 프린트하는 함수 호출2. 유저네임 저장 / 중복 체크 / 색상 지정- 게임모드에 TMap 으로 유저네임-색상 관리- 로그인 위젯에서 유저네임 설정 시 TMap 에 이미 등록되어 있는지 체크 후 유저네임-랜덤색상 페어 저장- 중복 시 안내 메세지 표시- 클라이언트에 메세지 출력 요청 시 해당 색상 전달하여 지정된 색상으로 출력 1. 채팅 기능1) 위.. 2025. 3. 20.