Frage

Ich bin zur Codierung eines Online-rundenbasiertes RPG für eine Zuordnung. Im Spiel können die Spieler miteinander chatten und ihre Aktionen senden, sobald sie eine Umdrehung vollenden. Was ist der beste Weg, um Pflege des Datenaustausches zwischen den Spielern zu nehmen. Sockets oder Speicherung aller Informationen in einer Datenbank und das Programm in regelmäßigen Abständen nicht Anfragen nach Updates zu überprüfen? Es sei denn, es gibt einen besseren Ansatz.

Bitte beachten Sie, dass das Spiel breit Maßstab sein soll, das heißt eine Menge Spieler sein wird, eine Reihe von Spielen simultaniously auf demselben Sever hat, so muß ich versuchen, so effizient wie möglich zu sein.

War es hilfreich?

Lösung

In Silverlight können Sie nur mit dem Host verbinden zurück, die die Silverlight-Anwendung bedient, so dass Client-Client-Sockets ausschließt. Alles, was in Ihrem Spiel (einschließlich Chat) wird über einen Server gehen.

Windows Communication Foundation (WCF) ist ganz nett mit in Silverlight2 zu arbeiten. Ihr Spiel Mit rundenbasiertes macht die Dinge ein wenig einfacher, weil es bedeutet, müssen Sie nicht genau das gleiche Spiel-Zustand zwischen den Spielern in Echtzeit (dh: nicht dem Ziel für max 100 ms Latenz) halten müssen

.

Andere Tipps

Verwenden Sie WCF, wenn es möglich ist.

Es gibt zwei große Möglichkeiten. Sie können die Sockel Kommunikation anwenden oder Sie können die Duplex WCF verwenden. Hier sind die Vor- und Nachteile:

Sockel => bessere Leistung gegenüber kleineren Produktivität
Duplex WCF => schlechtere Leistung, aber eine höhere Produktivität

Es gibt einige große Beispiele im Netz für beide scenerios aber wenn auf die Lösung hier WCF entscheiden, sind einige der Ressourcen:

sehr gutes Tutorial von Peter McG.
Informationen über Duplex WCF von Msdn.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top