GAME PROGRAMMER PORTFOLIO

Server &
Client, Both

안녕하세요, 서버와 클라이언트를 함께 보는 게임 프로그래머 김경배입니다.
언리얼 엔진 5·C++로 멀티플레이 게임을 만듭니다.
판정은 서버, 연출은 클라이언트로 나눠 여러 클라이언트가 접속해도 상태가 어긋나지 않는 전투를 설계합니다.

01

About

게임 클라이언트부터 서버·시스템 계층까지, 문제가 어디서 깨지는지 찾습니다.

01 — COMBAT

GAS 기반 전투 설계

Gameplay Ability System으로 스킬·데미지·쿨다운을 모듈 단위로 분리해, 새 능력을 추가해도 기존 코드 수정이 최소화되는 구조를 만듭니다.

02 — NETWORK

서버 권한 기반 멀티플레이

판정은 서버 권한으로 확정하고 결과만 리플리케이션, 연출은 멀티캐스트로 분리해 클라이언트 간 상태 일관성을 보장합니다.

03 — DEBUGGING

계층을 가르는 디버깅

임베디드·백엔드 경험을 바탕으로 클라이언트인지 서버인지, 네트워크인지부터 좁혀 문제의 원인 계층을 빠르게 찾습니다.

02

Projects

대표작 2개는 상세히, 그 외 4개는 간략히 정리했습니다.

FEATURED 01

Forever
Planet

서비스 종료된 넥슨 <에버플래닛>을 참고한 Globe View 2.5D RPG

PERIOD
2025.04 – 2025.06
TYPE
개인 프로젝트 · 기여도 100%
STACK
UE5.2 · C++ · GAS · Dedicated Server · PaperZD
01

프로젝트 개요

구면(Globe) 형태의 월드 위에서 이동하고 전투하는 2.5D RPG입니다. Dedicated Server 기반 멀티플레이를 목표로 설계했습니다.

왜곡된 구면 월드에서의 이동
02

GAS 기반 전투 시스템

AbilitySystemComponent와 AttributeSet으로 전투 수치를 관리하고, GameplayAbility 단위로 스킬을, GameplayEffect로 데미지·쿨다운을 적용했습니다. 새 능력을 추가해도 기존 코드 수정이 최소화되도록 모듈 단위로 분리했습니다.

공격 리플리케이션 및 멀티캐스트
03

서버 권한 기반 판정으로 전환 KEY

초기에는 공격 판정과 피격 연출을 함께 Multicast로 전파했습니다. 각 클라이언트가 판정을 독립 처리하면 상태 일관성을 보장할 수 없다고 판단해 구조를 바꿨습니다.

  • 피격 처리 Ability에 NetExecutionPolicy = ServerOnly 지정, 진입부에 HasAuthority 가드 적용
  • 확정된 Health는 ReplicatedUsing = OnRep_Health로 각 클라이언트에 전달
  • Multicast는 Multicast_SetHitColor(피격 색)·Multicast_SetKnockback(넉백) 등 연출 전용으로 역할 축소
서버 권한으로 확정된 피격 리플리케이션
04

OnRep 서버 미호출 문제

bIsAttacking에 ReplicatedUsing을 걸어 애니메이션을 재생했으나 서버 화면에서만 동작하지 않았습니다. OnRep은 값을 수신하는 쪽에서 호출되므로, 값을 직접 변경하는 서버에서는 실행되지 않음을 확인했습니다. SetIsAttacking에서 콜백을 직접 호출해 서버·클라이언트 동작을 일치시켰습니다.

05

멀티플레이 검증

Dedicated Server에 다중 클라이언트를 접속시켜 전투 상태와 액터 소멸이 모든 클라이언트에서 일치하는지 확인했습니다.

다중 클라이언트 전투
적 소멸 동기화
06

중복 발동 차단

