martes, 3 de diciembre de 2019

MTCS Información


El Monte Carlo Tree Search, más conocido como MTCS, es una técnica de inteligencia artificial en la que se mezcla dos técnicas muy populares dentro de este campo:

1º Árboles Clásicos de Decisión.

2º Aprendizaje Por Refuerzo (Q-Learning).

 Este algoritmo tiene dos fases destacadas:
Fase de exploración, en la que el agente prueba diferentes situaciones ante el mismo estado y observa que pasa al tomar esa decisión, es decir, cuanto de buena es esa decisión para nuestro objetivo.

Y una fase de explotación, en la que el agente prueba continuamente las decisiones mejores para ver si realmente sirven para alcanzar nuestro objetivo. Y así cambiar las decisiones por otras que son mejores.

Entonces el agente tiene que:
1º Explorar todas las opciones potenciales en ese tiempo.
2º Identificar rápidamente cual es la mejor.
3º Tener en cuenta las otras opciones buenas para validar como es de buena la mejor.

Utilizando la técnica del Min Max tenemos el problema de que si el árbol es muy grande escala muy mal con respecto al coste computacional.

Para el ajuste de los pesos de los nodos de nuestro MTCS tenemos los procesos de Selección, expansión, simulación y “Backpropagation” (Recalculo de abajo a arriba de los pesos de cada nodo según si la decisión final ha sido buena o mala).

Unos ejemplos visuales de cada una de estas fases serian:





La fórmula matemática que encontramos dentro de este algoritmo seria la UCT (Upper Confidence Bound 1 applied to trees):


En la que el nodo que tenga el valor mayor a la hora de aplicarle esta fórmula será el que el se elegirá como decisión.

La fórmula esta compuesta de:
Wi = número de victorias después de haber cogido este nodo.
ni = número de simulaciones de ese nodo.
Ni = número total de simulaciones de nodos parentales.
c = parámetro de exploración por lo general suele ser √2.

Referencias de:

miércoles, 27 de noviembre de 2019

Planificación del desarrollo de nuestro Agente (REACTIVO)



Para el diseño de nuestro agente, tengo que desarrollar un árbol de decisiones que realice dos funciones importantes a la hora de recibir el tablero del juego con el que se esté probando:

1º Detectar en qué tipo de juego estamos.

2º Aplicar reglas de comportamientos distintas dependiendo del tipo de juego que hayamos detectado antes.

Como en principio voy a probar solo con dos juegos parecidos clasificados por mi como “Objetivo” sin acción posible.

Enlace interesante sobre GVG-AI Example: https://core.ac.uk/download/pdf/77601843.pdf


Dentro de nuestra codificación con los booleanos E_enemigos y E_objetivos son los descriptores que nos servirán para utilizar como condición para nuestro árbol de decisión.


Dentro de cada bloque desarrollaremos las reglas que siga nuestro agente.



viernes, 15 de noviembre de 2019

Quinto Artículo Científico Sobre Modelaje de Comportamientos


“La simulación basada en agentes: una nueva forma de explorar los fenómenos sociales”

Este artículo científico basando su investigación en el modelo de segregación urbana de Schelling, en el que se intenta explicar cómo en las ciudades los habitantes se organizan guetos donde estos individuos no tienen prejuicios étnicos.

Las aplicaciones de estas simulaciones con agentes se utilizarán para:

1º Solucionar los problemas de la infradeterminación empírica de las teorías sociológicas.

2º Explicar los fenómenos sociales a través de los fenómenos sociales que surjan por la acción de los individuos o las estructuras.

3º Crear una metodología para evaluar políticas sociales y prever sus resultados antes de aplicarlo en sociedades reales.

En el artículo se presenta como modelo de reproducción del modelo de agente de tres formas, mediante redes neuronales artificiales, sistemas de reglas de producción y lenguajes y entornos de programación.
Ejemplo de un sistema de Redes Neuronales Artificiales:


Ejemplo del modelo de segregación de Schelling introducido en los agentes:


