2010-01-20 3 views
7

Ich baue eine Seite, die viel mit einer Person-auf-Person-Schachseite gemeinsam hat. Ich dachte daran, Rails für das Front-End zu verwenden (Benutzerregistrierung, Navigation, etc.) und etwas wie Scala oder Erlang für die Engine (Spielstatus und vielleicht KI). Ich frage mich -Erstellen einer Mutliplayer-Spielseite

  1. Ist das eine gute Situation, diese Art von Design zu verwenden?
  2. Wie genau wäre es am besten, die Funktionalität zwischen den Komponenten aufzuteilen?
  3. Wie würden sie am besten miteinander kommunizieren?

Ich bin offen für alle Technologien oder Ideen.

+1

Welchen Vorteil möchten Sie von Rails?Wenn Sie meinen, es für die Erstellung von Benutzerkonten zu verwenden und nach Leuten zu suchen, mit denen ich spielen kann, kann ich das verstehen, aber wenn Sie mit "Frontend" das Schachspiel meinen, sehe ich nicht, wie es Ihnen helfen würde. Wenn ich zum Beispiel eine Datenbank-gesteuerte CRUD-ish-Web-App entwickle, dann würde Rails 'ORM auf mich losspringen und "ICH NUTZEN SIE UND IHR PROJEKT" schreien ... für etwas wie' Echtzeit ', wie Schach, ich nicht Ich fühle nicht, dass ich sehe, was Rails für dich tun wird. Dann noch einmal, ich habe nur ausgiebig über Rails gelesen, also rede ich aus meinem Arsch und freue mich darauf, das Gegenteil bewiesen zu haben;) –

+0

Was sind deine Definitionen von "Front-End" und "Engine"? Deine Frage ist irgendwie vage. –

+0

Diese Fragen ergeben wenig Sinn. Möchten Sie eine Anwendung erstellen, egal mit welchem ​​Design, oder möchten Sie speziell eine Schachanwendung erstellen? –

Antwort

7

Wenn Sie Rails für das Front-End verwenden, warum nicht Ruby?

Wenn Sie die Idee mit Scala verwenden möchten, warum nicht Lift für das Front-End verwenden?

2

würde ich durch das Lesen http://www.htdp.org/ Wie Design-Programme starten. Die Fragen, die Sie gestellt haben, sind sehr weit gefasst und schwer zu beantworten, ohne dass "Ich glaube daran ..." vorangestellt wird.

Ich würde es in clojure codieren (aber das bin nur ich).

+0

Sie könnten sicherlich viel schlimmer als Clojure tun. Ich liebe funktionale Programmierung, bin aber nicht wirklich in Lispeln. Aber wenn Lisp zu Ihnen spricht, bietet Clojure Ihnen ein modernes Lispeln mit einfacher Verwendung von Industriestandard-Bibliotheken. Wenn Sie Ihre 9 und 0 Tasten nicht ausnutzen wollen, hat scala viele der gleichen Funktionen wie clojure, in einem etwas anderen Geschmack. Aber ja, bitte für die Liebe Gottes eine moderne Sprache verwenden. –

3

Chess ist rundenbasiert und hat ein sehr einfaches Board, das mit HTML- und/oder Javascript-Verbesserungen behandelt werden kann - so dass das Basismodell recht gut mit bestehenden Web-Frameworks funktioniert.

Vor diesem Hintergrund ist Rails eine gute Wahl für eine webbasierte Anwendung zu schaffen. Rails ist nicht nur auf Crud-Anwendungen beschränkt, und ich denke, dass Sie Ihre gesamte App in Rails/Ruby schreiben können - Sie brauchen nicht wirklich eine externe Engine.

Innerhalb des Browserbereichs kann die Abfrage von Turn-Updates mithilfe von XMLHttpRequest durchgeführt werden, und eine Datenbank kann das aktuelle Spiel und den Turn-Status beibehalten.

3

Sieht aus wie eine einfache Lift-Anwendung für mich. Ich bin nicht mit Lift erfahren, wohlgemerkt, aber es scheint nicht besonders komplex als die Chat-Anwendung, die so oft ist demoed.

1

Ich entwickle gerade eine Reihe von Online-Spielen mit Scala. Es war absolut fantastisch - meine Spiellogik ist viel einfacher mit der statischen Typisierung usw. zurecht zu kommen, und der Umgang mit dem Server/Client-Protokoll (in diesem Fall ein Flash-Client) wird durch die Verwendung von Google Protocol Buffers vereinfacht.

Wenn Sie ein großer Fan von RoR sind, verwenden Sie das auf jeden Fall. Ich denke, dass die meisten statisch getippten Sprachen schrecklich sind, Webseiten zu programmieren (Java, ich schaue dich hier an), aber Scala beseitigt 90% der Schmerzen und gibt noch mehr Sicherheit.

Natürlich könnte es nicht Ihre Tasse Tee sein. Aber ich würde versuchen, das ganze Ding in Scala zu machen und eine weitere Ebene hinzuzufügen, wenn das für dich nicht ganz ausreicht.

+0

Je nach dem, was Sie gerade tun, könnte Ihnen Suns Project Darkstar gefallen. Jede JVM-Sprache kann sie verwenden, und es macht Multiplayer-Online-Spiele zu einem Kinderspiel. –

1

Für Frage 1 Ja Und für 2 und 3 müssen Sie mehr Informationen geben, um eine Antwort zu erhalten, die Ihnen helfen könnte.

Jetzt mache ich so etwas wie Sie, aber für das vordere Ende werde ich Grails verwenden. Der Grund sind sehr einfach: Ich mag Grails, Scala und ich möchte sie mischen :)