2017-05-15 16 views
0

딥 스트림 및 멀티 플레이어 게임에서 본 튜토리얼에서 전체 게임 상태가 동기화되었습니다. 성능과 보안상의 이유로 각 플레이어가 볼 수있는 다른 플레이어의 상태 만 받아야하는 대규모 멀티 플레이어 게임에서는 허용되지 않습니다. 깊은 흐름에서이를 수행하는 데 가장 좋은 패턴은 무엇입니까? 데이터 동기화를 사용하지 않고 하나의 주제/플레이어를 사용하고 각 서버 틱에 대해 관련 주 하위 집합 만 각 플레이어 주제에 게시합니다.Deepstream : 대규모 멀티 플레이어 게임에서 상태의 하위 집합을 동기화하는 방법

당신은 어떻게 생각하십니까? 이 유스 케이스에 자동 필터링 기능이 있습니까?

당신의 도움에 감사드립니다.

답변

1

개인 맞춤 이벤트를 사용하는 것이 가장 좋습니다. 사용자가 1234이고 게임이 abcd에 가입 한 경우처럼 game/abcd/1234/movement 이벤트를 구독 할 수 있습니다. 해당 이벤트는 다음과 같은 메시지를 수신 할 수 있습니다.

{ 
    "player": 5678, 
    "x": 70, 
    "y": 90 
} 

원하는대로 이벤트 이름을 자유롭게 디자인 할 수 있습니다. 요점은 게임 ID, 수신기의 사용자 ID 및 이벤트 유형에 대한 식별자를 포함한다는 것입니다. 그렇게하면 백엔드가 데이터를 필요로하는 사용자에게만 데이터를 보낼 수 있습니다.

+0

그래, 그게 내가 함께 온 해결책이다. 감사! – lambdacalculus