2009-06-18 10 views
0

Ich möchte ein BBG implementieren, die eine große Anzahl von Mitgliedern unterstützt und Echtzeit-Aktionen zur Verfügung gestellt.Echtzeit Browser basiertes Spiel

Mein aktuelles Spiel läuft, aber es scheint kurz zu brennen.

Die Methode, die ich verwende, ist Polling. Ich denke, die Verschwendung von Idle-Benutzer machen Server ausbrennen (Server ist in C# und Client ist Javascript)

Wie kann ich tun, um dies zu lösen?

Antwort

1

Sie werden immer eine Verzögerung haben. Ich bin mir nicht sicher, ob Sie die Abfrage von einzelnen Updates sind, aber Sie auf Taten einige der folgenden aussehen können die Verzögerung und intensive Server-Ressource zu senken: für alle Updates

  • Poll einmal. Wählen Sie nicht "Anzahl der Leben" in einem Anruf und "Position" in einem anderen, alles in einem Treffer.

  • Poll weniger, da es weniger Updates gibt. Ich frage häufig, wenn es viele Updates gibt. Ich frage weniger häufig, wenn es keine oder weniger neue Updates gibt.

  • Schließlich würde ich mehrere Updates mit einer Zeit für, als sie passiert sind, senden. Nehmen wir an, Spieler x bewegt sich auf 5,5 und attackiert jemanden und bewegt sich auf 5,8. Das wären drei verschiedene Ereignisse, die in einer Umfrage zurückkommen. Das Front-End wäre dafür verantwortlich, diese Änderungen im Laufe der Zeit auf eine Weise anzuzeigen, die für einen Benutzer sinnvoll ist.

Ich glaube nicht, dass dies eine endgültige Lösung ist. Dies ist eher ein Vorschlag, wie der Abfrage-Aspekt besser gehandhabt werden kann.

0

Wenn Sie wollen, dass etwas in Echtzeit reagiert, wird die Abstimmung nicht ausreichen. Sie müssen eine dauerhafte Verbindung über lang laufende HTTP-Verbindungen oder etwas anderes verwenden. (Comet)

+0

Ich habe über Comet recherchiert. Aber es scheint, dass es mehrere Anfragen nicht gut behandeln kann. Ich frage mich, wie man Kometen implementiert? – thethanghn

0

Dauerhafte Verbindungen/Polling in HTTP kann schwierig sein und wie Sie darauf hinweisen, nicht sehr effizient sowieso. Ich würde vorschlagen, zu einem pluginbasierten Spiel zu migrieren, das servergesteuerte Nachrichten unterstützt. Vielleicht Unity da es im Grunde für Spiele konzipiert ist, aber Flash, wenn Sie etwas ubiquitärer wollen.

Wenn Sie wirklich mit HTML bleiben wollen, kann eine hybride Lösung funktionieren, Nachrichten über das Plugin weitergeben und das DOM auf Antworten umschreiben.

+0

welches Plugin kann ich verwenden? – thethanghn

+0

Flash, Silverlight, Java und Einheit sollten alle tun, was Sie brauchen. – SpliFF

3

Vielleicht kann http://goldfishserver.com Ihnen von Nutzen sein (zB ein Comet-Server). Es bietet eine einfache API, um Push-Benachrichtigungen zu Ihren Webseiten zu ermöglichen. Kurz gesagt, wenn Ihre Daten aktualisiert werden, senden Sie sie (einige Nutzdaten) an die Goldfish-Server und Ihre Client-Browser werden benachrichtigt, mit den gleichen Daten.

Rundenbasierte Spiele sind ideal für Goldfish geeignet, obwohl je nach Design wahrscheinlich ein System der "großen Welt" verwendet werden kann.

Haftungsausschluss: Ich arbeite als Entwickler an Goldfischen.

Verwandte Themen