[Portfolio] EmploymentProj - UE5 멀티플레이어 익스트랙션 슈터
카테고리: Portfolio
태그: C++, Multiplayer, Networking, UE5
📌 UE5 C++ 멀티플레이어 익스트랙션 슈터
이 포트폴리오는 완성본이 아닙니다!
👾 깃허브
📋 기획서
📝 개발 기록 전체
게임 소개
“취업”을 테마로 한 1인칭 익스트랙션 슈터다. 2~8인 멀티플레이어.
매치 시작 → 랜덤 스폰 → 파밍(루팅 + 자판기) → 교전 → 탈출 → 보상
퀘스트 아이템(이력서, 자격증)을 모아 탈출하면 “취업 성공”이다. 죽으면 소지품을 전부 잃고, 탈출하면 보존한다.
지연 보상 동작 영상
서버가 과거 시점의 히트박스를 복원해서 판정하는 장면이다. 자세한 내용은 아래 네트워크 동기화와 지연 보상 문서에 있다.
이 프로젝트의 전제
전 게임 로직이 서버 권한이다. 클라이언트는 입력을 보내고 결과를 받아 그린다. 판정은 하지 않는다.
템플릿과 블루프린트에 의존하지 않고 C++로 설계했다. 블루프린트는 데이터와 에셋 참조를 담는 서브클래스에만 쓴다.
검증 범위를 분명히 해둔다. 설계 목표는 2~8인이지만, 실제로 확인한 것은 PIE 다중 클라이언트 2인 동시 접속까지다. 데디케이티드 서버 타깃(
*Server.Target.cs)은 아직 분리하지 않았고, Listen Server 구성으로 서버 권한 경로를 검증했다.
flowchart TD
I[플레이어 입력] --> ASC[AbilitySystemComponent]
ASC --> GA[GameplayAbility]
GA --> SSR[ServerSideRewind<br/>과거 히트박스 복원]
SSR --> HIT[히트 확정]
HIT --> GE[GameplayEffect<br/>데미지 적용]
GE --> ATTR[AttributeSet<br/>Health 감소]
ATTR --> REP[복제] --> HUD[클라이언트 HUD]
시스템 문서
각 문서는 현재 구조 + 겪은 문제 + 남은 것을 담는다. 구현 과정은 문서 안에서 개발 기록으로 연결된다.
| 문서 | 다루는 것 |
|---|---|
| 네트워크 동기화와 지연 보상 | 서버 권한 구조, CMC 확장, 히트박스 리와인드 |
| GAS 기반 전투 시스템 | ASC/AttributeSet, 데미지 파이프라인, 어빌리티, HUD |
| 전투와 아이템 | 아이템 3계층, 무기 설계, 탄퍼짐 CDF, 부위 데미지 |
| 애니메이션 | MetaHuman 통합, Linked Anim Layer, IK |
세 편만 읽는다면
기술적으로 가장 많이 파고든 순서다.
- 히트박스 리와인드 구현 보이는 것보다 이전 위치를 때려야 맞던 문제. 원인은 틱 그룹 안에 있었다
- 쿨타임이 5에서 4.5로, 다시 5로 되돌아간다 예측된 GE와 서버 GE가 클라에 동시에 존재한다. 엔진이 지연 보정을 하지 않는다
- CMC 확장으로 이동 상태 동기화 Sprint/ADS/Crouch를 RPC가 아니라 CompressedFlags로 옮긴 이유
채용 요건 대응
필수요건
| 요구사항 | 구현 | 문서 |
|---|---|---|
| UE Gameplay Framework 이해 | GameMode/GameState/PlayerController/PlayerState/Character 전체 설계 | 개발 기록 |
| 게임모드 및 기믹 개발 | 매치 상태머신, 자판기, 탈출 판정 | 개발 기록 |
| Replication 기반 네트워크 개발 | UPROPERTY 복제, OnRep 콜백, Server/Client/Multicast RPC | 네트워크 |
| 서버-클라이언트 동기화 이해 | 서버 권한 히트 판정, 지연 보상, 클라이언트 예측 | 네트워크 |
| C++ 심층 이해 | 전체 게임플레이 C++ 구현, UE Reflection 활용 | 전체 |
우대요건
| 요구사항 | 구현 | 문서 |
|---|---|---|
| 데디케이티드 서버 게임모드 설계 | 서버 권한 아키텍처, 전 로직 서버 판정 | 네트워크 |
| GAS 활용 | AttributeSet, GameplayEffect, GameplayAbility, GameplayTag | GAS |
| Data-Driven 설계 | DataAsset 기반 아이템/무기 3계층 | 전투와 아이템 |
| Git 협업 | feature 브랜치 전략, PR 기반 개발 | - |
개발 진행 상황
| 단계 | 상태 |
|---|---|
| 1. Gameplay Framework | 완료 |
| 2. Replication | 완료 |
| 3. Lag Compensation | 완료 |
| 4. GAS 이관 | 완료 |
| 5. 루팅 / 인벤토리 | 진행 중 |
| 6. AI 적 | 예정 |
| 7. 탈출 / 로비 | 예정 |
단계별 구현 과정은 개발 기록에 시간순으로 남겨두었다.
기술 스택
- 엔진 Unreal Engine 5.7
- 언어 C++ (게임플레이 전체)
- 네트워크 서버 권한 모델,
UCharacterMovementComponent예측 확장 - IDE JetBrains Rider
- 빌드 MSVC (Visual Studio Build Tools 2022)

댓글남기기