\subsection{Basado en el Lenguaje de Programación GOLOG}

En el articulo \textit{Controlling Unreal Tournament 2004 Bots with the logic-based action language Golog} \cite{FerreinJacobsLakemeyer2011}, se 
describe y explica un lenguaje de programación lógico llamado GOLOG que permite implementar agentes de videojuego del estilo FPS (Disparos en Primera Persona) y enfrentarlos a NPCs (Non-Player Characters). El videojuego en cuestión, llamado ''Unreal Tournament 2004'', es de tipo multijugador, donde los jugadores humanos compiten para alcanzar objetivos. Los oponentes pueden ser tanto humanos o controlados por el computador. Nos centramos en estudiar dos aspectos de la propuesta: el control de los oponentes y la características de la I.A. 

\subsubsection{Control de Oponentes}

Originalmente, la toma de decisiones de los bots fue hecha usando un lenguaje orientado a objetos llamado ''UScript'', que es propio del juego y es de tipo script, con lógica basada en un \textit{''state machine''}, constando de nueve estados controlados por el motor del juego. Sin embargo, el manejo de los bots se realizó en \textit{''ReadyLog''}, un lenguaje basado en GOLOG, que permite el razonamiento basado en acciones. 

Con esta información se agregó una interfaz al motor del juego que le permite transmitir información importante relacionada al mapa, tal como items (munición, vida y armas), ubicación de los jugadores y estilo del ambiente en general. Por tanto, la información de estos elementos sera transmitida al bot si este es capaz de percibirlos, lo que da posibilidad a cambiar el comportamiento del bot dentro del framework.

\subsubsection{Características de la I.A.}

El tipo de I.A. esta basada en objetivos y emplea técnicas de planificación. Con respecto a la 
planificación de camino y la detección de colisiones debemos mencionar que la interfaz entre el juego, junto con el motor y los bots no permite modificar los algoritmos de la planificación de los caminos ni de la detección de colisiones para permitir el cumplimiento de los objetivos. El agente solo recibe información si está en su campo de visión, por tanto, no es omnisciente y no tiene información suficiente que le permita obtener ventaja contra otros agentes o jugadores.