Sto pensando di sviluppare un gioco multiutente in tempo reale, e voglio raccogliere alcune informazioni sulle possibilità prima di fare qualche sviluppo reale. Ho pensato al modo migliore per porre la domanda, e per semplicità, il modo migliore che mi è venuto in mente è stato quello di fare un'analogia con il campo di gioco (o campo da gioco) irebase.
Nel campo di gioco di darebase , ci sono due o più basi. Per iniziare, c'è una squadra su ogni base. Il gioco è un gioco di fantasia di tag. Quando due persone si incontrano sul campo, la persona che ha lasciato la sua base più recentemente a tempo acquisisce l'altra persona. Poi tornano alla base di quella persona.
Il gioco continua fino a quando tutti fanno parte della stessa squadra.
Quindi, analizzando ciò con un gioco per computer online, supponiamo che ci sia un numero indefinito di basi. Quando una persona inizia il gioco, ha una squadra che si trova a, ad esempio, le sue attuali coordinate GPS. Potrebbe essere un mondo virtuale, ma a fini di discussione, supponiamo che il mondo virtuale corrisponda alle reali coordinate GPS del giocatore.
Il software di gioco consulta quindi il database per vedere dove si trova l'altra base più vicina che è online e le due squadre giocano il loro gioco di tag virtuale. Nota che l'utente dell'altra base potrebbe avere una base diversa da quella gestita dall'utente corrente come base più vicina a lui, nel qual caso, si troverebbe in due battaglie simultanee, una con ciascuna base.
Quando vanno offline, lo stato dei loro giocatori viene salvato su un server da qualche parte. La logica di gioco richiede che i giocatori abbiano qualche tipo di logica di automa, in modo che possano difendersi autonomamente usando le regole di base, fino a quando il loro utente non ritorna online. L'utente non controlla direttamente i movimenti dei giocatori, ma emette direttive generali che influenzano la logica di movimento dei giocatori.
Penso che questa analogia sia sufficiente per inquadrare la mia domanda.
Ho guardato a smartfoxserver, ma non sono ancora convinto che sia l'opzione migliore o addirittura che funzioni affatto.
Una possibilità, ovviamente, sarebbe quella di implementare il mio server web, ma preferirei non farlo se esiste già un servizio esistente che potrei sfruttare.
Nota che darbase non è il gioco che intendo implementare, ma, riflettendo, potrebbe non essere una cattiva idea neanche.
Quello che sto cercando, in particolare, è un'architettura appropriata che può fare le seguenti cose:
-
Agisci come archivio di stati di gioco salvati
-
Fornisci una struttura che consente a più giocatori di comunicare tra loro.
-
(facoltativamente) eseguendo alcune delle logiche di gioco, ad esempio, nel gioco di darbase, chi determina chi ha etichettato chi? È uno o entrambi client o è il server?
Non sono mai stato coinvolto in un ambiente multi-utente in tempo reale, quindi posso solo immaginare le insidie di una decisione rispetto a un'altra.