Nota: El objetivo es que todos los vecinos(Agentes) acaben viviendo en zonas adecuadas a ellos.


Como resultado del experimento basado en agentes pueden concluir que la utilización de esta herramienta tiene muchas salidas en los aspectos sociales y sus estudios. Se puede emplear para evaluar, formalizar teorías sociológicas. Y así seleccionar entre varias teorías sobre un mismo fenómeno social cual es la mejor.

Realizado por: Jose Ignacio García-Valdecasas Medina
Enlace: https://dialnet.unirioja.es/descarga/articulo/3748058.pdf

Cuarto Artículo Científico Sobre Modelaje de Comportamientos

“A Computational Model of Emotions for Agent-Based Crowds in Serious Games”

En este artículo científico se desarrolla el comportamiento de la multitud (varios agentes) dentro de un mismo entorno. Ya que este fenómeno social emerge de manera compleja entre los individuos. El comportamiento individual es una emoción que juega un papel importante en todos los aspectos de las decisiones que hacemos los humanos. Por ejemplo, cuando tenemos estados emocionales muy acentuados pueden llevar a las personas a tomar decisiones inesperadas, igual que les pasaría a los agentes. 
Esto está siendo aplicado en películas como en videojuegos para generar personajes creíbles.

Se propone un motor de emoción basado en la evaluación moderna capaz de modelar varias características dentro de una multitud emocional. Es capaz de capturar de manera dinámica el contagio emocional y mostrarnos como diferentes composiciones de multitudes pueden conducir a diferentes patrones de contagio emocional.

Para probar esto utilizan HumDPM donde a cada agente se le dota de un set de experiencias que describen su comportamiento. Donde por cada stage se almacenan las nuevas experiencias y se utilizan para modificar el comportamiento de los agentes. Y volviendo a probarlos en otra stage y así sucesivamente.
Una experiencia seleccionada continua en ejecución en las siguientes stage hasta que ocurra una de dos cosas:

-       -Primero si se alcanza los objetivos de la etapa final.
-       -Segundo si se violan las expectativas de cualquier etapa.

En términos generales, esto sucede a través de la expectativa y las señales, es decir, del cambio emocional que puede hacer cambiar el comportamiento de nuestros agentes y también nos ayuda a selecciona los mejores para nuestro interés.

Como objetivo del experimento se explica y se afirma que se pueden simular diferentes tipos de personajes utilizando diferentes susceptibilidades y emociones semicompletas.

Realizado por: Heiko Aydt, Michael Lees, Linbo Luo, Wentong Cai, Malcolm Yoke Hean Low y Sornum Kabilen Kadirvelen.

Enlace: https://ieeexplore.ieee.org/abstract/document/6040757/authors#authors

jueves, 14 de noviembre de 2019

Tercer Artículo Científico Sobre Modelaje de Comportamientos


“Behaviour Oriented Design for Real-Time-Strategy Games”

La base de este artículo científico es el desarrollo de inteligencia artificial en los videojuegos de hoy en día, es decir, en el diseño y plan para el comportamiento de los agentes usando estrategias en tiempo real. Basándose en Comportamientos orientados a diseños para implementar las estrategias en tiempo real.

Como ejemplo de demostración utilizan el juego de estrategia Starcraft, en el que el uso de este comportamiento en tiempo real ayuda a tomar decisiones más inteligentes cuando nuestro oponente toma decisiones como atacarnos una basa, acumular solados etc y nuestro agente debería según esos hechos cambiar su planificación en tiempo real por ejemplo moviendo tropas aliadas a esa zona que van a atacar o dedicar a expandir sus bases aprovechando que el enemigo se centra en acumular recursos.

Notación: BOD es una metodología para desarrollar el control complejo de los agentes. Combinando las ventajas del comportamiento basado en AI y el diseño orientado a objetos.

El comportamiento orientado a comportamientos (BOD): combina varios estados con aprendizaje y generación de planes de manera modular.
Esta forma modular ayuda a solventar los problemas de programación para los programadores ya que tienen que realizar la mayor parte del trabajo. Donde se sigue un diseño iterativo.


