Delivery Wars
Proyecto de Inteligencia Artificial con el cual se busca aplicar los distintos conocimientos adquiridos en la materia para poder aperciarlos en la práctica. El concepto del juego se encuentra actualmente en desarrollo. El lenguaje de programacion utilizado es C++ y el ambiente grafico utiliza la libreria de OpenGL.
Concepto
El jugador tomara el rol de "Luigi" un exitoso pizzero italiano que busca entregar tantas pizzas como sea posible. Sin embargo, la mafia china notando un descenso en las ventas de sus establecimientos, enviara a una serie de "ayudantes" que intentaran sobornar a Luigi para que cierre su negocio.
Primera entrega
Informe
Se incluye un corto informe con la informacion relevante de la primera entrega del proyecto.
Videos
Comportamiento "Seek"
Comportamiento "Arrive"
Comportamiento "Wander"
Comportamiento "Flee"
Comportamiento "Seek con manejo de colisiones"
Archivos
Actualmente existe un archivo con extensión ".c" para cada comportamiento. Es necesario compilar cada uno por separado (por medio del makefile) y luego correr el ejecutable. Para mover el punto rojo (objetivo) y apreciar los distintos comportamientos del agente, utilizar las flechas dircionales del teclado.
Segunda entrega
Informe
Se incluye el Informe2.
Videos
Comportamiento "Wander behavior (state machine)"
Comportamiento "Flee behavior (state machine)"
Comportamiento "Follow behavior (state machine)"
Archivos
Codigo: Archivos
El proyecto fue migrado a C++ y ahora se integraron todos los comportamientos en un solo archivo, por tanto solo debe usarse el comando "make" para ejecurar el makefile. El jugador esta representado por la particula azul. Para moverla utilizar los botones direcionales del teclado. La camara puede ser movida con las teclas w, a, s, d, rotada con q, e, y el zoom se maneja en las teclas 1 y 2. Para saltar utilizar la barra espaciadora, y para mostrar el grafo generado por el mesh, presionar la tecla z. Mas informacion del movimiento se encuentra en el informe.
Tercera entrega
Informe
Se incluye el Informe3.
Videos
Archivos
Codigo: Archivos
Tips
- Ya es casi un cliché, pero hacer algo que te divierta es importante dado que genera interés en trabajar.
- El libro es importante pero es solo una guía. Este es un campo muy amplio donde la creatividad suele aportar muy buenos resultados, por lo que no es solo bienvenida sino necesaria.
- Procura que la herramienta para desarrollar no solo sea de tu agrado, sino que tenga soporte en el área de videojuegos. Existen muchas librerías hechas para agilizar muchas cosas tediosas asociadas a videojuegos (que además retrasan el proyecto y nada tienen que ver con inteligencia artificial). En mi caso me decidí por C++ y OpenGl, y francamente no las recomiendo. La filosofía de "hazlo tu mismo" de C, puede atrasar y complicar mucho el desarrollo.
- Un problema común tiene que ver con el evitar obstáculos y las esquinas. Incluso si un algoritmo de colisiones funciona bien en paredes, suele ocurrir que en las esquinas se atore el agente debido a la intersección de dos paredes. Una forma útil de resolver esto, es tratando de navegar siempre usando el grafo, y definiendo los puntos correctamente de modo que las esquinas tengan suficiente separación con estos. Si el grafo creado se adapta bien al mapa, los movimientos se verán igual de reales, y cualquier algoritmo (wander, seek, flee) que se programa sin necesidad de grafos, puede ser adaptado a este.
