2010-01-20 13 views
7

Estoy construyendo un sitio que tiene mucho en común con un sitio de ajedrez personal. Estaba pensando en utilizar Rails para el front-end (registro de usuario, navegación, etc.) y algo así como Scala o Erlang para el motor (estado del juego y tal vez AI). Me preguntaba -Creando un sitio de juego mutliplayer

  1. ¿Es esta una buena situación para usar ese tipo de diseño?
  2. ¿Cuál sería exactamente la mejor manera de dividir la funcionalidad entre los componentes?
  3. ¿Cómo se comunicarían mejor entre ellos?

Estoy abierto a cualquier tecnología o idea.

+1

¿Qué beneficio quieres de Rails?Si me refiero a usarlo para la creación de cuentas de usuario y buscar personas con las que jugar, lo entenderé, pero si por "front-end" te refieres a jugar al ajedrez, no veo cómo podría ayudarte. Al igual que si estuviera desarrollando una aplicación web basada en una base de datos CRUD-ish, Rails 'ORM saltaría y gritaría "TE BENEFICIÉY A TU PROYECTO" ... por algo tan' real 'como el ajedrez, yo no Siento que veo lo que Rails hará por ti. Por otra parte, solo he leído mucho sobre Rails, así que estoy hablando por mi culo y espero que se demuestre que está equivocado;) –

+0

¿Cuáles son sus definiciones de "interfaz" y "motor"? Tu pregunta es un poco vaga. –

+0

Estas preguntas no tienen mucho sentido. ¿Desea crear una aplicación, sin importar cuál, con ese diseño, o específicamente desea crear una aplicación de ajedrez? –

Respuesta

7

Si está utilizando Rails para el front-end, ¿por qué no usar Ruby?

Si le gusta la idea de usar Scala, ¿por qué no utilizar Lift para el front-end?

2

Comenzaría leyendo http://www.htdp.org/ Cómo diseñar programas. Las preguntas que ha hecho son muy amplias y difíciles de responder sin las declaraciones de prefijo con "Creo que ..."

Lo codificaría en clojure (pero así soy yo).

+0

Sin duda podría hacer mucho peor que clojure. Me encanta la programación funcional, pero no me gusta el ceceo. Pero si lisp te habla, clojure te ofrece un lisp moderno con fácil uso de las bibliotecas estándar de la industria. Si no quiere desgastar sus teclas 9 y 0, scala tiene muchas de las mismas características que clojure, en un sabor bastante diferente. Pero sí, por favor, por amor a Dios, use un lenguaje moderno. –

3

El ajedrez se basa en turnos, y tiene una placa muy simple que se puede manejar con mejoras HTML y/o Javascript, por lo que el modelo básico fluye muy bien con los marcos web existentes.

Con esto en mente, Rails es una gran opción para crear una aplicación basada en web. Rails no se limita a las aplicaciones crud, y de hecho creo que puede escribir toda su aplicación en Rails/Ruby; realmente no necesita tener un motor externo.

Dentro del espacio del navegador, la votación para las actualizaciones de turno se puede hacer usando XMLHttpRequest y una base de datos puede mantener el juego actual y el estado de turno.

3

Parece una simple aplicación de elevación para mí. No tengo experiencia con Lift, eso sí, pero no parece particularmente más complejo que la aplicación de chat que a menudo es demoed.

1

Actualmente estoy desarrollando una suite de juegos en línea, usando Scala. Ha sido absolutamente fantástico: mi lógica de juego es mucho más fácil de corregir con el tipado estático, etc., y lidiar con el protocolo de servidor/cliente (un cliente de flash, en este caso) se simplifica mediante el uso de Buffers de Protocolo de Google.

Si eres un gran admirador de RoR, no dudes en utilizarlo. Creo que la mayoría de los lenguajes estáticos son terribles para programar sitios web en (Java, te estoy mirando aquí), pero Scala se deshace del 90% del dolor y da aún más seguridad.

Por supuesto, puede que no sea su taza de té. Pero trataría de hacer todo en Scala, y agregar otra capa si eso no lo hace por usted.

+0

Además, dependiendo de lo que estés haciendo, es posible que te guste Sun's Project Darkstar. Cualquier lenguaje JVM puede usarlo, y hace que los juegos en línea para varios jugadores sean fáciles de desarrollar. –

1

Para la pregunta 1 Sí Y para 2 y 3, necesita dar más información para obtener una respuesta que podría ayudarlo.

Ahora estoy haciendo algo parecido a ti, pero para el frente voy a usar Grails. La razón es muy simple: me gusta Grails, Scala y quiero mezclarlos :)

Cuestiones relacionadas