단 전부는 하지 말고 플레이어 목록 중 게임 시작을 눌러 매치메이킹을 기다리는 것들만 동기화하는 것이 경제적입니다.
4. 반대로 매칭 대기 취소 버튼을 누르면 3과 마찬가지로 로비 서버 1은 다른 서버한테 ‘매칭 대기 중 = FALSE’라고 알려 줍시다.
5. 플레이어 목록에는 플레이어가 어느 로비 서버에 있는지 정보도 같이 있어야 합니다. 그래야 게임방 시작을 할 때 해당 플레이어의 로비 서버에 메시지를 보낼 수 있기 때문입니다. 예를 들어 로비 서버 1에 접속한 플레이어 A와 로비 서버 3에 접속한 플레이어 B가 매칭됩니다. 이를 판단한 서버는 로비 서버 1입니다. 그러면 로비 서버 1은 로비 서버 3에 “플레이어 B를 배틀 서버 XX로 보내라.”라는 명령을 보내야 합니다. 플레이어가 어느 로비 서버에 있는지 정보는 이때 필요합니다.
이 과정을 시퀀스 다이어그램과 함께 살펴봅시다.
▲ 그림 10-29 매치메이킹 분산 처리의 시퀀스 다이어그램