이 문제가 해결된다고 하더라도 또 다른 문제가 있습니다. 어떤 게임에서는 캐릭터 행동이 여러 다른 캐릭터에 한꺼번에 영향을 주기도 합니다. 예를 들어 수많은 몬스터 무리가 한곳에 밀집해 있는데, 플레이어가 그 몬스터들 머리 위에 천둥 번개를 쏟아붓는 경우를 생각해 봅시다. 이 상황에서 몬스터 처리 서버가 분리되어 있으면 게임 서버와 몬스터 처리 서버 간에 엄청난 양의 메시지가 오가야 합니다. 이처럼 분산 처리된 게임에서 플레이어가 광역 버프나 광역 공격 스킬을 쓸 때 순간적으로 지연 현상이 발생하거나, 최악의 경우 서비스가 중단되기도 합니다.
의미 있는 분산 처리를 하려면 먼저 성능 분석을 해야 합니다. 코드 프로파일러 같은 도구를 이용해서 분산 처리를 하기 전, 게임 서버 안에서 NPC 처리 코드가 실행 시간을 얼마나 점유하는지 분석해 봅시다. 그림 10-34는 한 예입니다.
▲ 그림 10-34 분산하기 전 서버의 성능 분석 결과