La arquitectura del BOD está formada por dos partes:

1º POSH selector de acciones:
Las acciones seleccionadas por BOD es un POSH (Enraizado en paralelo, ordenado en una pila deslizante jerárquica) donde los planes dinámicos son las estructuras para la selección de acciones (también conocidas como arbitraje o coordinación de comportamiento) en el diseño orientado a comportamientos.
La planificación dinámica (o planificación reactiva) es una forma de hacer una selección de una acción para un agente mediante el cual un sistema elige su próxima acción haciendo una búsqueda rápida en una estructura de datos existente.


2º Librería de comportamientos:
Donde existen dos primitivas: acciones y sensaciones. Que pueden ser llamadas por el mecanismo de selección de acciones, y cualquier estado asociado o memoria requerida para darle soporte. Donde la separación entre POSH y Behaviour Libraries debe ser clara, ya que facilita la reutilización del código, dando la posibilidad de técnicas especializadas más complejas y un conjunto de enfoques distintos. Ocultando la estructura del propio plan.

Realizado por: Swen Gaudl, Simon Davies y Joanna J.Bryson.

Segundo Artículo Científico Sobre Modelaje de Comportamientos


“Evolution of Human-Competitive Agents in Modern Computer Games”

En este artículo se lo presenta la evolución de los jugadores artificiales (Agentes) en los juegos de la actualidad. Como podemos observar en la actualidad el mundo de los videojuegos ha avanzado a pasos enorme. Y con ello ha provocado que los juegos sean más sofisticados, realistas y orientados a juego en equipo.
Los juegos de ordenador modernos ofrecen problemas interesantes y desafiantes para la investigación de inteligencia artificial. Presentan entornos dinámicos y virtuales y representaciones muy gráficas que no soportan los problemas de las aplicaciones del mundo real pero que aún tienen una gran importancia práctica. Lo que hace que los juegos de computadora sean aún más interesantes es el hecho de que los humanos y los jugadores artificiales interactúan en el mismo entorno.

“Laird et al. Han propuesto un enfoque interesante para dicho agente. Sus agentes intentan anticipar las acciones de los otros jugadores evaluando qué haría su propio mecanismo de planificación, si estuvieran en la misma posición. En una versión posterior, el aprendizaje por refuerzo se agregó a su enfoque. Hawes utiliza técnicas de planificación para un agente. Utiliza tiempos de baja actividad para planificar comportamientos extensos y genera solo planes cortos si no hay tiempo disponible. Nareyek , también ha implementado un agente que utiliza la planificación y la búsqueda local. Norling ha aplicado otro enfoque interesante, en el que se utiliza un modelo BDI (Belief-Desire-Intention) para modelar un agente humano.
Otros ejemplos de investigaciones interesantes para esta aplicaciond e comportamientos seria:
-Thurau : Con la creación de agentes que intentan aprender de comportamientos de deseos basado en la imitación de otros jugadores. (Basado en redes neuronales).

-Priesterjahn: introdujo la imitación arbitraria de jugadores. Donde se generan las reglas con entradas y salidas, y se ordenan de mayor importancia a menor con el uso de algoritmos evolutivos.

El modelaje se realizaría con un “grind” que sería una representación en plano del terreno donde el agente juega a un videojuego. Especificando que posiciones están ocupadas, que zonas están vacías y cuales están ocupadas por enemigos.

Importante: Esta representación del modelaje será aplicada en primer plano dentro del proyecto de GVG-AI

Y para la definición de acciones utilizara 3 parámetros especificando la utilidad de cada uno:
F = para movimiento vertical y permanecer quieto
R = para movimiento horizontal y permanecer quieto
A = atacar o no atacar
& = Alteración del ángulo de inclinación.


Realizado por: S. Priesterjahn Department of Computer Science, University of Paderborn.

Primer Artículo Científico Sobre Modelaje de Comportamientos


“CogBox – Combined Artificial Intelligence Methodologies to Achieve a Semi-realistic Agent in Serious Games”

