미로 게임 구현(Dedicated Server)
·
내배캠/Unreal Engine
📌 클래스 다이어그램이 게임은 자동으로 미로를 생성하고, 플레이어가 탈출지점에 도착하면 승자가 발표되며 게임이 종료되는 구조이다.언리얼의 GameMode, PlayerController, PlayerState, GameState, Character, Actor 등의 개념을 활용해서 서버-클라이언트 구조로 설계했다.  📌 미로 생성 시스템 / FMazeCell과 AMazeGenerator게임을 시작했을 때 맵이 고정되어있다면 플레이어는 금방 구조를 외우게 된다.그래서 매번 새로운 미로를 자동으로 만들어내는 시스템이 필요했고, 이를 C++코드로 직접 구현했다.벽을 그리드 형태로 배치한 뒤, 2D배열과 재귀 알고리즘을 사용해서 벽을 랜덤하게 제거해나가는 방식이다.✅ FMazeCell (미로 셀에 대한 구조..
언리얼 엔진 패키징(데디케이티드 서버 빌드)
·
내배캠/Unreal Engine
📌 데디케이티드 서버용 빌드 가능한 환경 만들기에픽 게임 런처로 설치한 언리얼 엔진은 기본적으로 데디케이티드 서버 빌드를 지원하지 않는다.에픽 런처 버전은 전체 C++ 소스코드가 포함되어 있지 않기 때문에, 서버 타겟 빌드에 필요한 구성요소를 직접 수정하거나 추가할 수 없다.특히 서버 타겟 빌드를 위한 .Target.cs 파일 커스터마이징이나, 빌드 설정을 완전히 제어할 수 없기 때문에 제한적이다.따라서 GitHub에서 언리얼 엔진 소스코드 클론을 받고 빌드한 후, 소스 빌드한 엔진으로 프로젝트를 생성하거나 열어야한다.아래 언리얼 엔진 소스 코드 및 빌드에 대한 것은 링크에 있는 강의 문서로 대체하겠다.*언리얼 엔진 소스 코드 및 빌드 방법↓ 챕터 2-1: 언리얼 소스 코드 빌드하기 | Notion수업..
채팅으로 하는 숫자 야구 게임 구현(Listen Server)
·
내배캠/Unreal Engine
📌 숫자 야구 게임언리얼의 Listen Server를 사용해서 채팅으로 하는 숫자 야구 게임을 구현하였다.RPCs, RepNotify를 사용해, 서버와 클라이언트 간의 통신하고 데이터를 동기화 시키는 방법을 익혀보았다.서버에 대한 이해도가 아직 크지 않아서 GameState, PlayerState 없이 GameMode와 PlayerController로만 구현하였다.전체적인 설명보다는 네트워크 통신 및 데이터 동기화를 어떻게 사용했는지에 대해 일부분만 서술할 것이고, 전체 코드 드 확인 및 실행은 아래 Git 링크에서 가능하다.*Git 링크: https://github.com/Dongry-96/NumberBaseballGame GitHub - Dongry-96/NumberBaseballGameContri..
언리얼 네트워크와 객체 통신
·
내배캠/Unreal Engine
🔎언리얼 엔진 파이프라인 Unreal Schematics | Unreal Engine Community WikiUnreal schematics featuring Animation, Blueprint, Character, Engine, Materials, Programming, Rendering & World Buildingunrealcommunity.wiki    📌 Network Framwork언리얼 엔진에서 네트워크 기능을 지원하는 핵심 시스템을 통합적으로 지칭하는 개념으로 볼 수 있다.일반적으로 세션 관리, 연결 관리, 데이터 전송, 그리고 복제(Replication) 시스템이 포함된다.✅ NetDriver언리얼 엔진에서 서버와 클라이언트 간의 데이터 전송을 담당하는 핵심 네트워크 모듈기본적으로..
온라인 게임과 네트워크 구성
·
내배캠/Unreal Engine
📌 온라인 게임에서의 네트워크 동기화 방식온라인 게임은 장르를 떠나, 크게 보면 Sync(동기, 실시간)와 ASync(비동기)로 나눌 수 있으며Sync는 온라인 서버(클라우드)환경과 LAN 파티 환경으로 나뉜다.1️⃣ Sync동기 방식은 모든 클라이언트가 일정한 주기로 같은 데이터를 공유하며 동기화하는 방식이다.네트워크에서 클라이언트와 서버 간의 데이터가 일정한 타이밍에 맞춰 동기화되므로, 모든 플레이어가 같은 게임 상태를 유지할 수 있다.빠른 응답보다는 정확한 데이터 동기화가 중요한 경우에 사용.🟢 장점완벽한 동기화 → 모든 클라이언트가 동일한 게임 상태를 유지함예측 가능 → 프레임별로 데이터가 동기화되므로, 결과가 예측 가능함일관성 유지 → 멀티플레이 환경에서 모든 유저가 동일한 정보를 받음🔴 ..
네트워크 개념
·
내배캠/Unreal Engine
🔎네트워크란?사전적 의미는 Interconnected 시스템, 즉 상호간의 연결되어있는 방을 의미하고, 두 대 이상의 컴퓨터 또는 장치가 데이터를 주고받기 위해 연결된 상태를 말한다.PC와 PC, 스마트폰과 서버, 프린터와 PC 등 다양한 기기들이 서로 연결되어 정보를 교환하고 공유할 수 있도록 구성된 구조.  📌네트워크의 3가지 구성1️⃣노드(Node)노드는 네트워크 상에서 데이터를 보내고 받거나 처리하는 모든 장치나 연결 지점을 의미한다.쉽게 말해 네트워크에서 통신에 참여하는 모든 장치를 노드(PC, 서버, 스위치, 스마트폰 등)라고 부를 수 있다. ✅ 노드의 주요 역할데이터 생성 및 송신데이터를 만들어 다른 노드로 전송하는 역할(사용자가 이메일을 보내는 컴퓨터)데이터 수신 및 처리받은 데이터를 ..