Di recente ho deciso di iniziare a scrivere un motore per un gioco di carte. Non sono un grande giocatore di "carte", ma un amico mi ha fatto conoscere il gioco (è un giro sul gioco danese) e mi sono innamorato.
Voglio sviluppare il gioco in 3 segmenti:
- Il motore di base, gestisce carte / mazzi / gamestate, ecc.
- Un'interfaccia utente (sotto forma di un'app Web mobile / desktop.)
- Un'intelligenza artificiale con varie strategie / difficoltà, ecc.
Questi sono progetti molto distinti, nella mia mente ... e sto lottando per vedere come si adatteranno tutti insieme a lungo termine. All'inizio, non voglio nemmeno essere in grado di "giocare" usando il motore. Il motore sarà testato principalmente dai test unitari. Il test di gioco non inizierà finché non esiste un client. Quindi c'è qualcosa di una relazione client-server qui.
Il motore è un pezzo molto grande del puzzle. Quello che vorrei sapere è: come svilupperesti l'API pubblica per questo motore?
Pensavo che il motore potesse essere un servizio Web molto semplice, che restituisce il suo stato tramite query a un'API RESTful, ma sono preoccupato che lo sviluppo del motore stesso come app Web possa portare a decisioni di programmazione inadeguate. (Ad esempio, se avessi scelto un micro-framework MVC, beh, questa API non avrebbe davvero viste ... sta solo restituendo oggetti serializzati tramite JSON o qualcosa del genere. È male usare MVC per un servizio come Questo? )
L'altra mia idea era che il motore fosse solo un'app console e in seguito avrei scritto un bridge di qualche tipo per reindirizzare i dati tra esso e l'app web. (Il bridge potrebbe davvero essere qualsiasi cosa. Voglio dire, il web server e il motore di gioco potrebbero entrambi essere inattivi in un server IRC e condividere il loro stato nei canali.)
Quale approccio seguiresti (sviluppalo come servizio web o sviluppalo come app autonoma e la ponte in un secondo momento), e perché?
Grazie Robbie.
EDIT: Quindi immagino che questo appartenga allo sviluppo del gioco. Per chiarire, ho intenzione di scrivere un motore di gioco di carte. Sto cercando di capire il modo migliore per esporre l'API del motore in modo che possa essere integrata in futuro con un client Web e un client AI.
Non avevo nemmeno un account qui, quindi ciao :)