En este artículo científico se justifica la utilización híbrida de un agente con metodología de inteligencia artificial como lógica difusa, redes neuronales o Creo-Deseo-Intención. Provocara un comportamiento semi-realista con una implementación simple.
Además, se desarrollará las limitaciones de la utilización de cada una en el comportamiento de los agentes y las ventajas de utilizar la opción híbrida propuesta.

El núcleo de esta técnica se basa en:

1º Belief Desire Intention (BDI - Creer/Desear/Intención): es un modelo de comportamiento racional en agentes. En el que se proporciona al agente de tres actividades mentales mostrándolo como la información, la motivación y la deliberación de estados del agente.
Se utiliza en campos de la filosofía y las ciencias cognitivas, incluyendo la racionalidad de los agentes.

2º Finite State Machines (Máquina de estados finita): Este método es el más utilizado dentro de los juegos de ordenadores como método para generar comportamiento de inteligencia artificial. En la que el agente se sitúa en un estado y tiene varias condiciones o acciones para pasar de un estado a otro. La desventaja es que a mayor número de estados que implicaría una mejora del comportamiento la complejidad del código también aumenta.

3º Hybrid Method: Lo que se propone es crear nuestros agentes con un control primario por BDI obteniendo una simulación del razonamiento humano. Y se deja el control al FSM cuando las decisiones de acciones del BDI se deben de tomar sin deliberación, dotando así a nuestros agentes de una simulación de los instintos humanos.

Referencias: 2010 Book Artifical Intelligence And SoftC
Por David Irvine y Mario A.Gongora

Información sobre Agentes de Russel y Norvig

Información sobre Agentes de Russel y Norvig:

Agentes y su entorno

Definición de Agente: Un agente es cualquier cosa capaz de percibir su medioambiente con la ayuda de sensores y actuar en ese medio utilizando actuadores.


El término de percepción se refiere a las entradas que puede recibir nuestro agente en cualquier momento. Hablaremos de secuencia de percepciones como el conjunto de todas las anteriores percepciones hasta la actual.
Por lo que un agente toma una decisión en un instante dependiendo de la secuencia completa hasta ese instante.
En conclusión, un agente utiliza una función “Decisión” que toma como entrada una percepción y genera una acción como respuesta.

Tenemos que diferenciar entre función del agente como una descripción matemática abstracta del programa del agente que sería la implementación completa que ejecuta nuestro agente sobre su arquitectura.


Buen comportamiento: el concepto de racionalidad

Un agente racional es aquel que en cada elemento de la tabla que define su función de agente se tendría rellenar correctamente.
Entendemos como concepto de correcto aquella acción que realiza el agente y le proporciona un mejor resultado en la función que desempeña.
Por lo que nos surge la necesidad de medir este rendimiento.

Las medidas de rendimiento incluyen los criterios que determinan el éxito en el comportamiento del agente. Cuando un agente realiza varias acciones en su entorno lo modifica y si el resultado final es el esperado, el agente está realizando con éxito su función.

Importante: Como normal general siempre es mejor diseñar las medidas de utilidad de acuerdo a lo que se quiere para el entorno, que de acuerdo con cómo se cree que el agente debe comportarse.

La racionalidad en un momento determinado depende de:
-        - La medida de rendimiento que define el criterio de éxito.
-        - El conocimiento acumulado por nuestro agente sobre el medio.
-        - Las acciones posibles que puede realizar el agente.
-        - La secuencia de percepciones que el agente lleva hasta ese momento.

Por lo tanto, un agente racional se puede definir como:
En cada posible secuencia de percepciones, un agente deberá emprender aquella acción que supuestamente maximice su medida de rendimiento, basándose en las evidencias aportadas por la secuencia de percepciones y en el conocimiento que el agente mantiene almacenado.

Un agente debe ser capaz de aprender a determinar cómo tiene que compensar el conocimiento incompleto o parcial inicial. Es decir, carece de autonomía cuando se apoya más en el conocimiento que le proporciona su diseñador que en sus propias percepciones.

