Anteprima
Vedrai una selezione di 10 pagine su 44
Conquest of Paradise tesina Pag. 1 Conquest of Paradise tesina Pag. 2
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Conquest of Paradise tesina Pag. 6
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Conquest of Paradise tesina Pag. 11
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Conquest of Paradise tesina Pag. 16
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Conquest of Paradise tesina Pag. 21
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Conquest of Paradise tesina Pag. 26
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Conquest of Paradise tesina Pag. 31
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Conquest of Paradise tesina Pag. 36
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Conquest of Paradise tesina Pag. 41
1 su 44
Disdici quando vuoi 162x117
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Sintesi
Introduzione Conquest of Paradise tesina


In questa tesina di maturità ho voluto presentare Conquest of Paradise, un gioco a piattaforme single-player scritto in linguaggio JAVA. Nel corso dei 9 diversi livelli, pensati secondo la simbologia dantesca del numero 3,
propone al giocatore di “aiutare” Dante nella sua riconquista del Paradiso tenuto in scacco dal Diavolo aiutato da tutti i “cattivi” che, in un modo o nell’altro, hanno fatto parlare di loro durante la Storia. Da Erode a Hitler passando per Dracula e Stalin l’utente dovrà avvicinarsi sempre di più a Satana cercando di sconfiggerlo nell’ultimo livello.
Ogni Boss di livello è aiutato dagli stessi loschi personaggi che, durante la permanenza sulla Terra, lo hanno coadiuvato nelle sue malefatte.
I livelli in un crescendo di difficoltà sono organizzati in ordine cronologico sulla linea del tempo seguendo passo passo l’avvicendarsi dei cattivi rappresentati: Erode prima di Nerone, Jack lo Squartatore prima di Stalin e a seguire tutti gli altri. Il gioco, pur essendo single-player in senso stretto, permette l’utilizzo, sulla stessa copia, di giocatori diversi, ognuno con la sua percentuale di completamento e con i comandi da lui scelti, modificabili dal menu.
Il menu, sempre scritto in Java, è un progetto “autonomo” del componente del gruppo Guido Magrin che ha creduto fortemente nella sua idea di un menu animato, sebbene non fosse di facile realizzazione. E’ giusto precisare che ogni singolo elemento grafico presente nel gioco è originale essendo stato realizzato da un duo di disegnatori esterni che hanno lavorato sulle precise richieste dei membri del gruppo. E’ stata così seguita l’impostazione del lavoro che avviene nella realtà dove, le software house, che producono videogiochi, non si prendono in carico anche la parte grafica degli stessi ma la assegnano ad aziende specializzate del settore lavorando quindi “solo” sul codice che la anima oltre a tutta l’effettiva struttura del gioco stesso. E’ quindi motivo di orgoglio dire che, in via teorica, il prodotto è assolutamente commercializzabile non avendo violato alcun vincolo in materia di copyright o diritto d’autore. Partendo quindi dall'analisi di questo videogioco, ho anche effettuato nella tesina anche dei collegamenti interdisciplinari con le varie materie scolastiche.

Collegamenti

Conquest of Paradise tesina


Informatica - Java (gioco), SQL (Pagina web con database).
Sistemi - Programmazione JSP (Pagina web, www.conquestofparadise.tk).
Italiano - Dante (Inferno e Paradiso).
Storia - Russia (Stalin - comunismo), Germania (Hitler - nazismo), Francia (Napoleone).
Estratto del documento

-Menu

Il menu essendo stato fin da subito sviluppato come progetto completamente indipendente

dal gioco e, solo verso la fine, unito ad esso, merita un ampio paragrafo a sé stante

scollegato, ma non troppo, da quanto detto fin qui.

Allo scopo di renderlo visivamente gradevole, non offrendo Swing alcun componente che

si potesse avvicinare a risultati degni di nota, è stato deciso di implementare delle apposite

librerie appartenenti al progetto Vlcj che potessero offrire funzionalità adatte a raggiungere

lo scopo ambito. Vlcj (acronimo di VLC Java) è un progetto open source completamente

gratuito che permette di integrare alla perfezione un componente MediaPlayer in una

