Un Sis ema de Con ol Au ónomo pa a
Pe sonajes de Videojuegos Basado en el
Modelo Cogni i o C eencia-Deseo-In ención
Alejand o Sánchez López
Fe nando Rome o de la Mo ena
Héc o Ma ín Solís
GRADO EN INGENIERÍA DEL SOFTWARE
FACULTAD DE INFORMÁTICA
UNIVERSIDAD COMPLUTENSE DE MADRID
TRABAJO DE FIN DE GRADO
DE INGENIERÍA DEL SOFTWARE
Mad id, Junio de 2016
Di ec o : P o . D . D. Fede ico Peinado Gil
2
Au o ización de di usión y u ilización
Los abajo i man es, alumno/s y u o /es del T abajo Fin de G ado (TFG) en el G ado en
………………………………………………………………………………………… de
la Facul ad de …………………………………………………..………, au o izan a la
Uni e sidad Complu ense de Mad id (UCM) a di undi y u iliza con ines académicos,
no come ciales y mencionando exp esamen e a su au o el T abajo Fin de G ado (TF)
cuyos da os se de allan a con inuación. Así mismo au o izan a la Uni e sidad
Complu ense de Mad id a que sea deposi ado en acceso abie o en el eposi o io
ins i ucional con el obje o de inc emen a la di usión, uso e impac o del TFG en In e ne
y ga an iza su p ese ación y acceso a la go plazo.
Pe iodo de emba go (opcional):
6 meses
12meses
TÍTULO del TFG:
……………………………………………………………………………………………
Cu so académico: 20….. / 20…..
Nomb e del Alumno/s:
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
Tu o /es del TFG y depa amen o al que pe enece:
……………………………………………………………………………………………
Fi ma del alumno/s Fi ma del u o /es
3
Ag adecimien os y dedica o ia
Que íamos ag adece , en p ime luga , a nues o di ec o de p oyec o Fede ico Peinado
Gil, que ha es ado desde el p ime momen o olcado en el p oyec o así como en el
equipo de Na a ech, siemp e con buena ac i ud, an o en el momen o de elici a nos
con los log os que íbamos consiguiendo, como cuando nos egañaba pa a que no nos
du miésemos en los lau eles, así como po oda la ayuda e ideas que nos ha
p opo cionado.
En segundo luga , a los he manos Pé ez Colado, po habe desa ollado la he amien a
que hemos u ilizado pa a el desa ollo del en o no g á ico: IsoUni y; que ambién han
p es ado su ayuda al explica nos su uncionamien o cuando es u imos es ancados.
También, den o del mismo equipo, ag adece el buen abajo en equipo y la ac i ud
p oac i a que siemp e se ha enido, ha hecho más ácil y ameno el desa ollo de odo el
p oyec o.
Po úl imo, pe o no menos impo an e, ag adecemos a nues os amigos y amilia, su
opinión y con inua alo ación de los esul ados que íbamos ob eniendo du an e la
ealización del p oyec o que nos ayuda on a e nues o p opio abajo desde o o pun o
de is a.
G acias a odos po ues a colabo ación.
4
Índice
Au o ización de di usión y u ilización ....................................................................... 2
Ag adecimien os y dedica o ia .................................................................................. 3
Índice ............................................................................................................................ 4
Índice de igu as .......................................................................................................... 6
Resumen ....................................................................................................................... 7
1. In oducción ........................................................................................................... 9
2. Re isión del es ado del a e ................................................................................. 11
2.1. Tecnología pa a c ea pe sonajes in e ac i os en ideojuegos .................... 11
2.2. Agen es au ónomos ...................................................................................... 16
2.3. Agen es in eligen es en con ol de pe sonajes de ideojuego ...................... 23
3. Obje i os .............................................................................................................. 26
3.1. In eg ación Jason – IsoUni y........................................................................ 27
3.2. Escena io de na a i a eme gen e con agen es BDI ..................................... 28
4. Me odología y he amien as ................................................................................ 29
4.1. Hi os ............................................................................................................. 29
4.2. Me odologías ................................................................................................ 30
4.3. He amien as ................................................................................................ 31
5. Con ibución y esul ados .................................................................................... 36
5.1. Especi icación: La expe iencia na a i a de ejemplo ................................... 36
5.2. Análisis y Diseño: In eg ando Jason con IsoUni y ...................................... 37
5.3. Implemen ación: P oducción del escena io y los pe sonajes del ideojuego
38
5.4. P uebas: Expe imen os con a ias ejecuciones de la expe iencia ................ 42
6. Discusión ............................................................................................................. 44
6.1. Discusión sob e los esul ados ob enidos ..................................................... 44
6.2. Discusión sob e el sis ema p opues o........................................................... 45
7. Conclusiones y abajo u u o .............................................................................. 49
7.1. Conclusiones ................................................................................................ 49
7.2. T abajo u u o ............................................................................................... 50
8. Re e encias .......................................................................................................... 52
5
9. Anexos ................................................................................................................. 55
Anexo 1. Ti le .......................................................................................................... 55
Anexo 2. In oduc ion ............................................................................................. 56
Anexo 3. Conclusions ............................................................................................. 58
Anexo 4. Manual de ins alación .............................................................................. 59
Anexo 5. Con ibuciones de los pa icipan es ......................................................... 65
6
Índice de igu as
Fig. 2.1: Max Payne 3 (2012), enemigo di isando a jugado . ....................................... 12
Fig. 2.2: GTA V, pe sonaje asus ado po e un a ma .................................................. 12
Fig. 2.3: Splin e Cell Blacklis (2013), enemigo en ale a ........................................... 13
Fig. 2.4: Killzone Shadow Fall (2013), enemigos u ilizando escomb os pa a p o ege se
........................................................................................................................................ 13
Fig. 2.5: Decisiones de The Wol Among Us que modi ica án el umbo de los
acon ecimien os. ............................................................................................................. 14
Fig. 2.6: Conducción del D i a a TM en Fo za Mo o spo ......................................... 15
Fig. 2.7: Ejemplo de una lógica p oposicional ami icada ............................................ 18
Fig. 2.8: Relación del en o no y los agen es .................................................................. 18
Fig. 2.9: Ejemplo de código ASL .................................................................................. 19
Fig. 2.10: Ejemplos de planes ........................................................................................ 20
Fig. 2.11: Ejemplos de goals ......................................................................................... 20
Fig. 2.12: Ejemplo g á ico de agen es comunicándose sob e un en o no ..................... 21
Fig. 2.13: In e acción en e en o no y agen e. ............................................................... 22
Fig. 2.14: Diag ama de clases pa a el en o no. El en o no pe sonalizado del usua io
he eda á de la clase En i onmen . .................................................................................. 22
Fig. 2.15: T ip y G ace p o agonis as de Façade ........................................................... 23
Fig. 2.16: logo de P om Week ....................................................................................... 24
Fig. 2.17: Ejemplo de na ación in e ac i a, uno de las aplicaciones ecopiladas en el
p oyec o IRIS .................................................................................................................. 24
Fig. 3.1: Esquema que ilus a el p ime obje i o de es e abajo. El p ime o de los e os
a los que nos en en amos ue la comunicación en e ambos en o nos de desa ollo .... 27
Fig. 4.1: En o no de desa ollo de Uni y ....................................................................... 32
Fig. 4.2: En o no de desa ollo de Jason en Eclipse ..................................................... 33
Fig. 5.1: Diag ama de secuencia que mues a el en ío de e en os desde Uni y a Jason
........................................................................................................................................ 38
Fig. 5.2: En o no de IsoUni y con el escena io de la Abadía ........................................ 39
Fig. 5.3: Deco ación de Uni y con En i y Name „ ayFe nando’ .................................. 39
Fig. 5.4: Plan a de la abadía con las localizaciones des acadas ..................................... 40
Fig. 5.5: Ejemplo de código de Jason pa a „ ayFe nando’ .......................................... 41
Fig. 9.1: P oceso de ins alación de Jason en Eclipse. Ins ala plugin. .......................... 60
Fig. 9.2: P oceso de ins alación de Jason en Eclipse. Ins ala plugin. Paso inal. ........ 61
Fig. 9.3: Impo a p oyec o Jason en el en o no. .......................................................... 62
Fig. 9.4: Con igu a lib e ías del p oyec o Jason. ......................................................... 63
Fig. 9.5: Añadi lib e ías ex e nas al p oyec o Jason. ................................................... 63
Fig. 9.6: Jason espe ando a la ejecución de Uni y......................................................... 64
Fig. 9.7: Uni y y Jason ejecu ándose simul áneamen e ................................................. 64
7
Resumen
La indus ia del ideojuego ha a anzado a g andes pasos du an e los úl imos años
espec o a la c eación de „in eligencia a i icial‟ pa a sus pe sonajes, a i mando siemp e
que la u ilizan pa a do a de ealismo y c edibilidad a sus pe sonajes. Sin emba go es e
concep o ha a iado sus ancialmen e año as año, y aún hoy, la in eligencia que
encon amos en los pe sonajes es á lejos de lo que uno pod ía espe a de ello, incluso
lejos de lo ya es udiado y conocido en la co espondien e disciplina académica.
En el a án po desa olla pe sonajes que sean ealmen e au ónomos y omen sus p opias
decisiones as azona ace ca de lo que ocu e en el juego, en es e abajo p oponemos
un sis ema capaz de do a de con ol au ónomo a los pe sonajes de un ideojuego y con
po encial pa a mos a una mayo in eligencia. Pa a ello conec amos un a mazón de
desa ollo de ideojuegos llamado IsoUni y , desa ollado sob e el en o no Uni y, con
un sis ema mul i-agen e llamado Jason e implemen ado en Ja a, que u iliza el conocido
modelo cogni i o C eencia-Deseo-In ención
1
pa a ep esen a el es ado in e no de la
men e de los agen es, que en nues o caso se án pe sonajes de ideojuego.
A la ho a de p oduci un ideojuego, si se implemen a median e un sis ema de agen es
in eligen es, con in o mación subje i a sob e el mundo, obje i os p opios y planes y
a eas que ealiza , el jugado end á una expe iencia más plena. Nues a isión es la de
adop a es e sis ema en el desa ollo de ideojuegos independien es de pe spec i a
isomé ica y ecu sos sencillos de es ilo e o, de ahí el uso de IsoUni y.
En es a memo ia, además de explica en de alle nues o sis ema de con ol,
documen amos las p uebas y las adap aciones que p oponemos pa a lle a a la p ác ica
es e concep o, sen ando las bases ecnológicas pa a p oduci un ideojuego comple o
u ilizando es e sis ema. Siguiendo el camino iniciado en an e io es T abajos de Fin de
G ado de es a Facul ad, que íamos con inua en esa línea de abajo a inando más el
concep o y abo dando un ema nue o, el de do a a los pe sonajes de ideojuegos
c eados con IsoUni y de una au onomía mayo y mejo es he amien as de oma de
decisión pa a pode in e ac ua con su en o no y con o os pe sonajes.
Palab as cla e: In eligencia A i icial pa a Videojuegos, Agen es In eligen es,
Sis emas Mul i-Agen e, Videojuegos en Pe spec i a Isomé ica, Desa ollo de
Videojuegos Mul ipla a o ma
1
Del inglés, BDI: Belie -Desi e-In en ion.
8
Abs ac
Video game indus y has made g ea ad ances in ecen yea s owa ds c ea ion o an
„a i icial in elligence‟ o hei cha ac e s, elling ha hey use i o p o ide ealism and
c edibili y o hei cha ac e s‟ beha io s. Howe e , his concep has changed
subs an ially yea a e yea , and e en oday, in elligence ound in he cha ac e s is a
om wha one migh expec o i , and e en a om wha al eady s udied and known in
he ele an academic discipline.
In he ush o de elop cha ac e s ha a e uly au onomous and make hei own
decisions, a e easoning abou wha happens in he game, in his pape we p opose an
in elligen sys em capable o p o iding au onomous con ol he cha ac e s in a ideo
game and he po en ial o show g ea e in elligence. To do his, we connec a game
de elopmen amewo k called IsoUni y (Pé ez Colado & Pé ez Colado, 2014),
de eloped on he Uni y en i onmen , wi h a mul i-agen sys em named Jason and
implemen ed on Ja a, which uses he known cogni i e model Belie -Desi e-In en ion
(BDI) o ep esen he in e nal s a e o he minds o he cha ac e s, which in ou case
will be ideo game cha ac e s.
When making a ideo game, i implemen ed h ough a sys em o in elligen agen s, wi h
subjec i e in o ma ion abou he wo ld, own goals and plans and asks o pe o m, he
playe a mo e ul illing expe ience. Ou ision is o adop his sys em in he
de elopmen o independen ideo games isome ic pe spec i e and simple e o s yle
esou ces, hence he use o IsoUni y.
In his pape , in addi ion o explain in de ail ou con ol sys em, documen ed es s and
adjus men s we p opose o implemen his concep , laying he echnological base o
p oduce a comple e game using his sys em. Following he pa h ini ia ed in p e ious
Final deg ee p ojec o his Facul y, we wan o con inue in ha line o wo k u he
e ining he concep and add essing a new opic, equip he ideo games cha ac e s
c ea ed wi h IsoUni y g ea e au onomy and be e decision-making ools o in e ac
wi h hei en i onmen and o he cha ac e s.
Keywo ds: A i icial In elligence o Video Games, In elligen Agen s, Mul i-Agen
Sys ems, Video Pe spec i e Isome ic, Mul ipla o m Game De elopmen .
9
1. In oducción
Ac ualmen e se es án u ilizando cada ez más écnicas de in eligencia a i icial pa a el
desa ollo de ideojuegos, con el p opósi o de p esen a expe iencias y pe sonajes más
ealis as. Sin emba go muchas écnicas de decisiones de pe sonajes es án diseñadas pa a
segui un guión (sc ip ), y no dan el esul ado espe ado.
Ac ualmen e, sino en odos, en la g an mayo ía de ideojuegos que se p esen an al
público, dan una sensación de que los pe sonajes cuen an con una capacidad de decisión
de sus acciones y de es a ealizando a eas que ealmen e han decidido ellos, pe o no es
así.
Si nos ijamos en el modo de ac uación de es os minuciosamen e, segu amen e
pod emos llega a un pa ón de acción. Po ejemplo, un enemigo que se cub e con una
ba icada y que cada cie o iempo se asoma pa a dispa a , u o o enemigo que no oma
„el camino p incipal‟ pa a pode alcanza e po la e agua dia.
Segu amen e cualquie a que haya jugado a un juego de dispa os
2
se haya pe ca ado de
la ac uación de sus enemigos en comba e y ha espe ado pacien emen e a que es os
ol ie an a asoma se de su cobe u a po el mismo si io, pa a pode acaba con ellos.
O o ejemplo pod ía se Hi man (IO In e ac i e, 2000), donde lo p incipal es el sigilo y
donde se da po hecho que el jugado a ac ua así, pe o, ¿qué pasa cuando decidimos
juga de mane a al e na i a? P obablemen e el jugado llegue al siguien e pun o de
con ol „a su mane a‟, dispa ando escandalosamen e a cualquie enemigo, y aun así
e emos la siguien e cinemá ica con el pe sonaje p incipal agachado sigilosamen e y sin
ninguna mancha de sang e o as o del comba e que ha enido con sus enemigos.
Es os son dos simples ejemplos pa a demos a que ealmen e g an pa e de los
ideojuegos es án guionizados, an o en los compo amien os de los pe sonajes como en
la his o ia que es os cuen an. Es cie o que muchos dan una sensación de „mundo
abie o‟ donde puedes elegi ealiza una acción u o a, y los demás ac ua án en
consecuencia, pe o ealmen e no hay más que eso, una sensación.
La idea p incipal de es e p oyec o es diseña y c ea el p o o ipo de un sis ema que
pe mi a a los pe sonajes de un ideojuego oma sus p opias decisiones, siendo
ealmen e in eligen es, y lle a a cabo sus p opias acciones sin necesidad de que el
diseñado haya decidido de an emano su compo amien o.
Los pe sonajes end án su p opia in eligencia a i icial que les pe mi i á in e ac ua con
o os pe sonajes del juego, y con el jugado , y en unción de es a in e acción pe segui
sus obje i os y oma decisiones di e en es. Es a in eligencia a i icial se á
implemen ada median e una se ie de agen es in eligen es, uno po pe sonaje de
ideojuego, los cuales pe mi en a cada pe sonaje pe cibi su en o no, p ocesa ales
2
Conocidos como Fi s Pe son Shoo e como es el caso de la saga Call o Du y (In ini y Wa d, 2003)
16
simila que ambién conec a agen es in eligen es a IsoUni y es TinyWo ld (Pé ez
Colado & Pé ez Colado, 2014), aunque no u iliza ningún modelo cogni i o ( éase 2.3).
2.2. Agen es au ónomos
Los agen es in eligen es se desc iben como en idades capaces de pe cibi su en o no,
p ocesa ales pe cepciones y esponde o ac ua sob e el mundo que habi an de mane a
acional, es deci , con cohe encia y a ando de alcanza un esul ado espe ado.
Los agen es in eligen es ienen las siguien es ca ac e ís icas (Inc emen al Lea ning in
In elligen Sys ems, 2013) :
Ap ende nue os p oblemas e inc emen a no mas de solución.
Capacidad de adap ación en línea y en iempo eal.
Se capaz de analiza condiciones en é minos de compo amien o, el e o y el
éxi o.
Ap ende y mejo a a a és de la in e acción con el medio ambien e
( ealización).
Ap ende ápidamen e de g andes can idades de da os.
Deben es as basados en memo ia de almacenamien o masi o y la ecupe ación
de dicha capacidad.
Y pueden clasi ica se en 6 g upos di e en es: Agen es eac i os, Agen es eac i os
basados en modelo, Agen es basados en obje i os, Agen es basados en u ilidad, Agen es
que ap enden y Agen es de consul as.
2.2.1. Agen es basados en el modelo cogni i o C eencia-Deseo-
In ención
En la a qui ec u a C eencia-Deseo-In ención
5
los agen es son is os como en idades
capaces de pe cibi su en o no, cons ui una c eencias en base a esas pe cepciones,
man ene una se ie de deseos ac i os que guia án sus decisiones y ambién unas
de e minadas in enciones en ejecución
6
. De es a mane a el agen e oma sus decisiones
en unción de sus p opios es ados, con un modelo que nos pa ece acional y humano.
Es a sepa ación en c eencias, deseos e in enciones se oma de la eo ía del azonamien o
humano que p opone Michael B a man, ilóso o ame icano, conside ado el au o de es e
modelo.
Pa a B a man, c eencias y deseos son ac i udes men ales asociadas a la acción; sin
emba go, la in ención a asociada al con ol de la ac i ud de la pe sona (o agen e
so wa e en es e caso). Todo es o y mucho más elacionado con su modelo, en el que
5
BDI, del inglés Belie -Desi e-In en ion.
6
Ac i idades compues as de a ias acciones en secuencia sob e la que hay que hace cie o seguimien o.
17
sepa a es os es concep os, es á a ado en su lib o In ención, planes y azón p ác ica
(B a man, 1999).
Pos e io men e, las in es igaciones en es e á ea han conducido, po ejemplo, a la
axioma ización de algunas implemen aciones BDI, así como a las desc ipciones lógicas
o males, como la de Anand Rao y Michael Geo ge : BDICTL p opues o en su lib o
Delibe a ion and i s Role in he Fo ma ion o In en ions (Rao & Geo ge , 1991) o la
ex ensión de es a po Michael Woold idge pa a de ini LORA: The Logic O Ra ional
Agen (Woold idge, 2000), inco po ando una lógica de acción. Po nues a pa e, pa a el
manejo de los agen es BDI en es e abajo, hemos u ilizado un lenguaje de
p og amación o ien ado a agen es llamado Agen Speak (ab e iado como ASL) (Bo dini,
Hübne , & Woold idge, 2007). Se basa en p og amación lógica y u iliza una
a qui ec u a BDI de agen es au ónomos que suele denomina se „a qui ec u a cogni i a‟.
Pa a el manejo de és e lenguaje, se u iliza un en o no adap ado a Eclipse llamado Jason:
un in é p e e pa a una e sión ex endida de Agen Speak. Implemen a las ope aciones
semán icas de ese lenguaje y apo a una pla a o ma pa a el desa ollo de sis emas mul i-
agen es con a ias he amien as pe sonalizables po el usua io. Jason es á disponible
como una lib e ía so wa e de código abie o y se dis ibuye bajo licencia GNU LGPL.
2.2.1.1. El modelo C eencia-Deseo-In ención
Pa a en ende los agen es ASL hay que en ende que se basan en el modelo BDI, que se
compone de es pa es:
C eencias (Belie s): Conocimien o que el agen e iene sob e el mundo. Es a
in o mación no iene po qué se e az, pod ía es a des asada o equi ocada.
Deseos (Desi es): Son odos los posibles es ados del mundo que al agen e le gus a ía
consegui . De odos modos, ene un deseo no siemp e implica que un agen e ac úe de
o ma di ec a pa a consegui lo. Es simplemen e un elemen o que in luye en las acciones
del agen e.
In enciones (In en ions): Son la ep esen ación de las a eas que el agen e se ha
p opues o ealiza . Las in enciones suelen es a asociadas con de e minadas me as
(Goals) y son a la ez el esul ado de conside a opciones y de elegi . Las opciones
elegidas de es a mane a son in enciones, que a eces end án la o ma de un plan
complejo y o as eces de una simple acción.
El modelo BDI es á basada en la lógica CTL*, dicha lógica es una lógica p oposicional
ami icada empo almen e, una ex ensión de la lógica modal, la cual es p ác icamen e
usada en sis emas de eglas, donde es á p esen e el iempo. Exis e una cie a elación
con o as a iedades de lógica, po ejemplo, la lógica modal. Es a llamada lógica modal,
es la que in en a cap u a el compo amien o deduc i o de algún g upo de ope ado es
modales. Los ope ado es modales son exp esiones que cali ican la e dad de los juicios.
(Zal a, 2009)
18
Fig. 2.7: Ejemplo de una lógica p oposicional ami icada
El modelo BDI posee en ealidad una a qui ec u a abs ac a. La idea pa a implemen a lo
suele se desa olla una simpli icación. Sólo las c eencias del es ado ac ual ep esen an
el conocimien o en o ma de planes. Una in ención es ep esen ada usando una pila de
planes elacionados je á quicamen e, pudiendo coexis i múl iples pilas.
2.2.1.2. Agen es en lenguaje Agen Speak
Los agen es implemen ados con el lenguaje Agen Speak (ASL) son sis emas si uados en
algún en o no (en i onmen ). Es os agen es son capaces de pe cibi su en o no median e
senso es (senso s o pe cep ions), y ienen un epe o io de posibles acciones que pueden
ejecu a ( ía e ec o s o ac ua o s) pa a modi ica su en o no. Pa a decidi qué hace se
abaja cambiando las pe cepciones del en o no y es e según sus planes ac ua a en
consecuencia y ealiza a las acciones pe inen es.
Fig. 2.8: Relación del en o no y los agen es
Po lo gene al, es más común que los agen es habi en en un en o no jun o a o os
agen es, dando luga a un sis ema mul i-agen e. Con lo cual, la modi icación del en o no
pasa a debe se a la in e acción de a ios agen es, haciendo la ida de es os más
complicada, ya que pa a consegui su me a en el en o no end á que ene en cuen a
cómo o os agen es eaccionan a dichos cambios.
19
s a ed.
+s a ed <- .p in (‘Hola mundo’).
Fig. 2.9: Ejemplo de código ASL
La de inición de un agen e en Agen Speak consis e en dos pa es:
C eencias iniciales (ini ial belie s) y me as iniciales (ini ial goals) del agen e
Planes (plans) de ac uación disponibles en el agen e
En el código de ejemplo mos ado la p ime a línea de ine un belie inicial pa a nues o
agen e
7
. Agen Speak no iene a iables al es ilo de lenguajes de pa adigma impe a i o
como C o Ja a; se abaja con o as nociones, como las c eencias, me as y planes ya
ci adas.
La segunda línea de ine un plan. Se puede in e p e a como: „en el momen o que
‘empieces a c ee ’ „s a ed‟, esc ibe el ex o „Hola mundo‟‟.
Un agen e Agen Speak se de ine po un conjun o de c eencias (belie s) que ep esen an
el es ado inicial de su „base de la c eencias‟ (belie base). Es a con iene un conjun o de
ó mulas a ómicas, y un conjun o de planes (plans) que con o man su „biblio eca de
planes‟ (plan lib a y). Pa a que el agen e pueda empeza a ac ua , se debe conoce
cuáles son sus me as (goals) y cuales los e en os desencadenan es de sus cambios
in e nos ( igge ing e en s).
Hay dos ipos de me as (Goals):
Achie emen goals. Fo madas po ó mulas a ómicas p ecedidas del símbolo [!].
Es as me as se es ablecen al p incipio de la ejecución del agen e, y po lo an o
empeza á po in en a ealiza es as me as.
Tes goals. Fo madas po ó mulas a ómicas p ecedidas del símbolo [?], es as
me as indican que el agen e que á p oba si una de e minada ó mula p opues a
puede demos a se, median e uni icación, con ayuda de algunas de sus c eencias.
Se puede deci que un agen e básico se compo a como un me o sis ema de eacción.
Es as eacciones se deben a e en os, que pueden se cambios en las c eencias
p o ocados a su ez po la ía de la pe cepción del en o no, o cambios en las me as del
agen e o iginadas de la ejecución de planes p e iamen e lanzados po o os e en os,
como una especie de sub-me as.
El e en o dispa ado ( igge ing e en ) de ine qué condiciones pueden hace que se
inicie la ejecución de un plan.
Los planes (plans) son es ablecidos en la p og amación del agen e de al modo que,
como dijimos, son dispa ados po la adición (+) o eliminación (-) de c eencias o me as.
Los planes ienen dos pa es:
7
Aunque sólo hay uno inicial, pod íamos habe dado una lis a de ellos.
20
Encabezado (head) que es o mado a pa i de un e en o dispa ado , y un
conjun o de „c eencias li e ales‟ que ep esen an un de e minado con ex o. La
conjunción de li e ales en el con ex o debe se una consecuencia lógica de las
c eencias ac uales del agen e si el plan se conside a aplicable en ese ins an e.
Cue po (body): secuencia de acciones básicas o sub-me as que el agen e iene
que consegui o es ea cuando se dispa a el plan. El cue po incluye acciones
básicas que ep esen an ope aciones a ómicas que el agen e puede ejecu a pa a
cambia su en o no.
+g een pa ch(Rock)
: no ba e y cha ge(low)
<- ?loca ion(Rock,Coo dina es);
! a e se(Coo dina es);
!examine(Rock).
Fig. 2.10: Ejemplos de planes
Un ejemplo de uso de es e sis ema pa a soluciona p oblemas eales es el ehículo
obó ico Ro e , que se u ilizó en la explo ación de Ma e. Fue p og amado u ilizando el
lenguaje ASL y podemos e un esumen de cómo se plan eó el diseño pa a que es e
ehículo ac ua a an e una cie a si uación.
En el código que hemos is o an es, el plan es ablece que cada ez que el Ro e pe ciba
una aza e de (g een pa ch) en una oca de e minada, debe in en a examina dicha
oca; sin emba go, ese plan solo puede se usado en caso de que las ba e ías no es én a
un ni el bajo. Pa a examina la oca iene que ecopila de su p opia base de
conocimien o las coo denadas asociadas con esa oca
8
, en onces alcanza á esa me a de
a a esa esas coo denadas y una ez allí, examina a la oca.
+! a e se(Coo ds)
: sa e pa h(Coo ds)
<- mo e owa ds(Coo ds).
+! a e se(Coo ds) :
: no sa e pa h(Coo ds)
<- ...
Fig. 2.11: Ejemplos de goals
Como es no mal, cada una de es as achie emen goals se dispa a on en la ejecución de
o o plan.
Los o os dos planes que hemos is o a con inuación o ecen secuencias al e na i as de
acciones que el Ro e puede ealiza según lo que c ee que hay po el ambien e,
especialmen e cuando iene que a a esa dando una u a. Si el Ro e c ee que hay un
camino segu o en esa di ección, en onces odo lo que iene que hace es ealiza la
8
Es a es la es goal al p incipio del cue po del plan.
21
acción de a anza hacia esas coo denadas
9
. El plan al e na i o no se mues a aquí; pe o
se a a de uno que debe p opo ciona medios al e na i os pa a que el agen e pueda
llega a la oca e i ando caminos insegu os.
2.2.2. En o nos
En un en o no mul i-agen e, es e es á compa ido en e odos los agen es, po lo que las
acciones de un agen e pueden in e e i con las de los o os que se encuen en en el
mismo en o no. Po ello, ene una noción explíci a del en o no, un modelo, pese a no
se obliga o io, es muy necesa io pa a el desa ollo de un buen sis ema mul i-agen e.
Fig. 2.12: Ejemplo g á ico de agen es comunicándose sob e un en o no
Hay algunos sis emas en los que el en o no es á ya de inido, pe o en o os, como es
nues o caso, necesi a emos c ea un nue o modelo y el co espondien e en o no
a i icial, simulando dinámicamen e los cambios del mismo. Una ez el en o no es á
de inido es cuando se implemen a án los agen es que ope a án en él, pe cibiendo el ipo
de las p opiedades del en o no que se hayan de inido en el modelo.
Suponiendo el en o no c eado y los agen es de inidos e implan aos sob e él, es os
end án que in e ac ua an o en e ellos median e una comunicación di ec a agen e-
agen e, como con el en o no, a endiendo a las pe cepciones que eciban sob e él e
in en ando e ec ua cambios en el en o no. Es a elación se explica en la siguien e
igu a.
9
Es a es una acción básica a a és de la cual el Ro e puede e ec ua cambios en su en o no
22
Fig. 2.13: In e acción en e en o no y agen e.
2.2.2.1. C eación del En o no
La clase Ja a En i onmen es p opo cionada po Jason y pe mi e pe cepciones
indi idualizadas acili ando la a ea de asocia de e minadas pe cepciones sólo a cie os
agen es. Es a clase man iene la es uc u a pa a almacena las pe cepciones que sólo
unos agen es pueden consul a , así como las pe cepciones globales que exis an.
Pa a ello, el En i onmen que end á que se c eado como una ex ensión de dicha clase,
cuyos mé odos end án que se sob esc i os (o e ide) pa a ajus a se a las necesidades
de lo que se desee c ea ( éase en la Fig. 2.14Fig. 2.12).
Fig. 2.14: Diag ama de clases pa a el en o no. El en o no pe sonalizado del usua io he eda á de la clase
En i onmen .
2.2.2.2. Mé odos del En o no
ini : u ilizado pa a ecibi pa áme os del en o no y p oduci la con igu ación
p incipal. Se u iliza ambién pa a inicializa la lis a de pe cepciones que end á
el en o no cuando el sis ema mul i-agen e empiece a unciona .
addPe cep (L): añade un li e al L a la lis a global de pe cepciones. Todos los
agen es lo pod án pe cibi al se global.
23
addPe cep (A, L): añadi un li e al a la lis a de pe cepciones del agen e A. Solo
es e agen e pod á pe cibi lo.
emo ePe cep (L), emo ePe cep (A, L): mismo caso que los an e io es pe o
pa a elimina una pe cepción global, o local a un agen e.
clea Pe cep s() y clea Pe cep s(A): en luga de elimina una pe cepción, elimina
odas; puede hace se pa a odos, o pa a un agen e, espec i amen e.
La lis a de pe cepciones en la clase del en o no es au omá icamen e sinc onizada po los
mé odos desc i os a iba. Es o es impo an e dado que los agen es se ejecu an
simul áneamen e, y el la acción y las es uc u as de las pe cepciones son globales pa a
la clase del En o no; aunque el abajo básico de sinc onización se ealiza po Jason,
dependiendo de cómo se lle a a cabo el modelo del en o no.
2.3. Agen es in eligen es en con ol de pe sonajes de
ideojuego
Den o del campo de los agen es in eligen es en los ideojuegos podemos encon a
ejemplos an in e esan es como Façade (Ma eas & S e n, 2005), una „ob a de ea o
in e ac i a‟ sob e dos pe sonajes que ep esen an a un ma imonio con di icul ades, y el
pe sonaje que in e p e a el jugado , un amigo común. En es e juego median e una
in e acción en e los es, que incluye comunicación median e lenguaje na u al, a
su giendo una his o ia que no sigue al pie de la le a el guion sino que son los p opios
pe sonajes, sus pensamien os y emociones los que les hacen ac ua en cada momen o.
Fig. 2.15: T ip y G ace p o agonis as de Façade
O o ejemplo es P om Week (kong ega e, 2012), desa ollado en la Uni e sidad de
Cali o nia en San a C uz, ambién un ideojuego con un sis ema de na ación
in e ac i a de ás que en es a ocasión hace las eces de „simulado social‟. En P om
24
Week el jugado da ida a un g upo de es udian es de secunda ia en la semana más
d amá ica de su ca e a: el in de cu so de su e apa en el ins i u o. P om Week
(kong ega e, 2012) es capaz de combina la simulación dinámica de juegos al es ilo Los
Sims (Elec onic A s, 2000), con los pe sonajes de allados y el diálogo de los mismos.
Fig. 2.16: logo de P om Week
Pa a inaliza podemos hace e e encia a un p oyec o inanciado po la Unión Eu opea
( ed de excelencia, FP7-ICT-231824) y llamado IRIS
10
(And é & Ku dyuko a, 2009-
2011), que comenzó en ene o de 2009 y e minó en diciemb e de 2011.
En e los muchos desa ollos y eo ías sob e na ación in e ac i a que ecopiló y
p opuso había una pa e dedicada a los pe sonajes c eíbles (Belie able Cha ac e s),
do ados de au onomía y emociones. El lec o puede ecu i a la base de da os de es e
p oyec o pa a hace se una idea de la g an can idad de abajos académicos ( a a ez
ideojuegos come ciales) que explo an el uso de sis emas y agen es in eligen es pa a
con ola pe sonajes de ideojuego.
Fig. 2.17: Ejemplo de na ación in e ac i a, uno de las aplicaciones ecopiladas en el p oyec o IRIS
También podemos hace una especial mención a TinyWo ld (Pé ez Colado & Pé ez
Colado, 2014), un p oyec o de in eligencia a i icial desa ollado po los he manos
Pé ez Colado, al igual que IsoUni y (Pé ez Colado & Pé ez Colado, 2014).
10
Del inglés, In eg a ing Resea ch in In e ac i e S o y elling.
25
En es e ideojuego, se an p oponiendo unos obje i os a cumpli a lo la go de la
pa ida, donde el jugado es un „se omnipo en e‟ que debe o ganiza a los se es pa a
que se cumplan un máximo núme o de obje i os.
Pese a la simplicidad que puede pa ece ene , el compo amien o de esos pe sonajes
lle a un desa ollo de in eligencia a i icial donde, al p incipio, es os pe sonajes
desconocen el uni e so donde es án ubicados, pe o en el a ance del juego y con las
in e acciones, an descub iendo nue as capacidades e ins umen os del en o no.
El jugado , debe se conscien e de es o y hace que los pe sonajes que maneja, a en de
e i a daños y que ealicen a eas que es én al alcance de sus conocimien os, pudiendo
hace de mane a escalada que ayan en en ándose a e os mayo es cuando amplíen sus
conocimien os.
Los habi an es po su pa e cuen an con un compo amien o básico que p emia la
supe i encia y la e iciencia, di idiendo las a eas siemp e que sea posible y opo uno.
Además, pa a la ealización de algunas a eas los pe sonajes pueden asocia se y
colabo a uniendo ue zas o dis ibuyendo oles que les pe mi an ealiza la labo .
32
Fig. 4.1: En o no de desa ollo de Uni y
4.3.1.2. IsoUni y
IsoUni y (Pé ez Colado & Pé ez Colado, 2014), es una he amien a adap ada de Uni y
pa a el desa ollo de en o nos de ideojuegos en pe spec i a isomé ica. Desa ollada
po los he manos Pé ez Colado en 2014 pa a su T abajo Fin de G ado, es a he amien a
pe mi e la gene ación de mapas y en idades con una in e az bas an e sencilla e
in ui i a.
Pues o que es una he amien a modi icada de o a, podía ene allos o ca encias que
noso os pudié amos necesi a , así que, u ilizando la e sión base que desplega on en
años an e io es, se le hizo unas modi icaciones adap ando nue as uncionalidades, que
se de alla án en el apa ado 5.
Con es a he amien a, además de la pu a c eación del mapa, con sus en idades,
deco aciones, e c. ambién hay un desa ollo en la pa e „no isual‟ pa a ges iona el
compo amien o de dichas en idades sob e el mapa. Ag egado a eso, ambién es á la
implemen ación de la conexión median e socke s pa a pe mi i la comunicación con el
o o ex emo de la comunicación en Ja a.
33
4.3.1.3. Visual S udio
La hemos u ilizado como he amien a pa alela a MonoDe elop, que cumple la misma
unción. Algunos de los in eg an es del p oyec o ya habían u ilizado de an emano la
in eg ación de Visual S udio con Uni y, lo que no hizo necesa io ecu i a
MonoDe elop.
Visual S udio ha sido u ilizada como complemen o a Uni y/IsoUni y, que nos pe mi e
ges iona la pa e ase a de Uni y: en idades, sc ip s y compo amien o de la conexión.
Visual S udio pe mi e la inco po ación del p oyec o comple o de C# pa a hace más
ácil su modi icación e in eg ación con los demás componen es del mismo.
4.3.1.4. Eclipse
Lo u ilizamos como en o no de desa ollo p incipal pa a la p og amación en Ja a, que
pe mi e la abs acción del código dis in as clases, pa a el desa ollo de la
implemen ación de una conexión median e socke s, po ejemplo, pa a pode en ia y
ecibi da os empaque ados en obje os, y comunica nos po ed. En el lado de Ja a de
nues a aplicación la in o mación se empaque a u ilizando obje os JSON que pueden se
en iados a Uni y ácilmen e.
Eclipse es una pla a o ma de so wa e compues o po un conjun o de he amien as de
p og amación de código abie o mul ipla a o ma. Es e es el IDE que hemos u ilizado
pa a el desa ollo de la pa e de Ja a en la que se encapsula en código Jason y demás
uncionalidades dependien es.
Fig. 4.2: En o no de desa ollo de Jason en Eclipse
34
4.3.1.5. Jason
Una ex ensión pa a Eclipse que p opo ciona he amien as necesa ias pa a la c eación y
ges ión de agen es en un modelo BDI.
Jason es un sis ema de desa ollo de agen es BDI pa a la c eación y desa ollo de una
in eligencia a i icial pa a los pe sonajes que se p esen an en Uni y. El plugin de Jason
pa a Eclipse, pe mi e el desa ollo de agen es BDI pa a es a pla a o ma.
Jason pe mi e el desa ollo de agen es in eligen es en o ma o ASL, a los que se e ie e
a eces como sis emas eac i os de plani icación. El lenguaje que u ilizan es os agen es
y que el plugin es capaz de in e p e a .
Una ez esc i os los planes, c eencias e in enciones de cada agen e en dichos iche os,
Jason los ejecu a á sob e el en o no sob e el que in e ac ua án, an o en e ellos como
con lo que les odea.
En nues o caso, decidimos u iliza Jason ya que nos pa eció en ajoso que se pueda
desa olla median e un sencillo plugin de en o no, y que consis a en una ex ensión del
po en e lenguaje ASL. G acias a la unión con Eclipse, pudimos desa olla ácilmen e la
comunicación con el en o no donde habi an los agen es y hace que es os ue an capaces
de pe cibi e en os que ocu en allí, en su en o no.
4.3.2. He amien as secunda ias
En es e segundo subg upo de he amien as en an edi o es de ex o u o os en o nos de
desa ollo que han sido usados pe o de mane a muy pun ual pa a el desa ollo de la
aplicación, así como he amien as que no es án elacionadas con el desa ollo, sino con
la documen ación, comunicación, e cé e a.
MonoDe elop. He amien a p opo cionada po el paque e de Uni y, pa a el desa ollo
de código, en C#. No llegó a u iliza se, sal o de mane a muy espo ádica.
Sublime Tex /No epad++. Edi o de ex o que nos ayuda a pe ila el código y sol en a
algún p oblema que podamos ene en él de una mane a ápida y sencilla.
JSON. Como o ma o ex ual y sencillo pe o es uc u ado pa a la comunicación po ed
en e la pa e de Ja a y la pa e de Uni y.
Den o de es as secunda ias, y o ien adas más al ámbi o de plani icación y ges ión de
p oyec o, comunicación y documen ación u iliza emos:
Google D i e. Se á la p incipal ía de sinc onización de a chi os o elemen os de
in o mación en e los di e en es miemb os del g upo.
Mic oso Wo d. Pa a maque a y puli la e sión inal de la memo ia.
35
Wha sapp. Pa a comunicación po mensaje ía ins an ánea en e los miemb os del g upo.
El uso del co eo elec ónico se edujo mucho g acias a es a he amien a.
Gi Hub. Reposi o io pa a lle a un con ol de las e siones y las di e en es pa es o
módulos del p oyec o, y así que odos podamos abaja simul áneamen e en él y e i a
desajus es en e las pa es del código.
Es as son las di ecciones donde se encuen an las dos pa es del p oyec o:
Ja a/Jason: h ps://gi hub.com/Kae i /JasonIsoMonks
Uni y/IsoUni y: h ps://gi hub.com/NasK1991/IsoMonks
Dia Diag am Edi o . Edi o de diag amas que nos ayudó a e de una mane a ápida
las elaciones en e las di e sas en idades del juego y pode desa olla el código en
sinc onía con ello.
36
5. Con ibución y esul ados
Hemos a ado de cons ui un sis ema que pe mi a a los pe sonajes es a do ados de
in eligencia y que, dependiendo de la si uación, omen decisiones acionales en la que la
In eligencia A i icial alo a á el ipo de espues a a ealiza , es deci , que le „con iene‟
hace o comunica . Hemos a ado de aba ca odo lo posible, pa a comp oba cómo de
ú il puede se es a ecnología, en el desa ollo de los acon ecimien os plan eados en un
ideojuego.
Los apa ados de es e capí ulo son los siguien es. La sección 5.1 es una especi icación
del escena io de ejemplo que amos a u iliza pa a ilus a la u ilidad del sis ema.
La sección 5.2 es allí donde se explica cómo desde el pun o de is a de la Ingenie ía del
So wa e cub imos el análisis y diseño del sis ema, siendo el oco p incipal el cons ui
la a qui ec u a del mismo in eg ando dos sis emas que en p incipio es án sepa ados:
sis ema MAS de Jason y escena io de ideojuegos isomé ico y de es ilo e o de
IsoUni y (Pé ez Colado & Pé ez Colado, 2014).
Finalmen e la sección 5.3 habla sob e cómo gene amos el en o no y los pe sonajes así
como de alles de los mismos.
5.1. Especi icación: La expe iencia na a i a de ejemplo
A con inuación se p esen a el escena io p incipal de nues o p oyec o.
El ejemplo inicia con el pe sonaje de „ ayHec o ‟ en mo imien o, iniciando una u ina
dia ia implemen ada a a és de Jason. Es e pe sonaje, nada más empeza en su
habi ación, se dispond á a i a la eza a la capilla, después de es a un iempo „ ezando‟
en la misma, p osegui á yendo a la cocina a abaja en ella, después i á al comedo y
e mina á su u ina ol iendo a la habi ación donde empezó.
El pe sonaje de „ ayHec o ‟ epe i á es a u ina inde inidamen e, a no se que el
jugado , con olando a „ ayFe nando‟, in e ie a en ella, es de es a mane a donde se
puede obse a la lógica del compo amien o de Jason.
Si el jugado obs aculiza su compo amien o, de mane a que es e necesi e ingeniá selas
pa a ol e a su u ina, en el ejemplo obse amos como el pe sonaje de „ ayFe nando‟
„ce a a la pue a‟ que da acceso a la cocina, colocándose en la casilla que es á al lado
de la misma. De es a mane a el pe sonaje de „ ayHec o ‟ in e umpi á su u ina y luego
busca á la mane a de ol e a ella.
Pa a pode hace lo, a „ ayHec o ‟ se le añadi á una „me a‟ de Jason que consis i á en
encon a la lla e que ab e la pue a de la cocina. Dicha lla e la iene „ ayFe nando‟ en
su esc i o io, de al mane a que se dispond á en i hacia allí y la busca á. Una ez
conseguida, ya pod á ab i la pue a, po lo que ol e á a i a la cocina, pe o es a ez
con el in de ab i la. Después de es a un a o in en ando ab i , ol e á a en a en la
cocina y e oma á la u ina p ees ablecida desde un inicio.
37
O o compo amien o de los agen es es po pa e de „ ayAlejand o‟. Dicho agen e es á
en su habi ación, y cuando se en e a de que „ ayFe nando‟ ha en ado en la cocina, él
ambién i á. El agen e es aba espe ando a que el jugado en ase en la cocina pa a pode
segui le.
5.2. Análisis y Diseño: In eg ando Jason con IsoUni y
Como se dijo an e io men e, uno de los p incipales e os ue la in eg ación de las
pla a o mas Jason y Uni y pa a la comunicación en e ellas. Mien as que Uni y se ía el
enca gado de mos a la pa e isual del ideojuego, Jason se ía el „ce eb o‟ de los
pe sonajes. Po ello e a impo an e dedica le iempo a busca una buena implemen ación
que pe mi ie a el paso de in o mación en e dichas pla a o mas.
Desde un p ime momen o se pensó que la mejo mane a e a implemen a dos
se ido es y dos clien es UDP que ansmi ie an la in o mación median e socke s. Se
implemen ó en onces un se ido y un clien e en Ja a y o os iguales en C#. Con ello, y
median e la asignación de pue os, se consiguió que se manda an in o mación simple.
Es o nos pe mi ía en un p ime momen o el paso de comandos simples desde Jason a
Uni y. Comp obamos que, cuando mo íamos un pe sonaje en Uni y, en Jason ecibía la
in o mación y nos la iba mos ando po pan alla. Todos los mo imien os quedaban
egis ados.
Según ue a anzando el desa ollo, se iba necesi ando más in o mación, que con la
implemen ación inicial del clien e-se ido UDP, no pod íamos consegui . Al menos no
de la o ma en la que lo eníamos pensado. Po ello, en ez de manda mensajes
simples, empezamos a manda in o mación más ica y a u iliza la sin axis de JSON.
Con él comunicábamos a Jason o a Uni y odo sob e el pe sonajes y su en o no: acción
que a a de ealiza , e en o en el caso de que lo hubie a, e c. y así pod íamos gene a
eacciones en Jason a las acciones ecibidas. La comunicación po ed gene a o o
p oblema. Al manda e en os, el se ido quedaba a la espe a de ecibi algo que nunca
llegaba, po ello se ediseñó el clien e-se ido pa a que ue a con olado po hilos. Al
inicia la aplicación se c ean dos hilos pa alelos que con olan la conexión y el paso de
in o mación en e pla a o mas sin que se queden espe ando a algo que no llega nunca.
De o ma muy esquemá ica mos amos a con inuación el diag ama de secuencia que
sigue el en ío de un e en o desde Uni y a Jason.
38
Fig. 5.1: Diag ama de secuencia que mues a el en ío de e en os desde Uni y a Jason
5.3. Implemen ación: P oducción del escena io y los
pe sonajes del ideojuego
El diseño y p oducción del escena io se ealizó con la he amien a IsoUni y (Pé ez
Colado & Pé ez Colado, 2014), la cual pe mi e gene a mapas isomé icos de mane a
ápida. Dicha he amien a es impo ada a Uni y como un p oyec o nue o, y a pa i de
ahí, apa ece án en el menú las nue as opciones de sus he amien as.
Con es o p epa ado, se ue gene ando bloque a bloque odo el escena io. Con la
he amien a IsoUni y se pueden c ea dis in as al u as pa a gene a los mu os po los
cuales los pe sonajes no pueden pasa . Dichas al u as debían se supe io es a 2, dado
que los pe sonajes pod ían sal a los bloques de al u a 1. Acla a que los bloques de
al u a 0 no se u ilizan, ya que no exis ía colisión con los pe sonajes y es os no podían
apoya se en ellos. Po es o se diseñó el mapa con el suelo de bloques de al u a 1 y los
mu os con bloques de al u a 3.
IsoUni y gene a los bloques, pe o se quedan en un colo básico. Una ez eníamos el
modelo, hab ía que i le añadiendo las ex u as a los bloques. Además de las ex u as, se
le añaden las deco aciones a cie os elemen os del mapa, ales como las lámpa as o
incluso los pe sonajes.
39
Fig. 5.2: En o no de IsoUni y con el escena io de la Abadía
Los pe sonajes son deco aciones, pe o con en idades asociadas, lo que quie e deci que
pueden ene uncionalidad. Además odas las deco aciones y en idades ienen un
nomb e, un iden i icado p opio, que ap o echa emos pa a que Jason pueda
econoce los ápidamen e. De es a mane a el código de Ja a y Jason pueden manda
ó denes pa a que Uni y econozca que pe sonaje es á hablando o has a qué pun o del
escena io (jus o donde una deco ación) debe mo e se.
Fig. 5.3: Deco ación de Uni y con En i y Name ‘ ayFe nando’
40
En el mapa, hemos localizado di e sos pun os de e e encia pa a los pe sonajes, que
ep esen an luga es en los que cada uno desa olla su u ina, luga es en los que se
p oduci án e en os, hab á pun os de luz, e c. A con inuación, mos amos un lis ado pa a
que el lec o se pueda hace una idea de cómo es á es uc u ado el espacio.
Fig. 5.4: Plan a de la abadía con las localizaciones des acadas
1. Pun os cla e pa a „ ayAlejand o’ (de colo ojo en el mapa)
A. Localización donde abaja en el alle ( Aloca ion_ alle )
B. Localización de su mesa del cua o ( Aloca ion_mesa_cua o)
C. Localización donde eza en la capilla ( Aloca ion_capilla)
D. Localización donde come ( Aloca ion_comedo )
2. Pun os cla e pa a „ ayHec o ’ (de colo en e de en el mapa)
A. Localización donde eza en la capilla ( Hloca ion_capilla)
B. Localización donde come ( Aloca ion_comedo )
C. Localización donde come ( Hloca ion_comedo )
41
D. Localización de su mesa del cua o ( Hloca ion_mesa_cua o)
E. Localización de la lla e de la cocina ( Hloca ion_lla e)
F. Localización de la pue a de la cocina ( Hloca ion_pue a_cocina)
3. Pun os de e en os comunes pa a odos (de colo azul en el mapa)
A. Hace sona la campana pa a llama a eza (campana_ce ca)
B. Ce a la pue a de la cocina (ce a _pue a)
C. „ ayAlejand o’ e sigue cuando en as al comedo (en a _comedo )
D. Hace abaja a los demás monjes (ho a_ abaja )
En el ejemplo de código de a con inuación enemos algunos de los dis in os mé odos y
p opiedades de Jason. El agen e „ ayFe nando‟ iene un ini ial belie llamado
ganas_ oca , el cual oma como pa áme o la campana, y sus ganas, que son muchas.
Como me as iniciales, no iene ninguna, ya que se i án gene ando au omá icamen e
según el agen e aya omando decisiones.
Sus planes son quie o_ oca y como pa áme o oma una campana. Los dos planes se
llaman igual, pe o uno es el p ocedimien o a segui en el caso de que sus ganas de oca
la campana sean dis in as de ninguna. Dichas ganas, como hemos dicho an es, an
de inidas en el ini ial belie .
Uno de los p ime os pasos que dimos con el agen e „ ayFe nando’ e a que enía que
oca una campana. Pe o el hecho de oca la iba condicionado po las ganas que u iese
en ese momen o de ello, a con inuación es á el agmen o de código que con ola esa
si uación pa a los casos de que enga ganas de oca la, y cuando no lo enga:
/* Ini ial belie s and ules */
/* Conocimien os que el ayFe nando iene del en o no */
ganas_ oca (campana, muchas).
/* Ini ial goals */
/* Plans */
+quie o_ oca (campana) : ganas_ oca (campana, ninguna)
<- .p in (‘Eh, una campana!, pe o no engo ganas de oca la...’).
+quie o_ oca (campana) : ganas_ oca (campana, muchas)
<- .p in (‘Eh, una campana!, oy a oca la...’);
oco(campana).
Fig. 5.5: Ejemplo de código de Jason pa a ‘ ayFe nando’
48
aplicación no es aba haciendo uso de él, de es a mane a la aplicación dejaba de
unciona con no malidad, la uel a al es ado inicial del socke implicaba el cie e de la
sesión del o denado o incluso el einicio del mismo.
Como lo ya mencionado en Uni y en elación al espacio ocupado en memo ia p incipal
y disco, el lanzamien o de nues o p oyec o implicaba ejecu a simul áneamen e el
en o no isual de Uni y con el en o no lógico de Ja a. En compa ación Ja a ocupa
menos que Uni y pe o es e lanzamien o simul aneo implicaba ene una buena capacidad
de memo ia pa a uncionamien o co ec o y luido de la aplicación, de lo con a io no
solo se podían obse a allos isuales, como sal os de los pe sonajes hacia posiciones
más adelan adas a las que en ealidad debe ían se , e c. sino que unciones in e nas de
Jason las cuales u ilizan con ado es de iempo eal se eían a ec adas, de al mane a,
que debido a la la encia, si una unción debía es a pa ada 10 segundos, y luego
con inua , es a pausa no se ealizaba o se educía, y daba la sensación que el pe sonaje
no se pa aba o no hacía lo que debía co ec amen e.
49
7. Conclusiones y abajo u u o
En es e capí ulo exponemos cuáles son nues as conclusiones y que posibles líneas de
abajo u u o plan eamos pa a da le con inuidad al p oyec o.
7.1. Conclusiones
Una de las ca encias que ienen muchos ideojuegos hoy en día es la al a de
in eligencia a i icial en muchos de los pe sonajes. Es es a al a de in eligencia lo que
hace que los juegos se puedan ol e epe i i os, e incluso abu idos. Nues a
mo i ación p incipal e a desa olla un sis ema que, apoyado en la in eligencia a i icial,
diese más dinamismo a los NPC.
Es cuan o a esa „ca encia‟ de In eligencia A i icial, es una alsa apa iencia en muchos
ideojuegos, un uco que usa el diseñado pa a con ence al jugado . En la mayo pa e
de los ideojuegos se p e ende consegui que, median e sc ip s los pe sonajes den la
sensación de que „piensan‟. Sin emba go, al maneja lo odo median e sc ip s nunca se
puede llega a cambia el anscu so de la his o ia si siemp e se ejecu an las acciones de
la misma mane a.
Con un modelo BDI se consigue que los agen es implemen ados sean capaces de
consegui sus me as es ablecidas median e la ejecución de planes y la a iación de sus
c eencias, de una mane a mucho más simila a cómo unciona la cognición humana.
Nues o p oyec o aspi a a acili a el desa ollo de pe sonajes e dade amen e
in eligen e, capaces de in e ac ua en e ellos y u iliza su en o no de mane a plani icada
y lógica. Es o, como ya se comen ó, hace que se dé dinamismo a la his o ia, haciendo
que los pe sonajes ac úen de una mane a simila a lo que pod ía se la ealidad,
ac uando con o me a sus obje i os, pudiendo men i o ac ua de una mane a u o a con
el in de ob ene su obje i o inal.
G acias a las p uebas de desa ollo que hemos lle ado acabo y los esul ados ob enidos
en ellas, hemos podido ilus a cómo la implemen ación de es os agen es como solución
al con ol au ónomo de pe sonajes en ideojuego puede se una buena opción pa a una
u u a implemen ación en la In eligencia A i icial de los pe sonajes no jugables en
ideojuegos.
Habiendo conseguido los equisi os p incipales de nues o p oyec o, que e an p opone
una solución de In eligencia A i icial que pudie a in eg a se en un en o no i ual
isomé ico y de es é ica e o, y habiendo cons uido un escena io ilus a i o de
ideojuego, nos damos cuen a de que oda ía al a abajo pa a pode ene un p oduc o
come cial que con on a al público eal. Nos hemos dado cuen a de posibles mejo as
que pod ían añadi se en un u u o.
50
Después de habe inalizado el p oyec o pensamos que implemen aciones de
in eligencia a i icial de es e es ilo, ya sean modelos BDI u o os, pod ían da mucho
dinamismo al mundo de los ideojuegos, haciendo que la expe iencia de juego sea
mucho más sa is ac o ia pa a el jugado . Sin emba go la implemen ación de es e
modelo, al es a desa ollado con un lenguaje decla a i o (Agen Speak), esul a bas an e
complicado al no se an in ui i o como o os lenguajes de p og amación. Además,
es os lenguajes decla a i os deben con ola las posibilidades en el que el es ado del
pe sonaje es e y suponen un con ol exhaus i o de es e es ado.
7.2. T abajo u u o
La isión de u u o que plan eamos noso os en el mundo del ideojuego es, además de
in eg a es as in eligencias en los pe sonajes, c ea his o ias gene adas dinámicamen e
en ellos. Que la his o ia no es é esc i a desde el p incipio sino que se aya gene ando
según el jugado a ance en el iempo, y según las acciones y espues as que pueda da a
o os pe sonajes que in e ac úen con él.
Es a idea pod ía se muy in e esan e pa a juegos con más de un inal posible. Los cuales
dichos inales se i án ace cando, no sólo en base a una se ie de decisiones po pa e del
jugado , sino ambién a las decisiones que omen los p opios pe sonajes no jugables. Es
in e esan e e como la his o ia se modi ica, incluso a eces cuando el jugado no sepa
qué ha ocu ido, eniendo que in en a a e igua qué ha cambiado pa a que pueda segui
con la his o ia. De es a mane a cada ez que una pe sona juegue la his o ia, se á dis in a
si oma alguna decisión di e en e.
Además, po la oma de decisiones y las decisiones que omen los pe sonajes no
jugables, es in e esan e e que se pod ían consegui dos inales iguales, pe o con
decisiones dis in as. Es o se consegui ía po los caminos que omen en el á bol de
decisiones.
Los ejemplos expues os en el apa ado 6.1 son ejemplos muy sencillos que simplemen e
pa ecen o ece una bi u cación en el camino, pe o no es simplemen e eso, ya que el
sis ema lo que pe mi e es ees uc u a odo lo que puede pasa en el juego y de es a
mane a acaba de una mane a u o a. Incluso no necesa iamen e que el inal sea dis in o,
si no que la his o ia cambie lo su icien e como pa a ene que cambia la men alidad del
jugado pa a pode con inua po el camino que quie e.
Con una simple opción bina ia se ab en dos al e na i as, pe o po cada al e na i a se
pueden ab i o as más, y de esas o as muchas más, haciendo que cada ez que se
juegue, lo que ocu e es di e en e; no solo en la his o ia que se p esen a, sino en los
escena ios, que se pod ían gene a de mane a ambién dinámica aco de a lo que uese a
pasa , algo que se es á es udiando ya como p opues a pa a un T abajo Fin de Más e .
Con nues o abajo damos un p ime paso apos ando po es os plan eamien os y
p oponiendo posibles soluciones y dis in as implemen aciones pa a algunos de los
51
ideojuegos come ciales que ac ualmen e exis en en el me cado. El siguien e paso
pod ía se in eg a es os pe sonajes an dinámicos en un p oduc o eal, pa a ab i odo
un mundo de posibilidades en el desa ollo de ideojuegos.
Ac ualmen e es o, pod ía se muy in e esan e, además, con el ac ual desa ollo de
dis in as écnicas de ealidad i ual, las cuales es án modi icando po comple o el
mundo de los ideojuegos.
52
8. Re e encias
And é, P. D., & Ku dyuko a, D. E. (2009-2011). IRIS. | h p://i is.in e ac i e-
s o y elling.de/.
Blizza d En e ainmen . (1994). Wa c a . Blizza d En e ainmen .
Blizza d En e ainmen . (21 de Ene o de 2009). S a C a . S a C a . Blizza d
En e ainmen .
Bo dini, R. H., Hübne , J. F., & Woold idge, M. (Oc ub e de 2007). P og amming
Mul i-Agen Sys ems in Agen Speak using Jason. Wiley |
h p://io.acad.a habascau.ca/~osca /ebook/Jason.pd .
B a man, M. E. (Ene o de 1999). Modelo BDI. In en ion, Plans, and P ac ical Reason
(The Da id Hume Se ies). CSLI.
C y ek. (16 de No iemb e de 2007). C ysis. Elec onic A s.
Elec onic A s. (Ene o de 2000). Los Sims. Elec onic A s.
Ensemble S udios. (26 de Oc ub e de 1997). Age o Empi es. Mic oso S udios.
Epic Games. (Ma zo de 2016 de 1998). Un eal Engine. 31: Un eal Engine.
Gea box So wa e. (Oc ub e de 2009). Bo de lands. 2K Games.
Gea box So wa e. (3 de Mayo de 2016). Ba lebo n. 2K Games.
Gue illa Games. (15 de No iemb e de 2013). Killzone: Shadow Fall. Sony In e ac i e
En e ainmen .
Hings on, P. (2014). Bo P ize. Pe h, Oes e de Aus alia: Edi h Cowan Uni e si y |
h p://bo p ize.o g/ .
In ini y Wa d. (29 de Sep iemb e de 2003). Call o Du y. Ac i ision.
IO In e ac i e. (2000). Hi man. Eidos In e ac i e, Squa e Enix.
kong ega e. (17 de Feb e o de 2012). P om Week. kong ega e |
h p://www.in e ac i es o y.ne /.
Ma eas, M., & S e n, A. (5 de Julio de 2005). Façade. | h ps://p omweek.soe.ucsc.edu/ .
Monoli h P oduc ions. (18 de Oc ub e de 2005). F.E.A.R. Vi endi.
Namco. (21 de Mayo de 1980). Pac-Man. Namco Bandai Games.
Nin endo EAD. (15 de Sep iemb e de 1985). Supe Ma io B os. Supe Ma io B os.
Nin endo.
53
Ope a So . (1987). La Abadía del C imen. Ope a So .
Ozawa, S., Kasabo , N. K., & Pang, S. (2013). Inc emen al Lea ning in In elligen
Sys ems. Sp inge -Ve lag Be lin and Heidelbe g GmbH & Co. K.
Padgham, L., & Winiko , M. (2004). De eloping In elligen Agen Sys em. Wiley.
Peinado, F., Ca azza, M., & Pizzi, D. (s. .). Re isi ing Cha ac e -Based A ec i e
S o y elling. Facul ad de In o má ica, Uni e sidad Complu ense de Mad id.
Pé ez Colado, I. J., & Pé ez Colado, V. M. (Junio de 2014). IsoUni y. Un conjun o de
he amien as pa a Uni y o ien ado al desa ollo de ideojuegos de acción-
a en u a y es ilo e o con g á icos isomé icos 3D. T abajo de Fin de G ado en
la Facul ad de In o má ica de la Uni e sidad Complu ense de Mad id.
Pé ez Colado, I. J., & Pé ez Colado, V. M. (Junio de 2014). TinyWo ld. TinyWo ld.
T abajo de Fin de G ado en la Facul ad de In o má ica de la Uni e sidad
Complu ense de Mad id | h ps://gi hub.com/Vic o ma i e/TinyWo ld .
Rao, A. S., & Geo ge , M. P. (Ene o de 1991). Delibe a ion and i s Role in he
Fo ma ion o In en ions. Co nell Uni e si y Lib a y.
Rocks a Games. (15 de Mayo de 2012). Max Payne 3. Rocks a Games.
Rocks a No h. (14 de Ab il de 2013). G and The Au o V. Rocks a Games.
San ama ía Ba cina, A., & Alexiades Es a iol, A. (2015). Recons ucción de una ideo-
a en u a. Recons ucción de una ideo-a en u a isomé ica clásica u ilizando
IsoUni y como he amien a de p oducción mul ipla a o ma. T abajo de Fin de
G ado en la Facul ad de In o má ica de la Uni e sidad Complu ense de Mad id.
Tell ale Games. (11 de Oc ub e de 2013). The Wol Among Us. The Wol Among Us.
Vé igo, Wa ne B os. In e ac i e En e ainmen .
Tu n 10 S udios. (3 de Mayo de 2005). Fo za Mo o spo . Mic oso S udios.
Ubiso To on o. (20 de Agos o de 2013). Tom Clancy's Splin e Cell: Blacklis .
Ubiso .
Uni y Technologies. (30 de Mayo de 2005). Uni y. Uni y Technologies.
Val e So wa e. (18 de No iemb e de 2008). Le 4 Dead. Val e So wa e, Elec onic
A s.
Woold idge, M. (Junio de 2000). Reasoning abou Ra ional Agen s. Camb idge
Uni e si y.
Zal a, E. N. (2009). Modal Logic. Me aphysics Resea ch Lab.
54
55
9. Anexos
Anexo 1. Ti le
An Au onomous Con ol Sys em o Video Game Cha ac e s
Based on he Belie -Desi e-In en ion Cogni i e Model
56
Anexo 2. In oduc ion
A i icial In elligence echniques a e being used mo e e e y day in ideogame
de elopmen wi h he objec i e o c ea ing mo e ealis ic expe iences o cha ac e s.
Anyway, a lo o decision echniques a e designed o ollow a sc ip and a e no
showing he expec ed esul .
Almos all ideogames a e gi ing he imp ession o cha ac e s being able o decide
abou hei ac ions, bu i ‟s no like ha .
I we ake a look in he way hey ac , we will su ely be able o ind an ac ion pa e n: an
enemy hiding behind a wall and e e y so o en leaning ou o shoo , o o he enemy no
aking he „main oad‟ jus o ca ch you om behind.
P obably anyone who had played a shoo e , hey may had no ice hei enemy‟s
in e ac ion in comba , so he playe had wai pa ien ly un il hey show up again so hey
can inish hem.
Ano he example could be Hi man (IO In e ac i e, 2000); whe e s eal h is he main
objec i e, bu wha happens i he playe decides o play in a di e en way? P obably
he playe will each he waypoin , shoo ing ou ageously o e e y enemy, and hen ge
he cinema ic wi h he main cha ac e c ouched down wi h a single d op o blood in his
clo hes.
Those a e wo simple examples o show up ha a big pa o ideogames a e sc ip ed,
bo h in cha ac e s beha io as in he s o y. A lo o ideogames gi es a sensa ion o
open wo ld whe e you can choose be ween wo ac ions, and hen, e e y o he cha ac e
will eac in consequence, bu i is jus ha , a sensa ion.
The idea o his p ojec is o design and p o o ype a sys em which allows ideogame
cha ac e s o ake hei own decisions, being uly in elligen , and being able o ake
hei own ac ions e en i i a e no sc ip ed.
The cha ac e s will ha e hei own a i icial in elligence which will allow hem o
in e ac wi h o he cha ac e s, and based on his decision, ollow hei objec i es and
ake di e en decisions. This in elligence will be designed hanks o a se ies o
in elligen agen s, one o e e y cha ac e in he ideogame, which will allow hem o
pe cep hei en i onmen , p ocess hose pe cep ions and ac based on hei easoning, i
means, acco ding hei belie s, hei wishes and ollowing wha he es ablished as hei
in en ions acing he wo ld.
As explained below, we will inspi e a classic ideo game called The Abbey o
C ime(Ope a So , 1987), in which he e we e e y p imi i e au onomous cha ac e s
who beha ed di e en ly acco ding o he s o y p og essed. We will de elop a es
scena io inspi ed by his game, using a ool called IsoUni y (Pé ez Colado & Pé ez
Colado, 2014) (plugin which ex ends he unc ionali y o he de elopmen en i onmen
Uni y game) and he e will p o e he use ulness o ou sys em.
57
The s uc u e o his epo is as ollows: a e his i s in oduc o y chap e , we ha e a
second chap e in which we e iew he s a e o he a , how is now esea ch and
de elopmen o au onomous cha ac e s in ideo games, wi h some ideas and echniques
which we conside in e es ing. In Chap e 3 we speci y he objec i es o his wo k, in
Chap e 4 indica e wha ou wo king me hod and he ools we ha e. In Chap e 5 we
explain how he analysis, design, implemen a ion and es ing o his p oposed in elligen
sys em which con ols au onomous o m o ideo game cha ac e s based on he
cogni i e model Belie -Desi e-In en ion (called BDI) was. Finally, in Chap e 6 we
discuss he esul s and in Chap e 7 we gi e ou conclusions wi h ou p oposals o
possible lines o con inue ou wo k.
64
Ejecución
Aho a que enemos ambos en o nos co ec amen e ins alados y con igu ados, así como
los p oyec os impo ados, pod emos hace los unciona . Es an sencillo como ene
ambos abie os y lanza los en o den.
P ime o se ejecu a el p oyec o JasonIsoMonks (el se ido ), que queda á a la espe a
has a que IsoMonks (el clien e) es é lis o. Se á en onces cuando se ejecu e el p oyec o
en Uni y y comenza á la comunicación en e ambos en o nos, pudiendo e el escena io
de ejemplo uncionando con no malidad.
Fig. 9.6: Jason espe ando a la ejecución de Uni y
Fig. 9.7: Uni y y Jason ejecu ándose simul áneamen e
65
Anexo 5. Con ibuciones de los pa icipan es
Alejand o Sánchez López
Mi p incipal apo ación al p oyec o ha sido la e e enciada a Uni y, e IsoUni y,
enca gado de e isa el código de los he manos Pé ez Colado y enca gado de las
modi icaciones del mismo.
Me enca gué de desa olla den o de IsoUni y unas modi icaciones ace ca de manda
e en os a a és del socke de in o mación, se gene ó pa a ello una clase asociada a uno
de los obje os gene ados en IsoUni y que consis ía en encapsula cie a in o mación pa a
pode manda la.
También hubo que modi ica la clase p incipal de ejecución del juego „Game.cs’, en la
uncion enca gada de ac ualiza la in e az „ ick()‟, se añadió unas líneas de código pa a
pode acep a los e en os que p o enían a a és del socke .
Fig. 9.6: código de game.cs
En es e agmen o de código se obse a como ecibe un e en o y se encola en la cadena
p incipal de e en os.
Fig. 9.7: paque e connec ion
A con inuación, el paque e conec ion ( éase en la igu a an es mencionada) (los iche o
me a, son c eado po Uni y, asi que no se pasa an a explicación), la clases:
Connec ion.cs: Fiche o con la in e az que con iene las cabece as de las unciones, quse
pasa an a explica en su implemen ación.
Connec ionImp.cs: Fiche o con la clase implemen ado a de las unciones.
66
Las unciones p incipales son las siguien es:
sendE en (bool send, objec e ): unción que ecibe como pa áme o, un booleano pa a
hace el en ío del segundo pa áme o, un e en o del juego, es e p ime o se u iliza pa a
pode isualiza la in o mación sin ene la que manda .
GameE en Recei edE en (): unción que ecibe la in o mación del socke , es la
u ilizada en el bucle de la uncion p incipal, „ ick()’ de „Game.cs‟, la an es mencionada.
Connec ionP ope ies.cs: Fiche o con los de alles de la conexión, que se ex aje on a un
iche o apa e po ema de comodidad si hubie a que modi ica es a in o mación
Fig. 9.8: da os del iche o Connec ionP ope ies.cs
Además, los obje os a modi ica en el mapa e an las celdas, que hubo que adap a las y
modi ica sus a ibu os de clase pa a pode in oduci las modi icaciones necesa ias, y
añadi las un collide
12
pa a la gene ación del e en o.
El e en o consis ía en un JSON, que con enía la id numé ica de la celda gene ado a del
e en o y un mensaje con el ipo de e en o, que e a un id de ipo s ing que
comp obábamos desde el lado de Jason y una cadena de ex o, ambién de ipo s ing.
El lanzado del e en o consis ía en un elemen o de ipo collide de Uni y, que al en a
en „colisión‟ con o o p oducía que la clase asociada a la celda manda a el e en o al
socke .
Los obje os enca gados de en ia la colisión e an los collide s del p opio pe sonaje
p incipal „ ayFe nando’ y de la celda gene ado a del e en o. Al pe sonaje ambién
hubo que modi ica lo pa a pode adap a lo a es a nue a implemen ación, modi icando la
es uc u a del obje o c eado po IsoUni y y po ende el código de los he manos Pé ez
Colado.
También pa a pode en ende la je a quía de las clases y el uncionamien o de las
mismas se hicie on p uebas con mapas, en los que se in oducían ma cado es pa a e el
uncionamien o y las azas de la ejecución del código.
Du an e la pa e de ap endizaje del uncionamien o del lenguaje ASL, se c eó ambién
unas clases de „Debug‟ pa a e la in o mación que podía con ene los agen es y el
en o no y pode obse a mejo como in e ac uaban en e ellos, y e si se pod ían
12
Obje os en Uni y enca gados de los e en os de las colisiones.
67
gene a sob e código Ja a, después de las p uebas que hicimos u ilizando esa clases se
de e minó que los agen es pe enecían al en o no y es e una ez gene ado a a és del
iche o de ca ga, no se podían añadi más.
También ui enca gado de la ealización de las p uebas de luidez y consumo de
memo ia sob e la ejecución de los en o nos de Jason e IsoUni y, cuando se lanzaban
conjun amen e.
68
Fe nando Rome o de la Mo ena
He ealizado di e sas a eas du an e el p oyec o. De las p ime as que ealicé ue la
ins alación y p epa ación de la he amien a IsoUni y en el en o no de desa ollo de
ideojuegos Uni y3D, además de los p ime os pasos con dicha he amien a. Fue
necesa io lee la documen ación apo ada po los au o es de la he amien a y comenza
a ealiza p uebas de diseño con ella. Se p oba on los bloques que IsoUni y a
gene ando, asignándoles las deco aciones pe inen es pa a empeza a c ea un mapa
isual, además de los pe sonajes.
Una de las g andes con ibuciones y desa ollos que hice ue la p epa ación, análisis y
desa ollo del sis ema de comunicación en e Uni y3D y Ja a. Es o ue lle ado a cabo
median e un desa ollo de un clien e-se ido UDP que, median e socke s in e cambian
la in o mación de los dis in os en o nos, odo es o almacenado en JSON. Es e desa ollo
u o que i mejo ando con el paso del iempo, ya que según se a anzó en el p oyec o,
salían a la luz p oblemas que no pude e eni en un p incipio. Uno de es os p oblemas
ue que el se ido dejaba de esponde ya que se quedaba espe ando a algo que nunca
llegaba, un e en o. Es o p o ocaba que se pa a a po comple o la ejecución, y ue a
necesa io einicia lo. Es o se a egló con la c eación de los hilos de p ocesos.
Una ez e minada la comunicación, había que empeza a implemen a los mé odos que
ha ían unciona a los agen es en el lenguaje ASL. Es udié los dis in os ejemplos que se
encuen an en in e ne sob e dicho lenguaje, y empecé a implemen a nues as ideas.
Los p ime os pasos ue on cómodos y áciles, pe o según se a anzó en el desa ollo de
u inas más in incadas, hubo que aden a se más a ondo en cómo uncionaba a bajo
ni el Jason.
Fig. 9.9: uncionamien o in e no de agen es ASL
69
Teníamos un e o de concep o en cuan o a cómo uncionaba Jason, ya que pensábamos
que la Belie Base se ac ualizaba di ec amen e desde código Ja a, y es o no e a así.
Viendo la imagen de a iba pude comp ende que ealmen e al agen e sólo le llegan las
pe cepciones, y no ac ualizaciones di ec as de la Belie Base. Son dichas pe cepciones
las que ac ualizan dicha Belie Base. Con es o desa ollado pude c ea una u ina simple
pa a un agen e y que, al p o oca un “bloqueo” en dicha u ina, po pa e del jugado , el
agen e modi ica a su c eencia sob e algo, y u ie a que modi ica sus planes y sus me as
pa a pode con inua con dicha u ina.
Una ez que se consiguió comp ende cómo uncionaba y qué se es aba haciendo mal,
ui capaz de desa olla un mé odo que, dado un agen e, gene a a sus p opios planes en
unción de sus c eencias.
Es impo an e des aca el abajo de in es igación que u e que hace sob e el lenguaje
de p og amación Jason y cómo unciona a bajo ni el, ya que la documen ación y
ejemplos que hay en in e ne , además de se escasos, son bas an e pob es en cuan o a
in o mación. Todo lo que se pudo implemen a ue po la unión de conocimien os de
dis in as uen es.
Pa a inaliza , los úl imos pasos que di en el desa ollo de es e p oyec o, ue el
desa ollo de es a memo ia, que jun o a mis compañe os, hemos ealizado. El abajo
ue epa ido pa a que odos pudié amos con a en los dis in os apa ados las pa es que
más conocimien os eníamos. Es po ello que me he enca gado de las pa es de
comunicación en e en o nos y de e minadas pa es de la memo ia que hablan de Jason
y su compo amien o, o su uncionamien o. O a de las pa es que me enca gué en la
memo ia ue el análisis del ac ual me cado de ideojuegos y cómo uncionan en cuan o
a mecanismos de in eligencia a i icial se e ie e, lo que me daba ideas de
implemen ación pa a nues o p opio p oyec o, las cuales, algunas se han podido lle a a
cabo y o as no po al a de iempo, pe o que sin duda se ían muy in e esan es de
implemen a en un u u o.
70
Héc o Ma ín Solís
Du an e el desa ollo de es e p oyec o, se ha in en ado hace que el epa o de a eas
uese lo más equi a i o posible, siemp e in en ando hace que cada uno ealizase una
pa e simila de abajo. De igual mane a, pues o que nues o T abajo Fin de G ado
consis ía en dos en o nos de desa ollo di e en es, con di e en es lenguajes, algunos
eníamos más expe iencia que o os en un en o no u o o.
No obs an e, hemos a ado de ap ende a maneja ambos en o nos y lenguajes, pe o
ob iamen e, nos di idimos las a eas de mane a que cada uno es u iese más
desen uel o en su en o no.
Po mi pa e, en un p incipio me enca gué de in es iga cómo uncionaba Jason, pues o
que e a algo nue o pa a odos noso os. Yo, pe sonalmen e había abajado en alguna
ocasión con algún lenguaje decla a i o como P olog, po lo que me esul o un poco
menos di ícil de en ende .
En los p ime os pasos, an o Fe nando como yo, uimos indagando en los ejemplos que
p opo cionaba la página de Jason y a ando con su he amien a. Con los ejemplos que
más a amos ue on con los Gold Mine s y con Domes ic Robo , que nos ayuda on
mucho a en ende cómo se comunicaban es os agen es.
Fig. 9.10: ejemplo de Gold Mine s en uncionamien o
Una ez en endido que es os agen es se „desplegaban‟ sob e un en o no común a odos,
a amos de impo a los ejemplos que p opo ciona la documen ación de Jason a Eclipse
pa a ejecu a los y ene una idea más p ác ica del uncionamien o de es os agen es en el
en o no, y cómo se conec aba con Ja a pu o.
71
T as es a in es igación con los ejemplos, empezamos con la ins alación de Jason en
Eclipse e in en ando lanza los p ime os agen es a in e ac ua . C eamos un en o no
pe sonalizado de la Abadía donde iban a es a nues os agen es „ ailes‟.
Mien as que Alejand o con igu aba la pa e de la conexión en la pa e de IsoUni y, y
Fe nando hacía esa misma pa e pa a Ja a, yo con inué a anzando en el desa ollo de la
pa e Jason den o de Ja a. Fue en onces cuando conseguimos comp ende la
comunicación en e Jason y Ja a, cuya unción main e a aho a la unción ini que
p opo cionaba Jason, y apa i de ese pequeño, pe o i al „descub imien o‟,
conseguimos con igu a median e Ja a el en o no donde se iban a desplega los agen es.
Cuando la pa e de IsoUni y no eque ía an o abajo como la de Jason, nos cen amos
odos un poco más en es a úl ima sin ol ida nos de la p ime a, a anzando en la
in e comunicación de agen es y aumen ando poco a poco sus u inas, con ol de
acciones, c eencias, planes, e cé e a.
Toda la pa e de Jason es la que más complicaciones nos ha supues o, pues o que en su
página, pese a que explican el uncionamien o in e no de los agen es, así como el
lenguaje Agen Speak en el que se desa ollan, no se habla apenas de su in eg ación y
uncionamien o en en o nos de desa ollo como Eclipse.
Po mi pa e, modi iqué pequeños agmen os de código de IsoUni y pa a con igu a las
en idades que manejaba. También apo é bas an e al desa ollo isual, cons uyendo una
de las úl imas ampliaciones inales del mapa.
72