<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0120-6230</journal-id>
<journal-title><![CDATA[Revista Facultad de Ingeniería Universidad de Antioquia]]></journal-title>
<abbrev-journal-title><![CDATA[Rev.fac.ing.univ. Antioquia]]></abbrev-journal-title>
<issn>0120-6230</issn>
<publisher>
<publisher-name><![CDATA[Facultad de Ingeniería, Universidad de Antioquia]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0120-62302010000300020</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Uso de la metodología GAIA para modelar el comportamiento de personajes en un juego de estrategia en tiempo real]]></article-title>
<article-title xml:lang="en"><![CDATA[Use of GAIA for modeling the behavior of characters in a real time strategy game]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Muñoz]]></surname>
<given-names><![CDATA[Norman]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Cobos]]></surname>
<given-names><![CDATA[Carlos]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Rivera]]></surname>
<given-names><![CDATA[William]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[López]]></surname>
<given-names><![CDATA[Jaime]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Mendoza]]></surname>
<given-names><![CDATA[Martha]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad del Cauca Departamento de Sistemas Grupo de I+D en Tecnologías de la Información]]></institution>
<addr-line><![CDATA[Popayán ]]></addr-line>
<country>Colombia</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>06</month>
<year>2010</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>06</month>
<year>2010</year>
</pub-date>
<numero>53</numero>
<fpage>214</fpage>
<lpage>224</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S0120-62302010000300020&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S0120-62302010000300020&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S0120-62302010000300020&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[Los juegos modernos en su permanente búsqueda por capturar más la atención de sus jugadores, requieren de técnicas de Inteligencia Artificial que les permita a los personajes asumir comportamientos más cercanos o parecidos a la realidad. Para lograr esto, existen muchas técnicas que se pueden utilizar, pero en los últimos años el uso de agentes inteligentes ha tomado gran importancia, ya que las propiedades de los personajes encajan perfectamente con la definición de dicha técnica. En este artículo, se presentan los principales resultados de investigación y la forma como se usó la metodología GAIA para el modelamiento del comportamiento de los personajes en un juego de estrategia de tiempo real llamado Independencia (basado en la Revolución de los Comuneros de la Independencia de Colombia).]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[The modern games in its permanent search to get players attention in a greater way require artificial intelligence techniques that allow the characters to acquire behaviors closer or similar to reality. To do this, there are many techniques that can be used, but recently the use of intelligent agents has gained great importance, since the characters properties fit perfectly with the definition of this technique. In this paper, we present the main results of research and the way how the GAIA methodology was used for modeling the behavior of the characters in a real time strategy game called Independencia (based on the "Comuneros" Revolution of the Colombian Independence).]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[GAIA]]></kwd>
<kwd lng="es"><![CDATA[agentes]]></kwd>
<kwd lng="es"><![CDATA[modelamiento]]></kwd>
<kwd lng="es"><![CDATA[juego de estrategia]]></kwd>
<kwd lng="en"><![CDATA[GAIA]]></kwd>
<kwd lng="en"><![CDATA[agents]]></kwd>
<kwd lng="en"><![CDATA[modeling]]></kwd>
<kwd lng="en"><![CDATA[strategic game]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="center"><font face="Verdana" size="4"> <b>Uso de la metodolog&iacute;a GAIA para modelar el comportamiento de personajes en un juego de estrategia en tiempo real</b></font></p>      <p align="center"><font face="Verdana" size="4"> <b>Use of GAIA for modeling the behavior of characters in a real time strategy game</b></font></p>      <p> <font face="Verdana" size="2"><i>Norman Mu&ntilde;oz, Carlos Cobos*, William Rivera, Jaime L&oacute;pez, Martha Mendoza</i></font></p>      <p><font face="Verdana" size="2">Grupo de I+D en Tecnolog&iacute;as de la Informaci&oacute;n, Departamento de Sistemas, Universidad del Cauca. Sector Tulc&aacute;n, Edificio FIET, Oficina 422, Popay&aacute;n, Colombia</font></p>  <hr noshade size="1">      <p><font face="Verdana" size="3"> <b>Resumen</b></font></p>      <p><font face="Verdana" size="2">Los juegos modernos en su permanente b&uacute;squeda por capturar m&aacute;s la atenci&oacute;n de sus jugadores, requieren de t&eacute;cnicas de Inteligencia Artificial que les permita a los personajes asumir comportamientos m&aacute;s cercanos o parecidos a la realidad. Para lograr esto, existen muchas t&eacute;cnicas que se pueden utilizar, pero en los &uacute;ltimos a&ntilde;os el uso de agentes inteligentes ha tomado gran importancia, ya que las propiedades de los personajes encajan perfectamente con la definici&oacute;n de dicha t&eacute;cnica. En este art&iacute;culo, se presentan los principales resultados de investigaci&oacute;n y la forma como se us&oacute; la metodolog&iacute;a GAIA para el modelamiento del comportamiento de los personajes en un juego de estrategia de tiempo real llamado Independencia (basado en la Revoluci&oacute;n de los Comuneros de la Independencia de Colombia).</font></p>      <p><font face="Verdana" size="2"><b><i>Palabras clave: </i></b>GAIA, agentes, modelamiento, juego de estrategia </font></p>  <hr noshade size="1">      <p><font face="Verdana" size="3"> <b>Abstract</b></font></p>      <p><font face="Verdana" size="2">The modern games in its permanent search to get players attention in a greater way require artificial intelligence techniques that allow the characters to acquire behaviors closer or similar to reality. To do this, there are many techniques that can be used, but recently the use of intelligent agents has gained great importance, since the characters properties fit perfectly with the definition of this technique. In this paper, we present the main results of research and the way how the GAIA methodology was used for modeling the behavior of the characters in a real time strategy game called Independencia (based on the "Comuneros" Revolution of the Colombian Independence).</font></p>        <p><font face="Verdana" size="2"><b>Keywords: </b>GAIA, agents, modeling, strategic game</font></p>  <hr noshade size="1">      ]]></body>
<body><![CDATA[<p><font face="Verdana" size="3"><b>Introducci&oacute;n</b></font></p>      <p><font face="Verdana" size="2">Existen muchas t&eacute;cnicas para el modelado del comportamiento de los personajes en los juegos modernos [1], destac&aacute;ndose las m&aacute;quinas de estados finitos (MEF, permiten modelar el comportamiento de un sistema a trav&eacute;s de un n&uacute;mero limitado de estados y un conjunto de transiciones de estado), los agentes y el scripting (lenguaje de programaci&oacute;n de cuarta generaci&oacute;n que simplifica alguna tarea compleja para un programa particular; su alcance puede variar desde un simple archivo de configuraci&oacute;n hasta un complejo lenguaje interpretado en tiempo de ejecuci&oacute;n [1]), sin demeritar la importancia de las redes neuronales y la l&oacute;gica difusa, entre otras. Sin embargo, las tres primeras se han impuesto en esta &aacute;rea, debido a su f&aacute;cil codificaci&oacute;n y a los excelentes resultados que ofrecen en el corto tiempo [2].    <br>    <br>  En este art&iacute;culo se presentan los principales resultados de investigaci&oacute;n de un proyecto que busc&oacute; el desarrollo de un video juego de estrategia en 3D basado en un hecho hist&oacute;rico de la campa&ntilde;a de Independencia de la Rep&uacute;blica de Colombia denominado INDEPENDENCIA 1.0 [3]. Este videojuego se bas&oacute; en la revoluci&oacute;n de los Comuneros y muestra la campa&ntilde;a desde el Socorro (Santander - Colombia) hasta la Capital bajo las &oacute;rdenes del general Juan Francisco Berbeo. En la figura 1 se muestra una imagen de algunos de los personajes que fueron implementados en el juego de estrategia, Tres campesinos a pie y uno a caballo, confrontando a dos peones realistas (conquistadores).    <br>    <br>  A continuaci&oacute;n se presentan trabajos relacionados con los juegos, el concepto de agente y un resumen de GAIA [4]. En la siguiente secci&oacute;n, se presenta la forma como se us&oacute; GAIA para el an&aacute;lisis y dise&ntilde;o del juego, y luego se muestran los resultados de la investigaci&oacute;n: arquitectura general de un motor orientado a objetos, visualizador de modelos, editor de terrenos, buscador de caminos y el juego en si mismo. Finalmente, se muestran las conclusiones y el trabajo futuro.</font></p>      <p align="center"><img src="img/revistas/rfiua/n53/n53a20i01.gif"><a name="figura1"></a></p>      <p><font face="Verdana" size="2"> <b>Figura 1 </b>Personajes del juego de estrategia</font></p>      <p><font face="Verdana" size="2"><b><i>Trabajos relacionados</i></b></font></p>      <p><font face="Verdana" size="2">El inter&eacute;s por dotar a los personajes de los videojuegos de un comportamiento m&aacute;s pr&oacute;ximo al del ser humano no es nuevo. John Laird y Michael Van Lent [5] de la Universidad de Michigan utilizan t&eacute;cnicas de Inteligencia Artificial, como los agentes software, para lograr este prop&oacute;sito. Es precisamente John Laird uno de los investigadores que ha hecho grandes aportes en el tema, ya que en su grupo de investigaci&oacute;n ha desarrollado un proyecto (SOAR/Games Project)[5] basado en agentes que provee a los investigadores de un conjunto de ambientes para hacer pruebas en &aacute;reas como aprendizaje de m&aacute;quinas, arquitecturas inteligentes y dise&ntilde;o de interfaces; y a los desarrolladores de juegos de un ambiente para hacer juegos m&aacute;s divertidos al poder crear agentes m&aacute;s inteligentes y reales [6]. Sin embargo no todos los programadores de videojuegos de estrategia deciden usar agentes para dotar de inteligencia a sus personajes, en tal sentido, pueden usar otras t&eacute;cnicas como por ejemplo el uso de grafos [7].    ]]></body>
<body><![CDATA[<br>    <br>  De todas maneras, si un desarrollador desea que el comportamiento de los personajes (o unidades) sea m&aacute;s pr&oacute;ximo a la realidad, es conveniente utilizar t&eacute;cnicas de Inteligencia Artificial. Al respecto Nayerek propone la utilizaci&oacute;n de agentes aut&oacute;nomos para el modelado del comportamiento de personajes en videojuegos, para probar que es posible aplicar esta t&eacute;cnica para resolver problemas como el manejo de tiempo real, din&aacute;mica, recursos y conocimiento incompleto [8]. Un buen ejemplo de la utilizaci&oacute;n de agentes en juegos es &lt;&lt;Empire Earth&gt;&gt; de Sierra [9] en el cual la Inteligencia Artificial se compone de varios agentes llamados administradores [10]. Juegos como Civilization [11], Balance of Power [12] y Populous [13] usan la tecnolog&iacute;a de agentes para reaccionar a las acciones del jugador tal como lo har&iacute;a un ser humano, logrando que los jugadores piensen que se trata de un oponente real.    <br>    <br>  Este trabajo, es un caso exitoso del uso de GAIA y de los agentes de software para modelar los personajes de un juego de estrategia, en el que adem&aacute;s, se convirtieron los modelos basados en GAIA a una implementaci&oacute;n en Visual C++ usando un motor de juegos orientado a objetos que tambi&eacute;n se desarroll&oacute; en el proyecto (dicho motor se explica en forma detallada en [14]).</font></p>      <p><font face="Verdana" size="2"><b><i>Marco conceptual</i></b></font></p>      <p><font face="Verdana" size="2">Un agente es un sistema de computador capaz de realizar acciones independientes en beneficio de su propietario o usuario, es decir, son aut&oacute;nomos. Por esto, un agente es capaz de actuar independientemente, exhibiendo control sobre su estado interno, para lo cual hace uso de su percepci&oacute;n interna del ambiente en el que se desenvuelve [1]. Generalmente, los agentes en un juego son conjuntos de MEF que trabajan cada uno en un problema particular y se comunican con los dem&aacute;s.    <br>    <br>  GAIA es una metodolog&iacute;a para realizar los procesos de an&aacute;lisis y dise&ntilde;o orientados a agentes. Esta metodolog&iacute;a hace uso de una serie de modelos de an&aacute;lisis y dise&ntilde;o (ver [4] para m&aacute;s detalle). La etapa de an&aacute;lisis en GAIA busca el entendimiento del sistema y su estructura como una <i>organizaci&oacute;n</i>. Una organizaci&oacute;n puede ser vista como un conjunto de roles que mantienen ciertos tipos de interacci&oacute;n con otros roles en el sistema. Un rol se define en GAIA por cuatro atributos: las responsabilidades, los permisos, las actividades y los protocolos. Las responsabilidades, a su vez, pueden fraccionarse en dos categor&iacute;as: las propiedades de vida y las propiedades de seguridad. Las responsabilidades determinan la funcionalidad y son tal vez los atributos claves asociados con un rol. Los permisos identifican los recursos que el rol tiene disponibles para realizar sus responsabilidades. Por lo general, estos tienden a ser recursos de informaci&oacute;n y con cada recurso habr&aacute; asociados unos derechos vinculados como por ejemplo: leer, cambiar o generar el recurso. Las actividades representan acciones privadas u operaciones que el agente puede completar sin la necesidad de interactuar con otros agentes en el sistema. Los protocolos definen las formas en que un agente asumiendo dicho rol podr&iacute;a interactuar con otros agentes. Durante el an&aacute;lisis con GAIA se generan dos tipos de modelos: de roles y de interacci&oacute;n.    <br>    <br>  <i>El Modelo de Roles:</i> Permiten identificar los distintos tipos de roles que se encuentran en el sistema. Con cada rol hay asociados unos permisos y unas responsabilidades. Las responsabilidades son de dos tipos, de vida y de seguridad. Con estos conceptos, se puede especificar un esquema de rol para cada tipo de rol en la organizaci&oacute;n y conformar as&iacute; el modelo de roles. Un esquema de rol presenta una descripci&oacute;n del rol, sus protocolos y actividades, sus permisos y las responsabilidades de vida y seguridad.    ]]></body>
<body><![CDATA[<br>    <br>  <i>El Modelo de Interacci&oacute;n:</i> Es una serie de definiciones de protocolo, una para cada tipo distinto de interacci&oacute;n entre los roles. Cada definici&oacute;n de protocolo consiste de un prop&oacute;sito de la interacci&oacute;n, los roles iniciador y receptor de la misma, las entradas y salidas y el procesamiento ejecutado.    <br>    <br>  El proceso de dise&ntilde;o en GAIA involucra la transformaci&oacute;n de los modelos de an&aacute;lisis a un nivel de abstracci&oacute;n suficientemente bajo para que sea posible implementar los agentes haciendo uso de las t&eacute;cnicas de dise&ntilde;o tradicionales, tales como las que hacen uso de la orientaci&oacute;n a objetos. En la etapa de dise&ntilde;o, GAIA hace uso de tres tipos de modelos: el modelo de agentes, el modelo de servicios y el modelo de conocidos.    <br>    <br>  <i>El Modelo de Agentes</i>: Permite definir los diferentes tipos de agente que se podr&aacute;n encontrar en el sistema y el n&uacute;mero de instancias que se tendr&aacute;n de cada uno en tiempo de ejecuci&oacute;n. Un tipo de agente es un conjunto de roles, es decir, un tipo de agente puede asumir uno o m&aacute;s roles aunque lo contrario no es cierto. El modelo de agentes se construye mediante un &aacute;rbol de tipos de agentes, en el cual los nodos hoja corresponden a los roles y los restantes a los tipos de agentes. Para cada tipo de agente se debe definir un cuantificador de instancia, el cual precisa el n&uacute;mero de instancias que se tendr&aacute;n en el sistema en tiempo de ejecuci&oacute;n (ver [4] para m&aacute;s detalles)    <br>    <br>  <i>El Modelo de Servicios:</i> Expone los servicios que cada tipo de agente va a implementar, entendiendo por servicio, cierta funcionalidad. Cada servicio es derivado de las actividades y protocolos, as&iacute; como de sus propiedades de vida y seguridad encontradas en la etapa de an&aacute;lisis. El modelo de servicios se compone de las propiedades de cada uno de los servicios: las entradas, las salidas, las precondiciones y las poscondiciones. Las entradas y salidas proceden en forma directa del modelo de protocolos. Las precondiciones y las poscondiciones constituyen limitantes en los servicios y son derivadas de las propiedades de un rol.    <br>    <br>  <i>El Modelo de Conocidos:</i> Permite precisar los enlaces de comunicaci&oacute;n que existen entre tipos de agentes e identificar posibles problemas de embotellamiento surgidos por el uso de estos canales de comunicaci&oacute;n. El modelo es un grafo dirigido, en donde cada nodo corresponde a un tipo de agente y las aristas se relacionan con los caminos de comunicaci&oacute;n. As&iacute; pues, un grafo <b>A</b>  <b>B</b>, muestra que hay un camino de <b>A</b> a <b>B</b>, pero no necesariamente de <b>B</b> a <b>A</b>.</font></p>      ]]></body>
<body><![CDATA[<p><font face="Verdana" size="2"><b><i>El an&aacute;lisis y dise&ntilde;o de independencia</i></b></font></p>      <p><font face="Verdana" size="2">En Independencia se decidi&oacute; tomar GAIA como metodolog&iacute;a para el modelado de la inteligencia de los personajes del juego, ya que brinda dos fortalezas principales: 1) es orientada a agentes, lo cual permitir&iacute;a posteriormente hacer uso de los mismos como eje central de la l&oacute;gica del juego. 2) no impone restricciones en la implementaci&oacute;n, brindando al desarrollador la posibilidad de escoger la estructura de implementaci&oacute;n deseada [4]. Esta decisi&oacute;n no s&oacute;lo permiti&oacute; el modelado del comportamiento de los personajes, sino que permiti&oacute; explorar una t&eacute;cnica de vanguardia en el mundo de los juegos y que est&aacute; siendo adoptada por grandes casas de desarrollo de juegos como Sierra y su t&iacute;tulo Empire Earth.    <br>    <br>  GAIA se us&oacute; &uacute;nicamente para el modelado del comportamiento de los personajes y todos los personajes que intervienen en la historia del juego representan integrantes de un ej&eacute;rcito. Cada uno de ellos se denomina una Unidad, y en el caso especial de Juan Francisco Berbeo, es denominada Pr&oacute;cer. El comportamiento que puede ser asumido por &eacute;stos actores se resume en el diagrama de <b>casos de uso</b> que se muestra en la <a href="#figura2">figura 2</a>, en el cual se observa que el actor Unidad puede vigilar, caminar, atacar a un enemigo, recibir un ataque, escuchar el grito comunero y morir, mientras que el actor Pr&oacute;cer puede asumir todo el comportamiento de una Unidad y adicionalmente puede lanzar el grito comunero.</font></p>      <p align="center"><img src="img/revistas/rfiua/n53/n53a20i02.gif"><a name="figura2"></a></p>      <p><font face="Verdana" size="2"> <b>Figura 2 </b>Casos de uso para el comportamiento de los personajes</font></p>      <p><font face="Verdana" size="2">Cuando una unidad se encuentra en estado de vigilancia, constantemente verifica si hay enemigos en el &aacute;rea dentro de su rango de visi&oacute;n y de ser as&iacute;, decide atacar a la unidad enemiga visualizada. Si la unidad decide atacar, se mueve hasta que el objetivo se encuentre dentro del rango de ataque y cuando suceda lo anterior, la unidad hace que su enemigo reciba el ataque. Cuando una unidad recibe un ataque, disminuye sus puntos de vida de acuerdo al poder de ataque de la unidad que realiza el ataque, combinado con la protecci&oacute;n o armadura de la unidad atacada. Si luego de recibir un ataque, los puntos de vida de la unidad son menores o iguales a cero, la unidad muere. Luego de realizar un ataque, la unidad debe esperar un tiempo dado para poder realizar el siguiente ataque, dicho tiempo est&aacute; determinado por la velocidad de ataque de la unidad. Adicionalmente, una unidad puede caminar desde su posici&oacute;n actual a una nueva posici&oacute;n deseada en el terreno, para lo cual la unidad calcula la ruta e inicia el recorrido.    <br>    <br>  El tipo especial de unidad denominada Pr&oacute;cer, tiene la habilidad de lanzar un grito de batalla que incentiva a los combatientes comuneros para que ataquen con m&aacute;s empe&ntilde;o. En el momento en que el pr&oacute;cer decide lanzar el grito, determina si ha pasado un tiempo suficiente desde la &uacute;ltima vez que lo hizo para poder volver a lanzarlo. De ser as&iacute;, las unidades de su ej&eacute;rcito que est&aacute;n al &lt;alcance del grito&gt; pueden escucharlo e incrementan su poder de ataque durante un lapso de tiempo determinado por la duraci&oacute;n del grito.    <br>    ]]></body>
<body><![CDATA[<br>  Con esta informaci&oacute;n sobre el funcionamiento del sistema y siguiendo la metodolog&iacute;a GAIA se pudo determinar que en el juego todos los personajes que intervienen juegan el rol de una <i>Unidad</i>. Este rol se detalla en la <a href="#tabla1">tabla 1</a> mediante su <i>esquema de rol</i>.</font></p>      <p><font face="Verdana" size="2"> <b>Tabla 1 </b>Modelo de roles. Esquema del rol Unidad</font></p>      <p align="center"><img src="img/revistas/rfiua/n53/n53a20t01.gif"><a name="tabla1"></a></p>      <p><font face="Verdana" size="2">De la <a href="#tabla1">tabla 1</a> se puede resaltar lo siguiente: <b><i>Terreno</i></b> es un recurso que representa la informaci&oacute;n geogr&aacute;fica del terreno donde esta la unidad. <b><i>Mapa</i></b> es un recurso que representa la informaci&oacute;n acerca de los obst&aacute;culos en el terreno. Esta informaci&oacute;n es utilizada por las unidades cuando desean desplazarse de un lugar a otro dentro del terreno; por tal motivo esta informaci&oacute;n se encuentra en cambio constante. Y <b><i>EsProcer</i></b> es un recurso de s&oacute;lo lectura para la unidad, el cual le indica si puede, cada cierto intervalo de tiempo y a petici&oacute;n del usuario, incentivar a las unidades amigas que se encuentren cercanas a ella emitiendo el grito comunero. El tipo de unidad con esta capacidad es llamada Pr&oacute;cer.    <br>    <br>  Luego de identificar los roles, era necesario definir c&oacute;mo iban a interactuar los agentes entre s&iacute; dependiendo del rol que cada uno desempe&ntilde;a en el sistema. Esto se logr&oacute; especificando los protocolos asociados a cada rol mediante el <b>modelo de interacci&oacute;n</b>. Para el caso del rol Unidad se definieron los siguientes protocolos: Atacar y GritoComunero.    <br>    <br>  <i>El Protocolo ATACAR</i>: Este protocolo (<a href="#tabla2">tabla 2</a>) se puede visualizar desde las perspectivas de la unidad que ataca y de la unidad que recibe el ataque. Desde el punto de vista de la unidad que ataca, est&eacute; protocolo es utilizado cuando la unidad visualiza a una unidad enemiga dentro del espacio abarcado por su rango de visi&oacute;n. Por otro lado, la unidad que recibe el ataque hace uso de este protocolo cuando una unidad enemiga ha completado un ataque en contra de ella; el resultado de esto es la disminuci&oacute;n de los puntos de vida de la unidad receptora en una cantidad que depende del valor del ataque, llegando posiblemente a pasar al estado de muerte si sus puntos de vida llegan a ser menores o iguales a cero.</font></p>      <p><font face="Verdana" size="2"> <b>Tabla 2 </b>Definici&oacute;n del protocolo Atacar </font></p>      <p align="center"><img src="img/revistas/rfiua/n53/n53a20t02.gif"><a name="tabla2"></a></p>      ]]></body>
<body><![CDATA[<p><font face="Verdana" size="2"><i>El Protocolo GRITOCOMUNERO</i>: Este protocolo (<a href="#tabla3">tabla 3</a>) es b&aacute;sicamente una habilidad especial que puede tener una unidad (denominada pr&oacute;cer) y consiste en hacer que las unidades amigas cercanas a ella incrementen su nivel de ataque durante un tiempo determinado.</font></p>      <p><font face="Verdana" size="2"> <b>Tabla 3 </b>Definici&oacute;n del protocolo GritoComunero</font></p>      <p align="center"><img src="img/revistas/rfiua/n53/n53a20t03.gif"><a name="tabala3"></a></p>      <p><font face="Verdana" size="2">El siguiente paso busc&oacute; determinar lo diferentes tipos de agentes que tiene el sistema. Dado que &uacute;nicamente se identific&oacute; el rol <i>Unidad</i>, se defini&oacute; un solo tipo de agente que se denomin&oacute; <i>AgenteUnidad</i> y que podr&iacute;an coexistir varias instancias (cuantificador +) de este tipo de agente en un instante dado en tiempo de ejecuci&oacute;n (ver el <b>modelo de agentes</b> en la <a href="#figura3">figura 3</a>).    <br>    <br>  A continuaci&oacute;n se busc&oacute; especificar los servicios (o funcionalidad) que deb&iacute;an implementar cada tipo de agente. Para esto se tuvo en cuenta la informaci&oacute;n de las actividades, protocolos y propiedades de vida y de seguridad de la etapa de an&aacute;lisis. De esta manera se lleg&oacute; a la creaci&oacute;n del <b>modelo de servicios</b> para el tipo de agente <i>AgenteUnidad</i> que se presenta en la <a href="#tabla4">tabla 4</a>.</font></p>      <p align="center"><img src="img/revistas/rfiua/n53/n53a20i03.gif"><a name="figura3"></a></p>      <p><font face="Verdana" size="2"> <b>Figura 3 </b>Modelo de agentes</font></p>      <p><font face="Verdana" size="2"> <b>Tabla 4 </b>Modelo de servicio</font></p>      <p align="center"><img src="img/revistas/rfiua/n53/n53a20t04.gif"><a name="tabla4"></a></p>      ]]></body>
<body><![CDATA[<p><font face="Verdana" size="2">Para finalizar el dise&ntilde;o se establecieron los enlaces de comunicaci&oacute;n que se pod&iacute;an dar entre los distintos tipos de agentes. Debido a que los personajes del juego no son entes aislados y est&aacute;n en continua interacci&oacute;n con los dem&aacute;s, se realiz&oacute; el <b>modelo de conocidos</b> (<a href="#figura4">figura 4</a>) donde se muestra la comunicaci&oacute;n entre los agentes del tipo <i>AgenteUnidad</i> con otros del mismo tipo.</font></p>      <p align="center"><img src="img/revistas/rfiua/n53/n53a20i04.gif"><a name="figura4"></a></p>      <p><font face="Verdana" size="2"> <b>Figura 4 </b>Modelo de conocidos</font></p>      <p><font face="Verdana" size="2">Terminado el an&aacute;lisis y dise&ntilde;o del comportamiento de los personajes del juego usando GAIA se tuvo claro la existencia de un tipo de agente denominado AgenteUnidad, del cual ya conoc&iacute;amos su comportamiento, propiedades y modo de interacci&oacute;n. Esto facilit&oacute; la posterior integraci&oacute;n con el dise&ntilde;o UML de los dem&aacute;s componentes del juego y finalmente su implementaci&oacute;n mediante clases en lenguaje C++. Todo fue posible gracias a que la metodolog&iacute;a desliga el an&aacute;lisis y el dise&ntilde;o de los agentes, de la plataforma y herramientas usadas para la implementaci&oacute;n.    <br>    <br>  Debido a que en este videojuego el comportamiento de los personajes es relativamente simple, la implementaci&oacute;n de los agentes usando C++ fue posible y no tuvo una alta complej idad. Sin embargo, si se implementan caracter&iacute;sticas m&aacute;s complejas como comportamiento social y econ&oacute;mico de la sociedad dentro del juego, su implementaci&oacute;n con C++ puede llegar a volverse compleja y dif&iacute;cil de mantener por lo cual ser&iacute;a conveniente analizar la posibilidad de implementar los agentes usando lenguajes declarativos o combinar el resultado de GAIA con otras t&eacute;cnicas de inteligencia artificial como el scripting.</font></p>      <p><font face="Verdana" size="2"><b><i>Principales productos de la investigaci&oacute;n</i></b></font></p>      <p><font face="Verdana" size="2">Para el desarrollo de video juegos es preciso tener en cuenta varios conceptos, uno de ellos, el gui&oacute;n, que normalmente es desarrollado por un profesional de la comunicaci&oacute;n, las artes o la sociolog&iacute;a. Desde la perspectiva t&eacute;cnica, es preciso tener en cuenta los prerrequisitos matem&aacute;ticos, entre ellos, la teor&iacute;a de vectores, matrices, rayos y rotaci&oacute;n de ejes, los cuales son de gran utilidad para trabajar en espacios tridimensionales. Un concepto b&aacute;sico son las losas, que permiten la conformaci&oacute;n del terreno del juego. Teniendo definidas las losas, se debe pensar en c&oacute;mo se va a hacer para desplazar a una unidad (personaje) desde un punto A hasta un punto B del mapa, y m&aacute;s a&uacute;n, gracias a las propiedades de las losas, hay que establecer si hay obst&aacute;culos que puedan alterar dicho desplazamiento. A este problema se le conoce como la b&uacute;squeda de camino. Otro tema importante, consiste en definir la API que se usar&aacute; para el desarrollo del video juego, entre ellas: DirectX y OpenGL. Teniendo en cuenta que estas APIs no ofrecen un modelo orientado objetos para su uso. Se dise&ntilde;o y desarrollo un motor orientado a objetos como base de la implementaci&oacute;n del proyecto. En la <a href="#figura5">figura 5</a> se puede apreciar una vista general del motor (m&aacute;s detalles en referencia [14]).    <br>    <br>  El desarrollo de un juego es un trabajo eminentemente interdisciplinario. En este sentido, el trabajo que el dise&ntilde;ador de los personajes realiz&oacute;, necesit&oacute; de una herramienta que permitiera validar si los modelos construidos en un software de terceros, se pod&iacute;a visualizar adecuadamente con las opciones dadas por el motor de juegos. Por lo anterior, se construy&oacute; una aplicaci&oacute;n para la visualizaci&oacute;n y prueba de los modelos, la cual se muestra en la <a href="#figura6">figura 6</a>.    ]]></body>
<body><![CDATA[<br>    <br>  Adem&aacute;s, como los modelos gr&aacute;ficos desarrollados por el dise&ntilde;ador no s&oacute;lo correspond&iacute;an a personajes del juego sino tambi&eacute;n a objetos del ambiente, como por ejemplo, casas, &aacute;rboles, iglesias, entre otros, y adem&aacute;s que se necesitaba tener claro como estos elementos se organizaban en el entorno del juego se necesit&oacute; desarrollar una herramienta software (basada en el motor) que permitiera crear o definir el terreno del juego (<a href="#figura7">figura 7</a>). Logrando con ella ubicar los objetos de ambientaci&oacute;n y definir propiedades adicionales a las losas, como por ejemplo el nivel de la superficie (colinas, llanuras, entre otros).</font></p>      <p align="center"><img src="img/revistas/rfiua/n53/n53a20i05.gif"><a name="figura5"></a></p>      <p><font face="Verdana" size="2"> <b>Figura 5 </b>Vista general del motor 3D oreintado a ojetos</font></p>      <p align="center"><img src="img/revistas/rfiua/n53/n53a20i06.gif"><a name="figura6"></a></p>      <p><font face="Verdana" size="2"> <b>Figura 6 </b>Ventana principal del visor de modelos </font></p>      <p align="center"><img src="img/revistas/rfiua/n53/n53a20i07.gif"><a name="figura7"></a></p>      <p><font face="Verdana" size="2"> <b>Figura 7 </b>Editor de terrenos</font></p>      <p><font face="Verdana" size="2">Terminada la construcci&oacute;n de modelos (personajes y ambientaci&oacute;n) y la definici&oacute;n del terreno, se necesit&oacute; solucionar el problema de la b&uacute;squeda de caminos. En la literatura se reporta el algoritmo A* (A estrella) como la base de soluci&oacute;n de este problema [7], puesto que encuentra el camino m&aacute;s corto entre dos puntos en un grafo construido a partir del terreno y de los elementos que se encuentran en el juego. Con el objetivo de probar el algoritmo se cre&oacute; una aplicaci&oacute;n (<a href="#figura8">figura 8</a>), y se debieron realizar varias optimizaciones del mismo, teniendo en cuenta las colisiones de los distintos personajes sobre el terreno (barreras din&aacute;micas) y adem&aacute;s por que este algoritmo ser&iacute;a ejecutado por todos los personajes que se estaban moviendo en el juego en tiempo real. En nuestra implementaci&oacute;n de A*, se optimiza la b&uacute;squeda del camino restringiendo el m&aacute;ximo numero de losas que se exploran, adem&aacute;s si el destino esta ocupado y/o no se puede llegar por que existen obst&aacute;culos fijos o din&aacute;micos, el personaje se desplaza hasta la losa libre m&aacute;s cercana al punto de destino. En la <a href="#figura8">figura 8</a> se puede apreciar un personaje que desea trasladarse a un punto en el terreno, en este caso no se encuentra un camino posible debido a que el destino se encuentra encerrado totalmente por obst&aacute;culos.</font></p>      <p align="center"><img src="img/revistas/rfiua/n53/n53a20i08.gif"><a name="figura8"></a></p>      ]]></body>
<body><![CDATA[<p><font face="Verdana" size="2"> <b>Figura 8 </b>Buscador de caminos</font></p>      <p><font face="Verdana" size="2">Con todo lo anterior, es decir, dise&ntilde;ado e implementado el motor, resueltos los problemas de comunicaci&oacute;n con el dise&ntilde;ador, contando con el gui&oacute;n, el algoritmo de b&uacute;squeda de caminos, el terreno, y el an&aacute;lisis y dise&ntilde;o de todos los personajes en el juego (a trav&eacute;s de la metodolog&iacute;a GAIA) se procedi&oacute; a la implementaci&oacute;n del juego en si mismo, el cual se desarroll&oacute; como un juego monousuario donde el jugador puede controlar a cada uno de los personajes usando el dispositivo apuntador (mouse) para desplazarlos por todo el terreno e ir descubriendo en el camino a otros personajes que se unen a la &lt;&lt;marcha&gt;&gt;; encontr&aacute;ndose en la ruta con enemigos a quienes debe confrontar y le permiten generar una mayor habilidad para enfrentar al comandadote de los conquistadores. A cada personaje, mediante scripting, se le definieron unas caracter&iacute;sticas como por ejemplo puntos de vida, velocidad de desplazamiento y destreza en la pelea, las cuales son tenidas en cuenta en la implementaci&oacute;n del agente; as&iacute; por ejemplo el grito comunero del agente Pr&oacute;cer incrementa la destreza en la pelea de los personajes amigos que est&eacute;n cerca a &eacute;l. En la <a href="#figura9">figura 9</a> se muestra una animaci&oacute;n del juego, donde Juan Francisco Berbeo (Personaje jugador) y tres campesinos (otros agentes inteligentes) salen del Socorro (poblaci&oacute;n ubicada en Santander - Colombia) y empiezan la marcha de los Comuneros.</font></p>      <p align="center"><img src="img/revistas/rfiua/n53/n53a20i09.gif"><a name="figura9"></a></p>      <p><font face="Verdana" size="2"> <b>Figura 9 </b>Animaci&oacute;n de independencia</font></p>      <p><font face="Verdana" size="3"><b>Conclusiones y trabajo futuro</b></font></p>      <p><font face="Verdana" size="2">Teniendo en cuenta que GAIA es una metodolog&iacute;a orientada a desarrollar agentes que colaboran entre s&iacute; para alcanzar los objetivos del sistema [15], pensando m&aacute;s en que van a existir varios tipos de agentes cada uno desempe&ntilde;ando un rol y que en este caso de estudio s&oacute;lo se identific&oacute; un agente como tal, es posible que hubiera sido m&aacute;s propicio trabajar con agentes aut&oacute;nomos en lugar de hacerlo con sistemas multiagentes, muy a pesar de los buenos resultados obtenidos. Un agente aut&oacute;nomo es un &uacute;nico agente que incluye temas como sentido, modelado de emociones, motivaci&oacute;n, personalidad y acciones de selecci&oacute;n y planeamiento, que fue realmente lo que se hizo con el agente AgenteUnidad definido en el juego Independencia. Sin embargo si la idea es que todo el sistema se modele con agentes, es muy probable que no se defina &uacute;nicamente un agente y en ese caso si se requiera de un sistema multiagente como GAIA, MAS-CommonKADS [15] u otra metodolog&iacute;a de este tipo.    <br>    <br>  Se resalta en el videojuego la utilizaci&oacute;n de una metodolog&iacute;a de agentes para la definici&oacute;n del comportamiento de los personajes del juego. En este sentido se debe considerar que GAIA ayud&oacute; a definir los agentes que se utilizar&iacute;an dentro del juego sin necesidad de entrar en detalles de implementaci&oacute;n y que los productos obtenidos gracias a esta metodolog&iacute;a se pudieron dise&ntilde;ar muy f&aacute;cilmente usando UML. Existi&oacute;, entonces, una complementariedad entre GAIA, UML y Programaci&oacute;n Orientada a Objetos que permiti&oacute; que la definici&oacute;n e implementaci&oacute;n del comportamiento de las unidades del juego estuviera a la altura y vanguardia de grandes t&iacute;tulos de juegos en esta misma categor&iacute;a.    <br>    <br>  Este juego muestra la capacidad de los ingenieros Colombianos, en el desarrollo de proyectos software NO tradicionales, y que pueden a futuro ser una base s&oacute;lida de ingresos para el Pa&iacute;s.    ]]></body>
<body><![CDATA[<br>    <br>  En cuanto al trabajo futuro en el &aacute;rea, se empez&oacute; a explorar un proyecto relacionado con la forma de modelar el comportamiento de personajes de videojuegos, no s&oacute;lo de estrategia, sino de otros g&eacute;neros (aventura), usando metodolog&iacute;as diferentes a GAIA, para determinar cu&aacute;l es la m&aacute;s apropiada y con ello llegar a la definici&oacute;n posterior de un framework, que permita crear agentes usando un lenguaje de programaci&oacute;n declarativo y que sean f&aacute;cilmente incorporados dentro de un videojuego, para que definan el comportamiento de sus personajes. Adem&aacute;s se han iniciado proyectos que permitan incorporar efectivamente los juegos en la formaci&oacute;n de ni&ntilde;os con respecto a la prevenci&oacute;n y tratamiento de enfermedades.</font></p>      <p><font face="Verdana" size="3"><b>Agradecimientos</b></font></p>      <p><font face="Verdana" size="2">Este trabajo fue cofinanciado por COLCIENCIAS a trav&eacute;s de su proyecto de I+D en ETI con c&oacute;digo 1103-14-14897 y la Vicerrector&iacute;a de Investigaciones de la Universidad del Cauca.</font></p>      <p><font face="Verdana" size="3"><b>Referencias</b></font></p>      <!-- ref --><p><font face="Verdana" size="2">1. P. Sweetser. <i>Current AI in Games: A review</i>. School of ITEE, University of Queensland. Australia. 2002. <a href="http://www.itee.uq.edu.au/~penny/_papers/Game" target="_blank">http://www.itee.uq.edu.au/~penny/_papers/Game</a>. Al Review.pdf. Consultada el 6 de noviembre de 2006.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000108&pid=S0120-6230201000030002000001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br>    <!-- ref --><br>  2. P. Baillie-De Byl. <i>ProgrammingBelievable Characters for Computer Games</i>. Rockland (MA). 2004. pp. 465.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000110&pid=S0120-6230201000030002000002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br>    <!-- ref --><br>  3. N. Mu&ntilde;oz, W. Rivera. <i>Independencia: Juego de Estrategia en 3D basado en hechos importantes de la Campa&ntilde;a Libertadora de Colombia</i>. Trabajo de grado. Ingenier&iacute;a de Sistemas. Universidad del Cauca. Popay&aacute;n. Colombia. 2005. pp. 104.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000112&pid=S0120-6230201000030002000003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br>    <!-- ref --><br>  4. M. Wooldridge, N. Jennings, D. Kinny. <i>The Gaia Methodology for Agent-Oriented Analysis and Design</i>. Ed. Kluwer Academic Publishers. Boston. pp. 1-27.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000114&pid=S0120-6230201000030002000004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br>    <!-- ref --><br>  5. M. Van Lent, J. Laird, J. Buckman, J. Hartford, S. Houchard, K. Steinkraus, R. Tedrake. <i>Proceedings of the Sixteenth National Conference on Artificial Intelligence</i>. July 18-22. 1999. Orlando (FL). 1999. pp. 929-930.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000116&pid=S0120-6230201000030002000005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br>    <!-- ref --><br>  6. M. Van Lent, J. Laird. "Developing an Artificial Intelligence Engine". <i>Proceedings of the game developers Conference</i>. March 16-18. 1999. San Jos&eacute; (CA). pp. 577-588.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000118&pid=S0120-6230201000030002000006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br>    <!-- ref --><br>  7. T. Barron. <i>Strategy Game Programming with DirectX 9.0</i>. Wordware Publishing Inc. Plano. Texas. (USA). pp. 538.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000120&pid=S0120-6230201000030002000007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br>    <!-- ref --><br>  8. A. Nareyek. <i>Intelligent Agents for Computer Games</i>. <a href="http://www.ai-center.com/home/alex/2000" target="_blank">http://www.ai-center.com/home/alex/2000</a>. Consultada el 12 de febrero 20 de 2008.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000122&pid=S0120-6230201000030002000008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br>    <!-- ref --><br>  9. Empire Earth, Sierra. http://empireearth.sierra.com/ es/. Consultada el 22 de febrero de 2008.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000124&pid=S0120-6230201000030002000009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br>    <!-- ref --><br>  10. M. Ponsen. <i>Improving Adaptative Game AI with Evolutionary Learning</i>. <a href="http://www.kbs.twi.tudelft.nl/docs/MSc/2004/Ponsen_Marc/thesis.pdf" target="_blank">http://www.kbs.twi.tudelft.nl/docs/MSc/2004/Ponsen_Marc/thesis.pdf</a>. Consultada el 15 de enero de 2008.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000126&pid=S0120-6230201000030002000010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br>    <!-- ref --><br>  11. Civilization, <a href="http://www.civ3.com/" target="_blank">http://www.civ3.com/</a>. Consultada el 22 de febrero de 2008.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000128&pid=S0120-6230201000030002000011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br>    <!-- ref --><br>  12. Balance of power. <a href="http://www.balance-of-power.ch/" target="_blank">http://www.balance-of-power.ch/</a>. Consultada el 22 de febrero de 2008.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000130&pid=S0120-6230201000030002000012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br>    <!-- ref --><br>  13. Popopulus <a href="http://www.mobygames.com/game/populous" target="_blank">http://www.mobygames.com/game/populous</a>. Consultada el 22 de febrero de 2008.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000132&pid=S0120-6230201000030002000013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br>    <!-- ref --><br>  14. N. Mu&ntilde;oz, C. Cobos, W. Rivera. "Motor Gr&aacute;fico y Multimedia Orientado a Objetos para el Desarrollo de Juegos de Estrategia en 3D". <i>Revista Enlace Inform&aacute;tico</i>. Vol. 4. 2005. pp. 57-68.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000134&pid=S0120-6230201000030002000014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br>    <!-- ref --><br>  15. Grupo de agentes de software: ingenier&iacute;a y aplicaciones. <i>Metodolog&iacute;as de agentes</i>. http://grasia.fdi.ucm.es/ ingenias/Spain/index.php. 2007. Consultada el 1 de diciembre de 2007.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000136&pid=S0120-6230201000030002000015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><br>    <!-- ref --><br>  16. C. A. Iglesias. <i>Definici&oacute;n de una metodolog&iacute;a para el desarrollo de sistemas multiagentes</i>. Tesis doctoral. Departamento de Ingenier&iacute;a de Sistemas Telem&aacute;ticos. Universidad Polit&eacute;cnica de Madrid. Espa&ntilde;a. 1998. pp.31-49.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000138&pid=S0120-6230201000030002000016&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><p><font face="Verdana" size="2">(Recibido el 13 de enero de 2009. Aceptado el 15 de febrero de 2010)</font></p>      <p><font face="Verdana" size="2">*Autor de correspondencia: tel&eacute;fono: + 57 + 2 + 820 98 00 ext. 2119, fax: + 57 + 2 + 820 98 00 ext. 2102 correo electr&oacute;nico: <a href="mailto:ccobos@ unicauca.edu.co">ccobos@ unicauca.edu.co</a>. (C. Cobos).</font></p>        ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sweetser]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[Current AI in Games: A review]]></source>
<year>2002</year>
<publisher-name><![CDATA[School of ITEE, University of Queensland]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Baillie-De Byl]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[ProgrammingBelievable Characters for Computer Games]]></source>
<year>2004</year>
<page-range>465</page-range><publisher-loc><![CDATA[Rockland ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Muñoz]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
<name>
<surname><![CDATA[Rivera]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
</person-group>
<source><![CDATA[Independencia: Juego de Estrategia en 3D basado en hechos importantes de la Campaña Libertadora de Colombia]]></source>
<year></year>
<page-range>104</page-range></nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Wooldridge]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Jennings]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
<name>
<surname><![CDATA[Kinny]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<source><![CDATA[The Gaia Methodology for Agent-Oriented Analysis and Design]]></source>
<year></year>
<page-range>1-27</page-range><publisher-loc><![CDATA[Boston ]]></publisher-loc>
<publisher-name><![CDATA[Ed. Kluwer Academic Publishers]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Van Lent]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Laird]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Buckman]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Hartford]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Houchard]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Steinkraus]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
<name>
<surname><![CDATA[Tedrake]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[Proceedings of the Sixteenth National Conference on Artificial Intelligence]]></source>
<year>1999</year>
<page-range>929-930</page-range></nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Lent]]></surname>
</name>
</person-group>
<source><![CDATA[Developing an Artificial Intelligence Engine]]></source>
<year></year>
<conf-name><![CDATA[ game developers Conference]]></conf-name>
<conf-date>1999</conf-date>
<conf-loc>San José </conf-loc>
<page-range>577-588</page-range></nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Barron]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
</person-group>
<source><![CDATA[Strategy Game Programming with DirectX 9.0]]></source>
<year></year>
<page-range>538</page-range><publisher-loc><![CDATA[Plano ]]></publisher-loc>
<publisher-name><![CDATA[Wordware Publishing Inc]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Nareyek]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Intelligent Agents for Computer Games]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="">
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="">
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="">
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="">
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="">
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Muñoz]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
<name>
<surname><![CDATA[Cobos]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Rivera]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Motor Gráfico y Multimedia Orientado a Objetos para el Desarrollo de Juegos de Estrategia en 3D]]></article-title>
<source><![CDATA[Revista Enlace Informático]]></source>
<year>2005</year>
<volume>4</volume>
<page-range>57-68</page-range></nlm-citation>
</ref>
<ref id="B15">
<label>15</label><nlm-citation citation-type="">
<collab>Grupo de agentes de software: ingeniería y aplicaciones</collab>
<source><![CDATA[Metodologías de agentes]]></source>
<year>2007</year>
</nlm-citation>
</ref>
<ref id="B16">
<label>16</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Iglesias]]></surname>
<given-names><![CDATA[C. A]]></given-names>
</name>
</person-group>
<source><![CDATA[Definición de una metodología para el desarrollo de sistemas multiagentes]]></source>
<year></year>
<page-range>31-49</page-range></nlm-citation>
</ref>
</ref-list>
</back>
</article>
