Comments
Description
Transcript
Turn Based Game - Carmine Carella
TURN BASED GAME STRUTTURA GENERALE La struttura generale del progetto è un’implementazione del modello MVC: JSP SERVLET DATABASE Model View Controller SESSION BEAN SESSION BEAN FACADE TURN BASED GAME ELENCO FUNZIONALITA’ • Registrazione e login • Creazione partita e gestione opzioni • Join a partite già esistenti • Caricamento partite iniziate • Generazione mappe • Rendering mappe • Interfacciamento al gioco • Creazione azioni • Commit e inizializzazione nuovo turno TURN BASED GAME REGISTRAZIONE E LOGIN REGISTRAZIONE: • Inserimento dati utente • Richiesta di registrazione • Controllo dati lato server • Persistenza dati LOGIN: • Inserimento credenziali • Verifica dati • Risposta TURN BASED GAME CREAZIONE PARTITA E JOIN A PARTITE CREAZIONE PARTITA: • Inserimento nome partita • Scelta mappa esistente o creazione nuova mappa • Controlli lato server • Persistenza della nuova partita JOIN PARTITE GIA’ ESISTENTI : • Selezione della partita e del nick name • Richiesta di join alla partita • Aggiunta del nuovo giocatore alla partita • Attivazione del timer, raggiunta la soglia di utenti minimi TURN BASED GAME CARICAMENTO PARTITE INIZIATE • Scelta della partita • Il primo giocatore che entra inizializza la partita • Richiesta di caricamento della mappa, al session • Richiesta di rendering della mappa caricata, al session TURN BASED GAME GENERAZIONE MAPPE • Mappe create in maniera casuale • Morfologia del territorio • Collocazione intelligente di spot di partenza • Posizionamento delle risorse • Conversione da grafo a Entity Bean • Persistenza TURN BASED GAME RENDERING DELLE MAPPE • Calcolo dei centri degli esagoni • Rendering drawMap* STATEFUL MAP DRAWER SESSION BEAN loadgame.jsp RENDERING ENGINE (ottiene la stringa come attribute della richiesta http) drawMap* SERVLET GENERICA TURN BASED GAME INTERFACCIAMENTO AL GIOCO • Click su di un oggetto della mappa • Calcolo delle azioni disponibili • Risposta al client get*AvailableAction() (AJAX) GetAvailable ActionServlet loadgame.jsp Risposta (AJAX) TURN BASED GAME CREAZIONE AZIONI 1 2 loadgame.jsp ServletDiAzione ServletDiAzione ActionInProgressServlet loadgame.jsp 3 loadgame.jsp ServletDiAzione TURN BASED GAME CREAZIONE AZIONI 1 2 loadgame.jsp paginaSceltaAzione.jsp paginaSceltaAzione.jsp ServletDiAzione loadgame.jsp TURN BASED GAME COMMIT E INIZIALIZZAZIONE NUOVO TURNO • Switch da coda temporanea a coda definitiva • Il primo giocatore che rientra nella partita inizializza il nuovo turno • Gestore turno esegue le azioni del turno appena concluso • Ogni servlet implementa il metodo actionHandler