ALMA MATER STUDIORUM – UNIVERSITA’ DI
BOLOGNA
SECONDA FACOLTA’ DI INGEGNERIA
Corso di Laurea Specialistica in ingegneria dei Sistemi e
delle Tecnologie dell’Informazione
QUAKE AGENT
di
Rosaldi Marco
Manuale di installazione
Sommario
1-Introduzione
2-Obiettivi
3-Analisi
4-Progetto
5 - S i mu l a z i o n i
6-Conclusioni
Pag.2
Pag.2
Pag.2
Pag.3
Pag.8
Pag.8
Sistemi Intelligenti Distribuiti LS
A.A. 2004/05
1. Introduzione
Questo progetto rappresenta la conclusione del percorso
didattico effettuato durante il corso di Sistemi intelligenti
distribuiti
LS.
I l s i s t e m a p r o p o s t o è s t a t o d e n o mi n a t o Q u a k e A g e n t , e d è
liberamente ispirato al famoso gioco per PC.
2. Obiettivi
L ’ o b i e t t i v o d i q u e s t a e s e r c i t a z i o n e è q u e l l o d i c r e a r e u n s i s t e ma
ad Agenti capace di simulare una “battaglia virtuale” tra alcuni
p e r s o n a g g i i n t r o d o t t i a l l ’ i n t e r n o d i u n l a b i r i n t o , d e n o mi n a t o
Dungeon.
Gli agenti/personaggi avranno caratteristiche “fisiche” e
“i n t e l l e t t i v e ” d i f f e r e n t i t r a d i l o r o , c h e p e r m e t t e r a n n o a d e s s i d i
s o p r a v v i v e r e p i ù o m e n o fa c i l m e n t e a l l ’ i n t e r n o d e l l a b i r i n t o .
A l l a fi n e d e l l a s i mu l a z i o n e s o l o u n o t r a g l i a g e n t i d o v r à
s o p r a v v i v e r e a l c o mb a t t i m e n t o .
3. Analisi
Q u a k e è u n g i o c o t a n t o fa m o s o q u a n t o s e m p l i c e n e l l a s u a i d e a d i
base: alcuni personaggi giocanti si muovono all’interno di un
l a b i r i n t o e i l l o r o s c o p o è q u e l l o d i s o p r a v v i v e r e a l l e i n si d i e d e l
Dungeon portate sia dagli altri Players che da eventuali trappole
situate lungo la mappa.
I n p r i m a a n a l i s i e me r g o n o s u b i t o l e p r o b l e m a t i c h e p r i n c i p a l i
riguardanti la possibile realizzazione del sistema, ovvero quelle
relative all’astrazione della mappa di gioco (un labirinto
bidimensionale all’interno del quale individuare personaggi,
m u r i e t u t t o i l r e s t o t r a mi t e c o o r d i n a t e c a r t e s i a n e ) e a l l a
coordinazione/simultaneità degli agenti presenti nel sistema.
Tutte le considerazioni effettuate durante la fasi di progetto
d o v r a n n o p r e n d e r e i n e s a me u n i mp o r t a n t e r e q u i s i t o : i l s i s t e m a
va realizzato utilizzando degli Agenti che sappiano coordinarsi
t r a d i l o r o : p e r q u e s t o r i s u l t e r à fo n d a me n t a l e l ’ u t i l i z z o d i
T u c s o n c o me i n fr a s t r u t t u r a a l l a b a s e d e l p r o g e t t o e d i t u t t o c i ò
che ne consegue (tuple, spazi di tuple, Respect Language, ecc..).
4. Progetto
4.1 Il Dungeon
C o me p r i m a fa s e d e l l a p r o g e t t a z i o n e è s t a t a p r e s a i n
considerazione la problematica della mappa (o Dungeon), sulla
q u a l e s i d o v r a n n o mu o v e r e t u t t i i p e r s o n a g g i / a g e n t i c h e
p r e n d o n o p a r t e a l g i o c o . I l r i s u l t a t o fi n a l e d i t a l e s v i l u p p o , p e r
il quale si è tenuto conto di molte variabili quali la facilità di
astrazione e il movimento degli agenti all’interno della mappa
stessa, è risultato il seguente:
I l l a b i r i n t o s i p r e s e n t a c o me u n q u a d r a t o d i d i m e n s i o n i 2 0 x 2 0 ,
con 4 pseudo-stanze e numerosi corridoi; ogni posizione della
mappa è individuabile attraverso delle coordinate cartesiane del
tipo (X, Y). In figura sono indicati anche i punti cardinali, che
risulteranno poi utili per segnalare le direzioni prese dai
personaggi all’interno del Dungeon.
Si è quindi deciso di rappresentare i muri (per la precisione
c i a s c u n q u a d r e t t o d i p o s i z i o n e ( x , y ) d i c o l o r e ma r r o n e i n
f i g u r a ) c o me d e l l e t u p l e d e l t i p o :
- ‘ W a l l ’ (X , Y ) ;
che risulteranno in totale 144 più una indicante le dimensioni
d e l l a ma p p a , d e l t i p o :
- ‘Dungeon’(X, Y);
4.2 Gli Agenti
C o me p r i ma c o s a è i n d i s p e n s a b i l e i n s e r i r e t u t t e l e t u p l e
a l l ’ i n t e r n o d e l l o s p a z i o d i t u p l e r e l a t i v o a l l e i n fo r m a z i o n i s u l
D u n g e o n , c h e è s t a t o d e n o mi n a t o h e l l ; t a l e c o m p i t o s a r à s v o l t o
dall’unico agente non giocante che si occuperà in pratica solo di
preparare il “campo di gioco”.
I personaggi/agenti del nostro sistema dovranno avere
c a r a t t e r i s t i c h e d i v a r i o t i p o , p e r d i v e r s i fi c a r e i l l o r o
comportamento all’interno di esso. A questo proposito si è
p e n s a t o a 4 g i o c a t o r i d i “i n t e l l i g e n z a ” e “c a p a c i t à fi s i c h e ” d i
questo tipo:
IL GOBLIN
È l’elemento più vulnerabile di tutti. Possiede
1 0 0 L i fe - p o i n t s ( P u n t i - V i t a ) c h e s t a n n o a d
i n d i c a r e l a fo r z a fi s i c a d i c i a s c u n p e r s o n a g g i o .
Inoltre non possiede l’intelligenza necessarie per
rilevare le trappole all’interno del Dungeon, che
g l i i n fl i g g e r a n n o q u i n d i , s e i n n e s c a t e , n u m e r o s i
danni fisici.
IL TROLL
I n q u a n t o a c a p a c i t à fi s i c h e è m o l t o p i ù fo r t e d e l
Goblin e possiede infatti 200 Punti-Vita, ma
anche lui non ha l’intelligenza per disinnescare
le trappole.
IL RANGER
L a s u a p r e s t a n z a fi s i c a s t a a me t à t r a i l T r o l l e i l
Goblin, avendo a disposizione 150 Punti-Vita.
Oltre a questo però ha la capacità di rilevare e
disinnescare il 50% delle trappole all’interno del
labirinto.
IL PALADINO
E’ il personaggio più potente e intelligente di
tutto il gioco. I suoi Life-Points sono pari a
quelli del Troll, quindi 200, ma in più ha la
capacità di disinnescare qualsiasi trappola
presente all’interno del Dungeon, non subendone
così alcun effetto.
Ciascun personaggio comincia la sua battaglia partendo da una
d e l l e s t a n z e d e l l a b i r i n t o e d a l ì c o mi n c i a a mu o v e r s i a l l ’ i n t e r n o
di esso. Tutte le posizioni successive saranno indicate
all’interno dello spazio di tuple relativo, denominato arena, in
questo modo:
- ‘ N o m e P e r s o n a g g i o ’ (X , Y , L P )
dove X e Y stanno ad indicare le coordinate attuali e LP il
numero di Punti-Vita rimanenti.
4.3 Le trappole e i punti di partenza
L e t r a p p o l e s o n o p o s i z i o n a t e i n p u n t i s p e c i fi c i d e l l a m a p p a e i n
totale sono 6: scattano ogni qual volta un Player vi passa sopra
( s e m p r e c h e e s s o n o n s i a i n g r ad o d i d i s i n n e s c a r l e ) . O g n u n a d i
e s s e p u ò i n fl i g g e r e a l m a l c a p i t a t o d i t u r n o d a 4 fi n o a 1 0
L i fe p o i n t s .
Se un giocatore cade in trappola, l’evento verrà segnalato
t r a mi t e u n a t u p l a a l l ’ i n t e r n o d e l l o s p a z i o d i t u p l e a r e n a , i n
questo modo:
- ' N o m e P e r s o n a g g i o ’ o n t r a p ' (X , Y , 'D a m a g e : 4 ')
d o v e o l t r e a l l a s o l i t a i n fo r m a z i o n e s u l l a p o s i z i o n e è p r e s e n t e
anche il danno inflitto dalla trappola.
Nella seguente figura possiamo vedere i punti di partenza dei
Personaggi/Agenti (indicati con l’iniziale del nome) e le
trappole (segnalate con la lettera T):
4.4 I combattimenti
D u e p e r s o n a g g i e n t r e r a n n o i n c o mb a t t i m e n t o o g n i q u a l v o l t a s i
r i t r o v e r a n n o i n s i e me a l l ’ i n t e r n o d e l l a s t e s s a c a s e l l a . L ’ e s i t o
dello scontro sarà deciso in maniera molto semplice dai PuntiVita residui di ciascuno di essi: chi ha il maggior numero di
L i fe - P o i n t s u c c i d e i l n e m i c o , m a a s u a v o l t a s u b i s c e u n d a n n o
p a r i a i L P d e l l ’ a v v e r s a r i o me n o u n o . N e l c a s o s i i n c o n t r i n o d u e
g i o c a t o r i c o n u n n u me r o i d e n t i c o d i L P , v i n c e l o s c o n t r o c h i h a
a t t a c c a t o p e r p r i mo , o v v e r o c o l u i c h e h a f a t t o l ’ u l t i m o p a s s o
p r i ma c h e i d u e f o s s e r o a l l ’ i n t e r n o d i u n a s t e s s a c a s e l l a .
I c o mb a t t i m e n t i s o n o c o me s e m p r e s e g n a l a t i a l l ’ i n t e r n o d e l l o
spazio di tuple arena tramite la seguente tupla:
- 'NomePersonaggioA attacks NomePersonaggioB'
I n o l t r e , l ’ e s i t o d e l l o s c o n t r o s i p o t r à fa c i l m e n t e i n t u i r e d a
u n ’ u l t e r i o r e t u p l a r a p p r e s e n t a n t e i l P l a y e r u s c i t o s c o n fi t t o , i n
questo modo:
- ' N o m e P e r s o n a g g i o i s d e a d ' (X , Y , L P )
4.5 Esito finale della battaglia
L a p a r t i t a n o n t e r m i n e r à fi n o a q u a n d o n o n r i ma r r à u n s o l o
giocatore all’interno del Dungeon; a quel punto il vincitore
v e r r à s e g n a l a t o c o me s e m p r e i n a r e n a t r a m i t e l a t u p l a :
- ‘NomePersonaggio wins’
I n q u e s t o mo d o i l v i n c i t o r e v e r r à p u ò t e r mi n a r e i s u o i
movimenti, in quanto non ci sono più avversari da sconfiggere.
Q u e s t a s e g n a l a z i o n e è e ffe t t u a t a t r a mi t e l a t u p l a :
- ‘All_dead(1)’
4.6 Il Linguaggio Respect
Sia le trappole che i combattimenti sono stati simulati tramite il
linguaggio Respect, con il quale è stato possibile programmare
l o s p a z i o d i t u p l e a r e n a i n mo d o a p p r o p r i a t o p e r i mp l e m e n t a r e
la coordinazione degli agenti. Anche lo spazio di tuple hell
reagisce in modo predefinito ad alcuni eventi specifici, quali
l ’ i n s e r i m e n t o d i mu r i a l d i fu o r i d e l D u n g e o n o d i d i m e n s i o n i
n e g a t i v e d e l l o s t e s s o , a l fi n e d i c o n t r o l l a r e c h e t u t t e l e t u p l e
siano state inserite in maniera corretta.
5. Simulazioni
Per rendere comprensibile lo svolgimento delle simulazioni, è
s t a t o i n s e r i t o u n c o s i d d e t t o “r i t a r d o d i p a s s o ” ( p e r s o n a l i z z a b i l e )
ad ogni Agente/personaggio: in questo modo, in pratica, tra un
movimento e l’altro di ogni giocatore trascorrono circa due
secondi.
Sono state effettuate numerose simulazioni di battaglie virtuali
( c o n r i t a r d o d i p a s s o m o l t o i n fe r i o r e a i 2 s e c o n d i , p e r o v v i
m o t i v i d i t e mp o , a l s o l o s c o p o d i v e r i f i c a r n e l ’ e s i t o ) e c o me
fa c i l m e n t e p r o n o s t i c a b i l e s i è n o t a t o c o me i l P a l a d i n o h a la
m e g l i o s u g l i a v v e r s a r i i n a l me n o i l 7 5 % d e l l e b a t t a g l i e .
5. Conclusioni e future implementazioni
I n d e fi n i t i v a s i p u ò a f fe r ma r e c h e è s t a t o r a g g i u n t o a p i e n o l o
scopo di questa esercitazione, ovvero quello di realizzare un
sistema multi agente e di prendere confidenza con alcune
tecnologie, quali Tucson. E’ anche vero però che diversi aspetti,
p r i n c i p a l me n t e p e r p r o b l e mi d i t e mp o , s o n o s t a t i t r a s c u r a t i ,
c o m e p e r e s e m p i o u n a v i s u a l i z z az i o n e g r a fi c a d e l l a s i m u l a z i o n e
c h e p u ò e s s e r e p r e s a i n c o n s i d e r a z i o n e , a s s i e me a d a l t r i
miglioramenti, in un eventuale sviluppo futuro del progetto.
Scarica

Note - LIA