로비 서버가 한 대면 이 목록은 로비 서버가 가지면 됩니다. 로비 서버가 여러 대로 나뉘어 있다면 이 플레이어 목록에 어떻게 액세스해야 할까요? 9장에서 다루었던 서버 간 상호 작용을 구현하는 방식 세 가지를 검토합시다.
• 동기 분산 처리
• 비동기 분산 처리
• 데이터 복제에 기반을 둔 로컬 처리
동기 분산 처리는 다른 로비 서버의 플레이어 목록을 뒤지는 데 서버 간 통신 횟수가 너무 많습니다. 비동기 분산 처리는 어떨까요? 매치메이킹을 위한 의사 코드를 살펴봅시다.
Match(player) { var list; for (p in players) // ➊ { if (p != player && p. && SimilarTo(player. , p. ) // ➋ { list.add(p); } } if (list. = = 9) { StartGameRoom(list); } }