Inteligencia Artificial: Búsqueda de caminos con varios procesos

Started by Windgate, May 28, 2009, 11:36:36 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Windgate

Hola amiguitos, os dejo el link de descarga de un pequeño proyecto realizado por un alumno de 14 años de edad con mi asesoramiento. Es su segundo año conmigo y ya está hecho todo un pro de Bennu, sólo os digo que ya controla la aritmética de punteros a la perfección.

El juego consiste en un escenario sencillo, con sprites generados con el SpriteGen del Bennupack, en el que varios procesos persiguen al protagonista respetando un mapa de durezas. El número de enemigos es una CONST del juego, y hemos realizado pruebas hasta con 2048 procesos con un funcionamiento bastante decente.

Por supuesto, el comportamiento todavía es mejorable, pero es uno de los proyectos más significativos que he visto este curso y creo que es digno de que lo prueben, disfruten y usen como referencia o recurso.

DESCARGA: http://www.mediafire.com/?5m0jhnogzi2
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Yo voy a sacar puntillita como siempre, esta vez con fotogramas de una escena a la que les he puesto comentarios.

http://www.mediafire.com/download.php?ozkfjydyzmo

Nada, a mejorar, se ha dicho :D.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Windgate

Sí, algunos malos aparecen dentro de durezas, su posición es aleatoria, y ahí se quedan encerrados, sería fácil un chequeo preliminar y matarlos si nacen dentro, pero se nos acabó el curso ayer mismo y no dio tiempo de más :'(

Realmente no pisan las durezas, lo que ocurre es que el mapa de durezas está reducido a escala 1:32 para facilitar la búsqueda de caminos, y la precisión no es perfecta, de hecho los pasillos centrales, a pesar de ser iguales, pueden tener 1 ó 2 píxeles de dureza para su anchura. A eso se suma el hecho de que en el path_find() permitimos diagonales, para este mapa en cuestión si no hubiese diagonales se notaría menos, aunque quedaría un poco más kutre...

Y si notas alguna variación en el comportamiento de los malos es porque su avance está hecho con un rand() para que NO vayan todos juntos y sea posible ver cuántos hay realmente. Al principio por muchos que fuesen se quedaban todos en el mismo punto y no era posible saber cuántos eran. Hicimos una prueba con 2048 procesos y parecía una horda de zombis, quedaba muy bien el movimiento del conjunto gracias a ese rand().

Por supuesto, si mejoro cualquiera de esos aspectos subiré la nueva versión. Entre otras cosas también habría que mejorar la eficiencia, ya que ahora mismo invocan path_find() en cada FRAME muy alegremente y es una función muy costosa...

Muy ilustrativo DCelso, gracias!!!
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es