이와 같은 유형의 게임에서는 다른 접근법이 필요합니다. 에픽게임즈가 리플리케이션 그래프 플러그인을 개발한 이유가 바로 그 때문이라고 할 수 있습니다. 리플리케이션 그래프(Replication Graph)는 대규모 멀티플레이어 게임에 문제 없이 스케일됩니다. 불필요한 작업을 줄이고, 데이터를 계속 계산하는 대신 캐시함으로써 서버 CPU 문제를 완화해주기 때문입니다. 이를 위해 리플리케이션 그래프는 액터가 게임 내에서 담당하는 역할에 따라, 또한 다른 액터들과의 관계는 어떠한지에 따라 액터마다 다르게 처리합니다. 이뿐만 아니라 복수의 액터, 복수의 클라이언트, 심지어는 복수의 프레임에 사용될 데이터를 저장해둡니다.
리플리케이션 그래프 플러그인을 활용하면 네트워크 리플리케이션을 커스터마이징함으로써, 기존의 전통적인 리플리케이션 방식으로는 불가능했을 대규모 멀티플레이어 게임을 개발할 수 있습니다.
리플리케이션 그래프의 작동 방식
리플리케이션 그래프에 포함된 일련의 리플리케이션 그래프 노드가 빌드하는 목록에 따라, 액터는 요청 시 각 클라이언트에 리플리케이트 해줍니다. 해당 노드들은 지속 오브젝트로서 복수의 프레임을 걸쳐 데이터를 저장할 수 있으며 클라이언트 접속 간 결과를 공유할 수 있습니다. 매 프레임별로 각 접속마다 액터를 일일이 계산하는 대신, 노드로는 그보다 더 작은 세트의 데이터로 작업할 수 있습니다. 이러한 지속적이고 공유된 데이터 덕분에 리플리케이션 그래프 시스템은 클라이언트를 위해 신속하게 리플리케이션 리스트를 생성하며, 이런 점에서 대규모 멀티플레이어 게임에 원활하게 스케일됩니다.
리플리케이션 그래프 시스템은 접속과 액터에 대한 더욱 일관성 있는 데이터 구조를 제공하기 때문에 관련된 데이터를 끄집어내어 파이프라인의 다음 단계로 재빨리 옮겨놓기에 용이합니다.
리플리케이션 그래프 플러그인을 통해 어떤 액터를 어떤 접속에 리플리케이트 해야 하는지 결정할 수 있습니다. 즉 액터 채널을 언제 어떻게 열 건지, 해당 채널에 액터를 언제 리플리케이트 할 건지, 또 해당 채널을 언제 닫을지 커스터마이징이 가능합니다. 이로써 생산성은 증대시키고 불필요한 중복은 제거할 수 있습니다.
리플리케이션 그래프 노드
포트나이트의 리플리케이션 그래프의 전반적인 레이아웃
리플리케이션 그래프 노드는 서로 다른 작업을 담당하도록 세분되어 있으며, 여러분의 게임 작동 방식을 상세하게 작성할 수 있습니다. 예를 들어, 그중 하나는 플레이어의 상태(Player States)를 추적하는 목록을 담당하고 다른 하나는 항상 연관된(Always Relevant) 리플리케이션을 추적하는 식입니다. 작업을 서로 다른 노드로 분리하여 리플리케이션이 필요한 부분이 무엇인지를 더 효율적인 방식으로 분류하고, 비용을 절감할 수 있습니다. 예를 들어 ‘그리드 공간화 2D(Grid Spatialization 2D)’노드는 월드를 그리드 셀로 분할하고, 각 셀에 보이는 액터의 목록으로 정리합니다. 이로써 클라이언트는 각 액터를 원거리에서 확인할 필요가 없게 됩니다. 현재 점유 중인 그리드 셀을 확인하고 해당 셀에 속한 가시 액터 목록을 복사하기만 하면 됩니다. 액터를 적절한 노드에 등록하는 것만으로도, 해당 액터는 게임 내 역할에 가장 적합한 방식으로 리플리케이션되게끔 계산됩니다.
결론
만일 여러분이 100개의 (혹은 그 이상의) 클라이언트가 접속해서 수천 개의 액터로 가득한 월드를 누비는 게임을 개발 중이라면, 사상 최대 수준의 최적화를 제공하는 리플리케이션 그래프 시스템을 활용해 온라인에서 부드럽게 운영되는 대규모 멀티플레이어 게임을 제작해 보세요.
리플리케이션 그래프 플러그인은 현재 얼리 액세스 로 공개된 상태이며, 향후 API에 작은 변경사항들이 적용될 수 있습니다. 참고로 본 시스템은 대규모 게임을 제작 중인 전문가만을 대상으로 개발된 것입니다. 하지만, 코드는 안정적이며, 엄중한 테스트를 거쳤을 뿐만 아니라 포트나이트 배틀로열의 한 부분에 사용됨으로써 라이브 활용사례도 검증된 상황입니다. 지금 바로 리플리케이션 그래프 시스템을 사용해보시려면 여기를 클릭해서 여러분의 프로젝트에 해당 시스템을 적용하는 방법을 알아보세요. 또는 슈터게임(ShooterGame, 에픽게임즈 런처에서 다운받을 수 있습니다) 샘플을 살펴보면 포트나이트에 사용된 것과 유사한 리플리케이션 그래프를 확인해보실 수 있습니다.
더 많은 정보를 확인하기 원하신다면, 에픽게임즈의 리플리케이션 그래프 문서를 참고하시거나 아래의 라이브스트림을 시청하세요.