qualsiasi interfaccia Swing per consentire la riproduzione di video tramite il noto lettore

multimediale VLC; al fine di utilizzare Vlcj si è reso necessario importare nel progetto le

seguenti librerie:

- Vlcj (versione 2.2.0);

Jna, acronimo di Java Native Access (versione 3.5.0);

- Platform (versione 3.5.1).

-

Inoltre, per la corretta visualizzazione dei video, è stato indispensabile includere all’interno

della cartella delle risorse le librerie libvlc.dll e libvlccore.dll proprie dell’installazione di

VLC; entrambe necessitano a loro volta di altri file, i plugin di VLC, che permettono la

decodifica e riproduzione di tutti i contenuti multimediali più conosciuti.

Dal momento che Vlcj richiede librerie differenti a seconda che si stia usando una versione

della JVM (Java Virtual Machine) a 32 o 64 bit è stato necessario implementarle entrambe

insieme ad un sistema che controlla la versione da caricare in maniera runtime.

Oltre a riprodurre video di qualsiasi genere, Vlcj consente anche di integrare un Player

Audio all’interno dell’applicativo in grado di “suonare” ogni genere di file musicale; tale

funzionalità è adoperata per la riproduzione della colonna sonora. I pulsanti sono realizzati

tramite semplici JLabel Swing ad ognuna delle quali è associato un array di immagini

rappresentanti i bottoni. Ciascun array presenta dalle 3 alle 4 immagini differenti:

l’immagine del pulsante standard, l’immagine del pulsante selezionato, l’immagine del

pulsante premuto e, in alcuni casi, l’immagine del pulsante non disponibile (quindi in

bianco e nero). Il caricamento dinamico delle immagini è realizzato tramite appositi

Keyboard Listener; ogni pulsante è dotato di un proprio metodo in grado di renderlo

funzionante. Essendo tutti i bottoni istanziati, creati e posizionati all’avvio del programma è

sufficiente che i metodi cambino il valore dell’attributo di visibilità tramite il metodo

setVisible() con “True” per visualizzarli, “False” per nasconderli. Sono presenti pulsanti per

attivare e disattivare Musica ed Effetti Sonori (sia del gioco che del menu) corredati di

appositi led che, tramite l’assunzione di colore verde o rosso, segnalano lo stato di

attivazione delle rispettive funzioni. Ove necessario (per esempio nell’indicazione in alto a

sinistra di: “Benvenuto, nome_giocatore”) è stato caricato e usato il font adoperato per la

realizzazione di tutti gli altri pulsanti, in maniera da tenere continuità grafica con il resto del

menu (il font utilizzato è denominato 1456Gutenberg). Il menu supporta il caricamento

runtime di utenti salvati nella cartella data/ (della quale si è largamente parlato in

precedenza), del livello da essi sbloccato e dei loro eventuali comandi personalizzati.

L’operazione è portata a compimento svolgendo, in ordine, i seguenti compiti: caricamento

della lista degli utenti precedentemente creati dal file listaUtenti.cqp, accesso a tutte le

cartelle delle quali è stato trovato un riscontro nel file precedentemente letto, caricamento

dei file relativi al massimo livello sbloccato (livello.cqp) e ai comandi personalizzati

(comandi.cqp). E’ importante sottolineare che il menù non si occupa mai del salvataggio

Conquest of Paradise! 11

né degli utenti né delle loro impostazioni personalizzate, tale compito è affidato

esclusivamente al gioco stesso.

Il menu è in grado di gestire il cambio dei comandi assecondando le esigenze e

preferenze dell’utente; sono supportati tutti i tasti dalla lettera ‘a’ alla ‘z’ e i numeri da ‘0’ a

‘9’ nonché la barra spaziatrice (il tasto ‘escape’, unico tasto non modificabile, permette di

mettere in pausa il gioco).

Prima che l’utente apporti modifiche, i tasti sono così mappati:

- d, movimento avanti;

a, movimento indietro;

- w, salto;

- barra spaziatrice, sparo.

-

Così come il resto del gioco, anche il menu risulta essere completamente scalabile in ogni

sua parte con una risoluzione teorica massima di 1920x1080, risoluzione oltre la quale il

