이제 로비 서버를 분산 처리해 봅시다. 플레이어 간 매칭을 어떻게 하는지 살펴봅시다. 플레이어가 매칭을 할 때는 다음과 같은 것들이 필요합니다.
1. 플레이어의 실력 정보: 대다수 게임에서는 실력이 비슷한 플레이어끼리 매칭하려고 합니다. 실력 차이가 너무 많이 나는 플레이어끼리 매칭되면, 이기는 사람도 지는 사람도 그다지 재미가 없겠지요. 플레이어의 실력 정보는 게임 콘텐츠마다 다릅니다. 예를 들어 게임에서 이긴 횟수와 진 횟수, 성장시킨 플레이어 캐릭터의 능력치 등입니다.
2. 매칭하기 버튼을 눌러서 대기 중인지 여부: 매치메이킹을 기다리고 있지 않은 플레이어를 함부로 매칭시켜 게임 시작을 시키면 안 되겠지요. 즉, 모든 플레이어는 “나는 지금 매칭을 기다리는 중이다.”라는 여부를 담은 불형(boolean) 값을 가져야 합니다.
▲ 그림 10-27 매치메이킹 대기 여부 확인
매치메이킹이 성립하려면 최소한 다음 조건을 충족해야 합니다.
• 나는 지금 매칭을 기다리고 있습니다.
• 너도 지금 매칭을 기다리고 있습니다.
• 너와 내 실력은 비슷합니다.
정리하자면, 매치메이킹을 위해 필요한 데이터의 이러한 조건들을 만족하는 플레이어 목록입니다.