La naturaleza del entorno:

Se denomina entorno de trabajo al conjunto formado por medidas de rendimiento, entorno, actuadores y sensores del agente.


Notación para discusión: Conductor autónomo imposible debido a las ilimitadas combinaciones que casos que un agente puede encontrarse.

Se denomina softbot a aquellos agentes que no tiene una función a desarrollar sobre entornos físicos. Por ejemplo, un softbot que revise fuentes de información de internet.


Dentro de las propiedades a destacar de los entornos de trabajo:
-         Totalmente observable vs Parcialmente observable: En este caso el agente podría obtener a través de sus sensores una percepción total (totalmente observable) o solo una porción (parcialmente observable).
-         Determinista vs Estocástico:  Se denomina entorno determinista aquel en el que el agente sabe el comportamiento (predicción) del mundo y sabe cuál va a ser su estado antes de que cambie. Si el agente no es capaz de saber cómo cambia el mundo que lo rodea se denomina estocástico. Existe una excepción denominada entorno estratégico en la que el medio es determinista excepto para las acciones de otros agentes.
-         Estático vs Dinámico: Un entorno es dinámico si puede cambiar mientras el agente está pensando que acción realizar. Por el contrario, si no cambia mientras el agente piensa una acción se denomina Estático.
-         Episódico vs Secuencial: Se denomina entorno episódico a aquel que cuando un agente toma una decisión no le influye en sus acciones siguientes. Por el contrario, si las decisiones del agente se ven afectados por decisiones anteriores en el mundo se denomina Secuencial, el claro ejemplo de este tipo sería una partida de ajedrez.
-         Discreto vs Continuo: Si el entorno tiene un número determinado de percepciones que genera será discreto, en el caso de que sea un número constante de percepciones entonces será Continuo.
-         Agente Individual vs Multiagente: Dentro del entorno podemos encontrar entornos donde solo actué un agente (Individual) y entornos donde varios agentes actúen a la vez, pudiendo tener interacción entre ellos. Aquí salen dos ramas: la competitiva en la que varios agentes intentan alcanzar un objetivo de manera exclusiva. Y cooperativo en lo que los agente tienen que alcanzar un objetivo común ayudándose si es posible unos con otros.

Estructura de los agentes:

Un agente está conformado por una arquitectura (computador + sensores + actuadores) y un programa (función del agente).

Los programas de los agentes reciben percepciones de los sensores y devuelve una acción a los actuadores.

Podemos diferenciar en 4 tipos básicos de programas para agentes:

-       -  Agentes Reactivos simples
-        - Agentes Reactivos basados en modelos
-       -  Agentes basados en Objetivos
-        - Agentes basados en Utilidad

1º AGENTES REACTIVOS SIMPLES:

Es el más sencillo de todos. Este agente selecciona una acción mediante la percepción recibida, ignorando el resto de percepciones anteriores.

Una regla de condición-acciones es:
Si ________________ entonces _______________;

Este agente funcionara solo si los entornos son totalmente observables, por lo que si hay una pequeña porción no observable del entorno generara muchos problemas a nuestro agente.
Notación: para salir de bucles infinitos de decisión es mejor otorgar la posibilidad de acción aleatoria al agente.


2º AGENTES REACTIVOS BASADOS EN MODELOS:

Este tipo de agentes tiene in estado interno para almacenar las historias percibidas anteriormente y refleje algunos aspectos no observables.
El conocimiento acerca del mundo se denomina modelo del mundo y el agente que utilice esto se denomina agente basado en modelos.

 

3º AGENTES BASADOS EN OBJETIVOS:

Para este tipo de agentes se caracteriza porque la decisión de realizar una acción se ve condicionada por una meta que tiene que alcanzar y habrá movimientos que favorecerán más a alcanzar ese objetivo que otros.
Entonces nos encontramos con dos subcampos muy importantes a la hora de satisfacer estas metas. Serian la búsqueda y la planificación. Que hablaremos de ello más adelante.


