2012-06-02 5 views
5

Ich möchte versuchen, ein einfaches Spiel für das Web zu schreiben, mit den Websockets und HTML-5-Technologien, und ich denke über dies mit Play Framework und Scala zu tun. Aber die Art von Spiel, die ich machen möchte, ist eine mit einer hartnäckigen Welt, in der Dinge selbst passieren, und nicht nur als Spieleraktionskonsequenzen, was bedeutet, dass es nicht zur staatenlosen Philosophie des Spiels passt. Ich habe versucht, einen separaten Thread in der Play-Anwendung zu starten, der wie ein normaler persistenter Gameserver mit einer laufenden Welt funktionieren würde, und es scheint zu funktionieren. Wie können Sie das kommentieren?Spielen Rahmen als Spiel-Server

  • Werden mir bei diesem Ansatz einige große Probleme begegnen?
  • Gibt es dafür eine bessere Lösung und Einrichtung? Was verwendet ppl normalerweise für solche Dinge, abgesehen von Standalone-Servern (nicht http)?
  • Können Sie eine interessante Erfahrung mit einem ähnlichen Problem teilen?
+5

Ich denke, es wird perfekt passen. Stateless in diesem Sinne bedeutet kein Zustand in einer Benutzersitzung, die zwischen Anforderungen gehalten wird. Aber natürlich haben Sie Staat, beharrlich in einer Datenbank oder vorübergehend in einem Cache von Stateful Akka Schauspielern. Letzteres ist dein Weg, IMHO ;-) –

+0

Toller Kommentar, würde eigentlich für die Antwort passen, vor allem mit Blick auf die Aktivität))) Danke für die Ermutigung, ich werde dann für den Typesafe Stack gehen. – noncom

+0

Viel Glück ;-) Lassen Sie uns wissen, wie es in der Google-Gruppe funktioniert! –

Antwort

4

Do not mess up persistent mit einem "immer laufenden Thread Informationen aktualisieren".

In den meisten Fällen speichern solche Spiele nur die letzte Aktualisierungszeit und sie berechnen neue Werte basierend auf der Zeit zwischen dem letzten und dem letzten Update. Jedes Web-Framework oder jede Technologie kann das tun. Selbst wenn ich ein großer Fan/Süchtiger bin, glaube ich nicht, dass das persistente Argument ausreicht.

Aber wenn Sie brauchen:

  • gute WebSockets Integration,
  • Unterstützung starken Verkehr,
  • massive Parallelität ohne massiven Server

dann in der Tat, Playframework könnte Ihre Wahl sein.

+0

Ich verstehe, was Sie sagen - über die Berechnung des Staates aus der Zeit. Aber es sollte eine große Anzahl von veränderbaren Objekten geben und der funktionale Ansatz ist rechenintensiv. Das Ganze wird von MongoDB unterstützt, aber ich meine das wörtlich - "gesichert" - ich will es nur benutzen * * für tägliche Snapshots und für den Fall des Herunterfahrens des Servers. Ich denke, Play wird es tun. Ich habe erfolgreich eine Proof-of-Concept-Lösung implementiert. Jetzt ist es nur eine Frage der Erziehung. – noncom

+0

Viel Glück in diesem Fall;) –