2010-01-20 7 views
7

Sto costruendo un sito che ha molto in comune con un sito di scacchi di persona-a-persona. Stavo pensando di usare Rails per il front-end (Registrazione Utente, Navigazione, ecc.) E qualcosa come Scala o Erlang per il motore (stato del gioco e forse AI). Mi stavo chiedendo -Costruire un sito di gioco di mutliplayer

  1. E 'una buona situazione usare questo tipo di design?
  2. Come sarebbe esattamente meglio suddividere la funzionalità tra i componenti?
  3. Come potrebbero comunicare meglio tra loro?

Sono aperto a qualsiasi tecnologia o idea.

+1

Quale beneficio vuoi da Rails?Se intendi usarlo per la creazione dell'account utente e cercare le persone con cui giocare ecc. Posso capire, ma se per "front end" intendi il gioco degli scacchi, non vedo come ti possa aiutare. Ad esempio, se stavo sviluppando un'applicazione web basata su database CRUD-ish, l'ORM di Rails mi saltava addosso e urlava "I BENEFICIO E IL TUO PROGETTO" ... per qualcosa come "tempo reale" come scacchi, io Mi sento come se capissi cosa farà Rails per te. Poi di nuovo, ho letto solo Rails in modo approfondito, quindi sto parlando fuori di testa e non vedo l'ora di essere smentito;) –

+0

Quali sono le tue definizioni di "front-end" e "engine"? La tua domanda è abbastanza vaga. –

+0

Queste domande non hanno molto senso. Vuoi creare un'applicazione, non importa quale, con quel design, o vuoi specificamente creare un'applicazione di scacchi? –

risposta

7

Se si utilizza Rails per il front-end, perché non utilizzare Ruby?

Se ti piace l'idea di utilizzare Scala, perché non utilizzare Lift per il front-end?

2

Vorrei iniziare leggendo http://www.htdp.org/ Come progettare programmi. Le domande che hai posto sono molto ampie e difficili da rispondere senza dichiarazioni prefissate con "Credo che ..."

Lo classificerei in clojure (ma sono solo io).

+0

Si potrebbe certamente fare molto peggio di clojure. Adoro la programmazione funzionale ma non mi piace molto. Ma se il lisp ti parla, clojure ti offre un moderno lisc w/facile utilizzo di librerie standard del settore. Se non vuoi consumare i tuoi tasti 9 e 0, scala ha molte delle stesse caratteristiche del clojure, con un sapore piuttosto diverso. Ma sì, per favore l'amore di Dio usa un linguaggio moderno. –

3

Gli scacchi sono a turni e hanno una scheda molto semplice che può essere gestita con miglioramenti HTML e/o Javascript, quindi il modello di base scorre abbastanza bene con i framework web esistenti.

Con questo in mente, Rails è un'ottima scelta per la creazione di un'applicazione basata sul web. Rails non è solo limitato alle applicazioni crude, e infatti penso che possa scrivere l'intera app in Rails/Ruby - non è necessario avere un motore esterno.

All'interno dello spazio del browser, il polling per gli aggiornamenti delle svolte può essere eseguito utilizzando XMLHttpRequest e un database può mantenere il gioco corrente e lo stato di svolta.

3

Mi sembra una semplice applicazione di sollevamento. Non ho esperienza con Lift, badate bene, ma non sembra particolarmente complesso rispetto all'applicazione di chat che è così spesso demoed.

1

Attualmente sto sviluppando una suite di giochi online, utilizzando Scala. È stato assolutamente fantastico - la mia logica di gioco è molto più semplice da ottenere con la tipizzazione statica, ecc., E gestire il protocollo server/client (un client flash, in questo caso) è reso più semplice tramite l'uso di Google Protocol Buffers.

Se sei un grande fan di RoR, lo usi con tutti i mezzi. Penso che la maggior parte dei linguaggi tipizzati staticamente sia terribile per programmare i siti web in (Java, ti sto guardando qui), ma Scala si sbarazza del 90% del dolore e dà ancora più sicurezza.

Naturalmente, potrebbe non essere la vostra tazza di tè. Ma proverei a fare tutto in Scala, e aggiungere un altro livello se non lo fa per te.

+0

Inoltre, a seconda di cosa stai facendo, ti potrebbe piacere il progetto Darkstar di Sun. Qualsiasi linguaggio JVM può usarlo e rende i giochi online multiplayer uno snap da sviluppare. –

1

Per la domanda 1 Sì E per 2 e 3 è necessario fornire ulteriori informazioni al fine di ottenere una risposta che potrebbe essere di aiuto.

Ora sto facendo qualcosa come te ma per il front end userò Grails. Il motivo è molto semplice: mi piacciono Grails, Scala e voglio mescolarli :)