Bennu Game Development

Foros en Español => Proyectos => Topic started by: Windgate on May 28, 2009, 11:36:36 PM

Title: Inteligencia Artificial: Búsqueda de caminos con varios procesos
Post by: Windgate on May 28, 2009, 11:36:36 PM
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 (http://www.mediafire.com/?5m0jhnogzi2)
Title: Re: Inteligencia Artificial: Búsqueda de caminos con varios procesos
Post by: SplinterGU on May 29, 2009, 12:09:10 AM
gracias!
Title: Re: Inteligencia Artificial: Búsqueda de caminos con varios procesos
Post by: DCelso on May 29, 2009, 07:45:51 AM
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.
Title: Re: Inteligencia Artificial: Búsqueda de caminos con varios procesos
Post by: Windgate on May 29, 2009, 08:43:35 AM
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!!!