이 프로젝트는 Google의 오픈소스 매칭 프레임워크인 Open Match와 Kubernetes 기반 게임 서버 호스팅 플랫폼인 Agones를 결합하여 확장 가능한 멀티플레이어 게임 매칭 시스템을 구현한 샘플입니다.
시스템은 .NET 9.0 기반의 마이크로서비스 아키텍처로 구성되어 있으며, gRPC를 통해 서비스 간 통신을 수행합니다.
- LobbyServer: 플레이어의 매칭 요청(RequestMatch) 수신 및 매칭 상태(GetMatchStatus) 조회 담당
- MatchDirector: 매칭 사이클(Cycle)을 관리하며 Open Match Backend에서 생성된 매치에 대해 Agones Allocator를 호출하여 실제 게임 서버를 할당함
- MatchFunction: 실제 매칭 로직이 실행되는 컴포넌트로, 대기 중인 티켓들을 풀(Pool)에서 조회하여 그룹화함
- GameServer: Agones Fleet에 의해 관리되는 실제 게임 로직 서버 (gRPC 기반의 간단한 채팅 및 플레이 커맨드 구현)
- Shared: 각 서비스에서 공통으로 사용하는 모델 및 유틸리티 클래스
- Runtime: .NET 9.0 / .NET 8.0
- Frameworks: Open Match, Agones
- Communication: gRPC (Protocol Buffers)
- Containerization: Docker, Docker Compose
- Orchestration: Kubernetes (k8s)
- src/
- LobbyServer/: 유저 진입점 gRPC 서비스
- MatchDirector/: 매칭 엔진 중재 및 서버 할당기
- MatchFunction/: 매칭 알고리즘 구현체
- GameServer/: 샘플 전용 게임 서버
- Shared/: 공통 데이터 모델 및 라이브러리