공격이 반복 입력되는 문제를 Cooldown.Attack 태그와 ActivationBlockedTags로 차단해, 쿨다운 중 재발동을 막았습니다.

FEATURED 02

Unnamed

UE5 기반 오픈월드 RPG

PERIOD
2024.12 – 2025.02
TYPE
개인 프로젝트 · 기여도 100%
STACK
UE5.2 · C++ · Blender
01

핵심 메커닉

캐릭터 이동, 회피, 상호작용 등 기본 조작을 구현하고 Animation Blueprint와 IK로 동작을 연결했습니다.

이동·회피·상호작용
02

전투 시스템

공격, 피격 반응, 히트 판정을 구현했습니다. 중복 타격과 애니메이션 충돌 문제를 상태 전이 조건을 정리해 해결했습니다.

전투 (1)
전투 (2)
03

적 AI

Behavior Tree와 Blackboard로 감지·추적·공격 패턴을 구성했습니다. 감지 범위와 상태 전이 조건을 분리해, 여러 유형의 적을 같은 구조로 확장할 수 있게 했습니다.

04

장비 및 재화 시스템

장비 착용에 따른 외형·스탯 변경과 재화 획득을 구현했습니다.

장비 착용
재화 획득
05

오픈월드 최적화

Packed Level Actors를 적용해 반복 배치 오브젝트를 병합, 드로우콜을 줄였습니다.

Other Projects

03

VanguardDT

2025.11 – 12 · 3인 팀 · 차량 파트 외 전 영역

3D Gaussian Splatting 파이프라인을 구축하고 언리얼 엔진과 연동했습니다.

PythonPyTorchHuggingFaceUnreal Engine
04

zerojuice

2026.01 – 02 · 5인 팀 · 백엔드 · 웹/앱 클라이언트

자율주행 주차 관제 시스템. MQTT/REST 채널을 분리하고, JSON 40byte → 바이너리 12byte 전환과 ByteBuffer 엔디안 정합으로 응답 지연을 85% 단축했습니다.

JavaSpring BootMQTTMySQLAWSDockerReactReact Native
05

Thaw the Mask

Global Game Jam 2026 · 가면 시스템 · 레벨 디자인

글로벌 게임잼에서 하루 만에 완성한 Unity 2D 게임. 가면 시스템, 스테이지 선택, 타일맵 레벨 디자인을 담당했습니다.

UnityC#2D
06

AI Tools

2025.10 – 2026.02 · MCP 서버 개발 · 배포

백준 MCP 서버를 개발·배포하고, Unity에 MCP를 연결해 에셋 생성·레벨 배치를 자동화하는 실험을 진행했습니다.

MCPPythonUnity
03

Skills

게임 클라이언트부터 서버·시스템까지

Languages

C++C#JavaPython

Engines

Unreal Engine 5Unity

Systems & Tools

GASDedicated ServerSpring BootMQTTDockerAWS
04

Experience

경력 · 교육 · 자격 · 수상

Career

2026.07 – 08
KB국민은행
플랫폼제휴사업부 · 인턴
2023.04 – 2024.05
하나저축은행
디지털금융팀 · 계장
2022.08 – 12
큐비스트
마케팅팀 · 인턴

Education

2025.07 – 2026.06
SSAFY 14기
삼성청년SW·AI아카데미 · 임베디드
2024.07 – 11
Google ML Bootcamp
머신러닝 부트캠프

Certifications

2026.08
PCCP(코딩전문역량인증) Lv.3
C++ · 프로그래머스
2024.07
Deep Learning Specialization
DeepLearning.AI
2021.11
정보처리기사
한국산업인력공단
2021.10
SQLD
한국데이터산업진흥원

Awards

2026.08
KB 아이디어뱅크상
KB국민은행 하계 인턴십 AI·플랫폼개발부문
2026.02
SSAFY 공통 프로젝트 우수상
삼성전자
2025.12
SSAFY 성적 우수상
삼성전자