4º AGENTES BASADOS EN UTILIDAD:
Satisfacer solo las metas no generan un comportamiento de alta calidad, ya que para el ejemplo de la conducción de un taxi no solo nuestro fin es llegar al objetivo. A lo mejor queremos que sea lo más seguro posible, la más rápida, la más barata etc. Entonces necesitamos una función de utilidad que calcule para un movimiento cuanto favorece la utilidad deseada.


domingo, 10 de noviembre de 2019

Pasos de Instalación de GVG-AI:

Primero debemos instalar la versión de Eclipse Committers Oxygen (Compilador).
Para ellos vamos al enlace siguiente y seguimos los pasos de instalación de dicho
programa.

Enlace: https://www.eclipse.org/downloads/packages/release/neon/r/eclipse-ide-eclipse-committers

Con respecto a la utilización del código base proporcionado por GVG-AI Competition
utilizaremos el enlace de Github, ya que el Code puesto en los enlaces de la pagina base están desactualizados.

Entonces con el enlace de Git: https://github.com/GAIGResearch/GVGAI
Lo clonamos en nuestro PC y lo abriremos con Eclipse.

A partir de este punto ya tendríamos el proyecto base para poder empezar a programar y desarrollar nuestro bot con su comportamiento o comportamientos.

Entonces, para desarrollar en nuestro caso el bot vació para empezar a elegir nuestra forma de programación debemos ir al packpage "tracks -> singlePlayer -> simple -> doNothing". Copiamos dicha clase y la pegamos dentro de otro packpage creado en nuestro proyecto con el nombre de nuestro Agente, en mi caso guerrav01.

domingo, 3 de noviembre de 2019

Anotación:

He observado que dentro de la pagina oficial esta un enlace actualizado donde se pueden ver quienes llevan los mejores bot con distintos training set hasta el momento y permiten su descarga. Por lo que son lo concursantes de la ultima competición.
http://www.gvgai.net/gvg_rankings.php

Por problemas de instalaciones de UT2004:

He enfocado mi trabajo de fin de grado

al desarrollo de un bot que sea capaz de jugar dentro de diversos entornos
virtuales (videojuegos). Propuesto por  GVG-AI Competition.

Dentro de esta página se nos presenta diversos enlaces:
-Para empezar
-Framework para la GVG-AI
-Competición de la GVG-AI


Dentro del apartado de "Para empezar":

Se encuentra las pautas para poder participar. Que requiere de un inicio de sesión en la web para participar. Aconsejan que te añadas al grupo de google para mantenerse actualizado de todas las novedades y cambios.
Que descargues el código.

Y lo más importante, los requisitos del bot a desarrollar para que sea válido:
-Constructor público que reciba 2 parámetros (stateObservation, ElapsedCPUTimer)
-Método Act que reciba 2 parámetros que serían los mismos en el mismo orden y
devuelva Types.Actions para aplicar una decisión.

Después, para actualizar o confirmar tu controlador tienes que ir a la sección
"submit" y actualizar tu .zip. Esto lo registrara en una cola para validarlo.

Por último, si hay algunas dudas ponen el enlace directo a todas las reglas.

Dentro del apartado de código está el enlace directo a la última versión del framework y el controlador de uno y dos jugadores.



Dentro del apartado de "The GVG-AI Framework":

El primer enlace "Code":
Es un enlace hacia el repositorio de GITHUB con ejemplos e información sobre las estructuras y descripciones de los tracks. Con información de cada clase del
código que vamos a utilizar.

En el segundo enlace "VGDL":
Es el lenguaje de definición de juegos desarrollado por Tom Schaul. Con el enlace directo para la versión de java y python.

En el tercer enlace "Creating a Controller":
Donde se realiza una descripción un poco más detallada de nuestra clase Agente.
Donde se describen los dos métodos anteriormente nombrados y la explicación de los
parámetros pasados.
StateObservation so: que es la visión que tiene el agente del mundo.
ElapsedCpuTimer elapsedTimer: es la clase que permite poner en cola a la CPU de
la acción seleccionada por el Agente.