video di background inizierebbe a perdere definizione.

Un limite noto è l’incompatibilità con sistemi di tipo Macintosh, non essendo Vlcj in grado

di caricare le proprie librerie su tali architetture. Questa problematica è stata però risolta

effettuando un controllo durante le prime fasi dell’applicativo permettendo, agli utenti Mac,

di fruire di un menu statico in maniera “trasparente”.

-Sito web

A supporto del progetto è stato realizzato un sito web dinamico di presentazione scritto in

linguaggio Php ( http://conquestofparadise.tk ). Esso è composto da una parte statica

scritta in HTML che descrive brevemente le caratteristiche del gioco (oltre a consentirne il

download) e da una parte dinamica che permette all’utente di segnalare eventuali errori

riscontrati nell’utilizzo per sottoporli all’attenzione degli “sviluppatori”. Tutto ciò è stato

possibile utilizzando il noto servizio di web hosting Altervista che offre, in forma

completamente gratuita, uno spazio web, un motore Php e un database MySQL;

successivamente tramite il sito http://dot.tk si è ottenuto un dominio di tipo .tk

(gratuitamente, sfruttando la curiosa politica dell’isola di Tokelau) reindirizzando poi ad

esso il domain name di Altervista.

Conquest of Paradise! 12

Suddivisione dei compiti

A differenza del lavoro riguardante il menu che, come già detto precedentemente, è stato

svolto totalmente da Guido Magrin, è difficile, per quanto concerne il gioco, assegnare la

paternità di una o dell’altra parte a ciascuno dei restanti componenti.

Si procede quindi a macro aree di più facile assegnazione:

Massimo Belloni ha ideato e scritto l’algoritmo di ridimensionamento alla base della

gestione grafica dell’applicazione ponendolo come punto di partenza alla realizzazione

della stessa. Oltre a questo ha ovviamente contribuito alla scrittura e all’ideazione di tutto il

codice che gestisce l’applicazione; ha infine realizzato, autonomamente, il sito web di

presentazione scritto sopra.

Stefano Bartoli ha, insieme a Belloni, scritto il maggior numero di “linee di codice”

dell’applicativo contribuendo con idee e spunti risolvendo anche alcune problematiche

difficili e complesse. Ha infine realizzato in autonomia l’intero livello 9, a partire dall’idea

alla base dello stesso.

Ivan Capra si è occupato principalmente della fase di “aerea” di Dante e della sua

gestione scrivendo la classe Salto e la classe Ostacoli, che sono, probabilmente, le più

complesse a livello di algoritmo di tutto il progetto. Si è infine occupato della risoluzione di

tutti i bug introdotti dalle sue classi e non.

Ogni componente del gruppo ha portato a termine i compiti assegnatigli con tempismo

ragguardevole secondo lo schema temporale riportato nel prossimo paragrafo.

Calendario avanzamento attività

Il progetto ha preso forma durante la prima settimana di novembre 2012; nel primo

incontro, come è ovvio che sia, si è decisa la linea che il gioco avrebbe dovuto prendere

sotto tutti i punti di vista. Guardando a posteriori quel primo incontro è interessante vedere

come tutte le idee che si erano pensate, anche le più difficili o fantasiose, sono state

effettivamente realizzate.

Nelle settimane immediatamente successive si è valutata la fattibilità di quanto pensato

iniziando a scrivere le prime linee di codice. L’inizio ufficiale del progetto è quindi databile

intorno al 15 novembre. Successivamente il progetto è avanzato in maniera costante

senza incappare in battute d’arresto importanti o in problemi degni di nota; da sottolineare

come, proprio in questo periodo, Guido Magrin si “staccava” dal progetto principale per

cominciare la stesura del suo menu. Data fondamentale e “storica” per Conquest of

Paradise è quella del 21 dicembre in quanto, proprio in quella data, si è conclusa la

realizzazione del primo livello quindi si è conclusa tutta la struttura portante e reggente

dell’applicazione che da lì in poi è stata “semplicemente” ampliata.

Mantenendo quindi il ritmo di un livello a settimana salvo qualche eccezione data dal

carico di studio scolastico o da impegni vari si è arrivati alla conclusione dei primi 8 livelli in

data 2 aprile 2013. Il livello 9, più impegnativo dei precedenti, è stato realizzato in un paio

di settimane. Il progetto, pur continuando a risolvere bug e problemi continuamente

riscontrati, è stato terminato durante la seconda settimana del mese di maggio

integrandolo con il menu di Magrin, anch’esso concluso negli stessi momenti.

L’organizzazione del lavoro è stata ben bilanciata e armoniosa, ognuno ha svolto senza

ritardi o procrastinamenti i compiti a lui assegnati; la “tabella di marcia” è stata rispettata a

pieno riuscendo a sviluppare un gioco completo, funzionante e assolutamente utilizzabile

e fruibile.

Conquest of Paradise! 13

Consegna e distribuzione progetto

Conquest of Paradise è, all’atto pratico, costituito da un file eseguibile .jar e dalle directory

citate lungo questa relazione. Il download dello stesso è disponibile sul sito

http://conquestofparadise.tk o richiedibile su chiavetta USB.

Non è necessaria alcuna configurazione aggiuntiva rispetto all’installazione della JVM.

Sullo stesso sito verranno rilasciati anche tutti gli aggiornamenti a seguito di modifiche o

migliorie.

Conquest of Paradise! 14

Conquest of

Paradise

Area di Progetto 5

Informatica

A.S. 2012-2013

Scelta del linguaggio java

Applicativo Java (Java bytecode)

Java Virtual Machine (JVM)

Sistema operativo (Microsoft Windows, Apple Mac, Linux, …)

Hardware

Computer

26/09/2022 Magrin Guido - 5 Inf A - AS 2012-2013

Evoluzione del protagonista- Dante

26/09/2022 Magrin Guido - 5 Inf A - AS 2012-2013

Scenari di gioco

livelli 1-2-3 livelli 4-5-6 livelli 7-8-9

26/09/2022 Magrin Guido - 5 Inf A - AS 2012-2013

Primo set di scenari

1° livello

2° livello

3° livello

26/09/2022 Magrin Guido - 5 Inf A - AS 2012-2013

Secondo set di scenari

4° livello

5° livello

6° livello

26/09/2022 Magrin Guido - 5 Inf A - AS 2012-2013

Terzo set di scenari

7° livello

8° livello

9° livello

26/09/2022 Magrin Guido - 5 Inf A - AS 2012-2013

Struttura gerarchica delle risorse

img

root backgrounds

media font characters

sound menu

video ostacoli

vlc panelGameOver

data panelPausa

utenti nomeUtente1

nomeUtenteN

26/09/2022 Magrin Guido - 5 Inf A - AS 2012-2013

Realizzazione del Menu- 1

Librerie del progetto Vlcj:

• Vlcj - 2.3.1

• JNA (Java Native Access) - 3.5.2

• Platform - 3.5.2

• libvlc.dll e libvlccore.dll - 2.0.7

Altre librerie:

• Prompt - 0.99.8

26/09/2022 Magrin Guido - 5 Inf A - AS 2012-2013

Realizzazione del Menu- 2

26/09/2022 Magrin Guido - 5 Inf A - AS 2012-2013

Realizzazione del Menu- 3

Creazione nuovo utente o caricamento esistente

26/09/2022 Magrin Guido - 5 Inf A - AS 2012-2013

Realizzazione del Menu- 4

Creazione nuovo utente

26/09/2022 Magrin Guido - 5 Inf A - AS 2012-2013

Realizzazione del Menu- 5

Verifica della presenza di un

utente con lo stesso nome già

salvato

Controlli presenza e

lunghezza minima e massima

nome nuovo utente

26/09/2022 Magrin Guido - 5 Inf A - AS 2012-2013

Realizzazione del Menu- 6

Caricamento utente già esistente

26/09/2022 Magrin Guido - 5 Inf A - AS 2012-2013

Realizzazione del Menu- 7

dall’utente

Caricamento dei livelli sbloccato

e dei suoi comandi personalizzati.

26/09/2022 Magrin Guido - 5 Inf A - AS 2012-2013

Realizzazione del Menu- 8

Dettagli
Publisher
44 pagine
2 download