2016-06-10 21 views
2

Ich versuche zu verstehen, was genau ist Photon Networking Master Client. Docs geben die folowing Nutzungsszenario für diesen Begriff:Wann sollte Photon Networking Master Client verwendet werden?

In Abwesenheit eines Servers, kann es für die Logik der Handhabung verantwortlich gemacht werden, dass sollte nur von einem Client in einem Raum ausgeführt werden (zB Starten eines Spiels wenn jeder ist bereit).

Warum sollte ich einige Serverfunktionen an einen der Clients delegieren? Ist Photon Server nicht immer verfügbar?

Zum Beispiel in this Photon Tutorial sie verwenden Zitat "sehr praktische Funktion":

PhotonNetwork.automaticallySyncScene = true

Wenn dies der Fall ist, kann der MasterClient PhotonNetwork.LoadLevel() aufrufen und alle angeschlossenen Spieler wird automatisch laden das gleiche Niveau.

Warum geben Sie einem der Clients die Möglichkeit, alle zu synchronisieren, wenn sie Photon Server dafür haben?

Fazit Ich habe 2 Fragen:

1) Was genau ist ein Client-Master ist?

2) Was sind typische Anwendungsszenarien?

Vielen Dank!

Antwort

3

Photon Server kann tatsächlich ein wenig tun. Im Grunde hilft es nur Kunden, sich mit Nachrichten auszutauschen.

Da der Server keine Spiellogik ausführen kann, haben Sie zwei Möglichkeiten: Entweder führen Sie die Spiellogik parallel auf allen Clients aus oder wählen Sie einen Client, der alle Berechnungen durchführt und den resultierenden Spielstatus an alle anderen Clients sendet. Mit einem solchen autoritativen Client ist es viel einfacher, alle Clients synchron zu halten.

Sie sollten sich nicht viel darum kümmern, welcher Client der Master ist. Es wird automatisch zugewiesen. Wenn der aktuelle Master die Verbindung trennt, übernimmt der nächste Client in einem Raum. Sie können den Master-Client bei Bedarf noch manuell wechseln.

Wenn Sie eine Spiellogik implementieren, verwenden Sie die PhotonNetwork.isMasterClient-Eigenschaft, um zu überprüfen, ob der aktuelle Client ein Master ist. Wenn Sie eine Aktion vom Nicht-Master-Client auslösen möchten, senden Sie einfach RPC an einen Master und bitten Sie um eine Aktion.