Dentro de "Forward Model":
Describe todas las funciones que podemos utilizar de la clase StateObservation.
Ejemplos de funciones:

Apartado Estado:
- void advance(Types.ACTIONS action) : ejecuta la acción pasada por parámetro.
- StateObservation copy() : devuelve una copia exacta del estado de observación del objeto.

Apartado Juego:
-int getGameTick() : devuelve un tick del juego en ese momento.
-double getGameScore() : obtiene la puntuación actual del juego.

Apartado Avatar:
-ArrayList<Types.ACTIONS> getAvailableActions() : devuelve las acciones disponible de nuestro agente.
-Vector2d getAvatarPosition() : devuelve la posición dentro de entorno de nuestro agente en coordenadas 2D.

Apartado Eventos:
-TreeSet<Event> getEventsHistory() : devuelve una lista de los eventos que han ocurrido durante el juego. Como colisiones de nuestro agente con otros objetos
ordenado de manera ascendente.

Apartado Observaciones:
-ArrayList<Observation>[] getNPCPositions() : devuelve un array con la lista de las posiciones de cada NPC dentro del juego.
-ArrayList<Observation>[][] getObservationGrid() : devuelve una cuadricula de todas las observaciones del nivel accesibles dentro de las coordenadas 'x' e 'y'.
Cada celda tiene su getBlockSize() del tamaño en pixeles.


Dentro de "General Specifications":
El constructor debe de responder antes o igual a un segundo sino será expulsado del juego.
El controlador tiene 40 milisegundos para responder con una acción cuando la función act es llamada.
Cuando se descalifica pierdes directamente en ese juego con -1000 puntos.
Coger más de esos 40 milisegundos se considera penalización suficiente para no permitir entrar en la competición.

Dentro del apartado de la programación, las anotaciones serian:

El código presentado a la competición será publicado posteriormente para su libre descarga cuando acabe la competición.
Todos los controladores deben estas escritos en Java.
El JDK deberá ser el 1.7 que es el que funciona con Java-VGDL.
La entrega debe ser en un comprimido Zip.
Multihilos no está permitido.
Las bases de los ejemplos pueden ser utilizados como base de desarrollo.
No se permite la modificación del "forward model", en ese caso será descalificado.



Dentro del apartado de "The GVG-AI Competition" tenemos diversos enlaces hacia:
-Los distintos "tracks": 1-Player / 2-Player / Level Generation / Rule Generation
-Varios trainings set del 1-8 para 1-Player.
-Varios trainings set del 1-5 para 2-Player.
-Ranking de la competición.

miércoles, 23 de octubre de 2019

Instalación completa de Pogamut:

En primer lugar, toda la información de instalación ha sido obtenido de http://pogamut.cuni.cz/main/tiki-index.php donde se encuentra un enlace hacia el instalador completo sin requerir del proceso de instalación manual mucho mas largo.
Para ello debemos de requerir de:
-Java JDK 1.6,1.7 o 1.8. Para mi elección he utilizado JDK 1.8.
-Versión instalada de Netbeans igual o superior a la versión 7.3.
-Desactivar en la instalación los privilegios de administrador , desactivando UAC de nuestro Windows.

En el proceso de instalación son pasos básicos, en donde seleccionaremos rutas del UT2004 donde este instalado, el Netbeans y , ¡OJO! si al instalas nuestro JDK después de la instalación del Netbeans, puede estar utilizando otra versión de JDK. Si esto ocurre , como me ha pasado ha mi, vamos dentro de Netbeans a tools/Java Plataform/Add Plataform y seleccionamos el JDK que hemos instalado.

jueves, 17 de octubre de 2019

Inicio del desarrollo del trabajo

Buenas  a todos, en este pequeño blog voy a documentar con imágenes textos y algunos pequeños vídeos los pasos que voy dando durante el desarrollo de mi TFG.
En el que desarrollare un sistemas de comportamiento en un entorno, en este caso un videojuego, el Unreal Tournament 2004. Que posee una API desarrollada por externos para poder conectarme con el juego mediante código java.