domingo, 3 de noviembre de 2019


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.

No hay comentarios:

Publicar un comentario