본문 바로가기
Unreal

FIFA 매칭 시스템

by ji-han 2025. 4. 25.

피파와 같은 1대1 대결 게임 같은 경우

멀티가 어떻게 진행이 되는 지를 알아보았을 때

 

1. 큐 시스템

  • 사용자(클라이언트)가 매칭 시작 -> 대기열 큐?에 등록
  • 서버는 조건(실력, 지역 등)에 따라 매칭
  • 클라이언트의 대기 시간에 따라 조건 완화

* 조건에 따라 대기열을 따로 만드는 가? 대기열 하나에서 검색 알고리즘?을 통해 조건에 맞는 상대를 매칭하는가?

라는 궁금증을 가짐

 

대기열은 하나를 두고 매치메이킹 알고리즘을 통해 상대를 찾는 방식이 일반적이라 함

  • 관리 편의성 : 대기열이 많아지면 접속자 수가 분산되어 매칭이 오래 걸릴 수 있음
  • 조건 로직 적용이 용이

2. 매치메이킹 백엔드 서버

  • 대기열을 관리하고 조건에 맞는 유저를 그룹핑
  • 매칭이 성사되면 게임 세션을 생성 및 할당

* 하나의 큐를 사용하는 이유 중 로직 적용이 용이한 이유가 

큐에 추가된 유저의 조건을 계산 후에 비슷한 조건의 유저를 찾아 매칭

매칭 시간이 길어질 수록 조건을 완화시키고 비슷한 조건의 유저를 찾아 매칭

여기서 "조건에 따라 비슷한 조건의 유저를 찾아 매칭" 이라는 것이 겹치고 그중에서

"찾아 매칭"이라는 것이 하나의 큐에서 적용하는 것이 용이하다 판단

 

3. 게임 세션 생성

 

언리얼에서 구현 방식

매칭 요청 GameInstance 또는 UI → 서버로 RPC 전송
매칭 로직 외부 서버에서 조건 판단
세션 생성 언리얼 서버 띄우기 or GameLift와 연동
접속 처리 ClientTravel()로 세션 입장

 

'Unreal' 카테고리의 다른 글

언리얼 스팀 연동  (0) 2025.05.09
쿼터뷰  (0) 2025.04.28
간단한 미니맵 만들기  (0) 2025.04.11
FPS / V-Sync  (0) 2025.04.02
Replication / RPC  (0) 2025.03.17