2012-11-22 13 views
5

Sto creando un server per il mio gioco e ho pensato che fosse una buona idea provare scala e akka. Ho letto la documentazione un po 'in fretta e ho avuto un'idea di architettura. Ma prima di fare qualsiasi cosa pensavo di poter chiedere agli utenti più esperti se stavo facendo una buona strada.Akka e architettura server di gioco

Fondamentalmente il mio server di gioco riceve Array [Byte] con collegamento: http://backchatio.github.com/hookup/ (websocket!) Dal client e ospita un certo numero di "party". Si suppone che decodifichi la matrice [byte] in dati più strutturati con sBinary, quindi li interpreti associando i dati strutturati alla parte che si suppone debba essere inviata.

Quindi vengo in questa architettura: un attore principale riceve matrice [byte (master! ricevere quei dati strutturati delegarli a un lavoratore interprete che capisca i dati strutturati e cambi lo stato del gioco corrispondente che è contenuto in una mappa di memoria delle transazioni del software [Id, Party], quindi rispedisce l'ordine che ha ricevuto avvolto in un Controllato (ordine: ordine) se la parte afferma che è un ordine valido per il cliente che può ora assumere che il suo ordine è corretto e interpretarlo nella sua versione di partito.

+0

invece dell'STM, perché non utilizzare un attore per partita e avere lo stato di gioco nell'attore? Al momento sto scrivendo un gioco di scacchi con websockets, play e akka e questo funziona bene per me. –

risposta

1

Forse si vuole dare un'occhiata a Akka IO per sfruttare l'IO non bloccante per i pacchetti di dati e Akka Finite State Machine per implementare lo stato del gioco.

Potrebbero tornare utili per il tipo di cose che vuoi fare.

+0

Ho davvero bisogno di web socket perché la mia applicazione Android ne ha bisogno. Non vedo davvero come tu usi qui le FSM, perché mi illumini. – Atol

+0

Sto leggendo ora che 'hookup' ha la sua buona scelta per protocolli efficienti standard, quindi penso che tu abbia ragione su 'Akka IO'. Per quanto riguarda 'FSM', invece, ho pensato che potesse essere usato per implementare lo stato del gioco senza ricorrere a' STM', perché la coerenza dello stato è garantita dal modello dell'attore 'FSM'. Ma forse sapevi già di "Akka FSM" e hai i tuoi buoni motivi per ritirarlo. –