informe/sections/estado_del_arte/golog.tex

23 lines
2.3 KiB
TeX
Raw Normal View History

2022-06-03 16:26:48 -04:00
\subsection{Basado en el lenguaje de programación GOLOG}
\subsubsection{Controlling Unreal Tournament 2004 Bots with the Logic-based Action Language GOLOG}
El proyecto describe el uso de una variante del lenguaje de programación lógico llamado GOLOG para implementar agentes en un videojuego estilo FPS (Disparos en Primera Persona) y enfrentarlos a los oponentes originales controlados por computador.
2022-06-03 16:26:48 -04:00
El videojuego en cuestión, llamado ''Unreal Tournament 2004'', es de tipo multijugador, donde jugadores humanos compiten para cumplir objetivos. Los oponentes pueden ser tanto humanos o controlados por el computador. \cite{FerreinJacobsLakemeyer2011}
\subsubsubsection{Control de oponentes dirigidos por la computadora}
Originalmente, la toma de decisiones de los bots fue hecha usando un lenguaje orientado a objeto 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.
2022-06-03 16:26:48 -04:00
Sin embargo, el manejo de los bots se realizó en \textit{''ReadyLog''}, un lenguaje basado el lenguaje de programación lógico GOLOG, que permite el razonamiento por acciones.
2022-06-03 16:26:48 -04:00
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.
\subsubsubsection{Tipo de I.A.}
Este proyecto de investigación implementa un agente inteligente racional basado en objetivos, usando técnicas de planificación teóricas.
\subsubsubsection{Planificación de camino y Detección de Colisión}
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.
\subsubsubsection{Agente omnisciente}
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 una ventaja injusta contra otros agentes o jugadores.