Martes, 6 de mayo del 2008
Premio Local de Sevilla, EDVS 2, y estado del proyecto
Hace tiempo que no comentamos por aquí las cosas que han ido ocurriendo alrededor de Project Football, así que a continuación os dejo un pequeño resumen.
Fuimos al acto de entrega de los Premios Locales de Sevilla en el CUSLII, hicimos una pequeña presentación de nuestro proyecto junto a los desarrolladores de Pro Evolution Chapping, los cuales obtuvieron el primer premio en esta categoría local de Sevilla y nosotros nos llevamos una mención especial por parte de la organización. El evento estuvo muy bien, entre los asistentes Javier Santos se puso en contacto con nosotros para ver si conseguimos sacar una versión del juego para MacOS X (cualquier ayuda en este área es bienvenida). Aquí os dejo un recorte del periódico El Mundo del Sábado 3 de Marzo, en el que hablan de este evento:
También el Sábado 3 se celebró en Sevilla el EDVS 2, un encuentro de desarrolladores de videojuegos organizado por la asociación DESEA. Allí pudimos ver varios proyectos interesantes y conocer a personas metidas en el mundillo de los videojuegos. Pudimos hablar con la gente de Genera Mobile, que llevan unos años desarrollando mánagers de fútbol para móviles y tienen la licencia oficial de la LFP para poner los nombres de los equipos y los jugadores, además nos enseñaron la versión 2008 de dicho mánager y otros juegos de fútbol que estaban haciendo. También pude conocer a JoveChiere, un crack del Wings3D, al que le estuve preguntando algunas cosillas sobre como modelar una portería, el me comentó la existencia de un portal en español sobre Wings3D que está montando y que tiene muy buena pinta. También pudimos enseñar un poco el juego en un momento de relax y parece que gustó como va la cosa (gracias a Alberto y a nuestro tocayo David por ofrecer sus portátiles). Ya tenemos ganas de ir al EDVS 3
.
Por último, en cuanto al desarrollo propio de Project Football, estamos realizando la documentación del desarrollo que hemos hecho hasta ahora, puesto que es nuestro proyecto fin de carrera y queremos entregarlo antes del 2 de Junio (a ver si nos da tiempo), por esta razón no le estamos dando ahora tanta caña al código fuente. En el servidor SVN hemos corregido algunos pequeños detalles (por ejemplo para que compile en la nueva Ubuntu 8.04), y en mi copia local he estado trabajando un poco en la conducción del balón por parte de los jugadores, aunque el movimiento no es muy fluido aún.
Fuimos al acto de entrega de los Premios Locales de Sevilla en el CUSLII, hicimos una pequeña presentación de nuestro proyecto junto a los desarrolladores de Pro Evolution Chapping, los cuales obtuvieron el primer premio en esta categoría local de Sevilla y nosotros nos llevamos una mención especial por parte de la organización. El evento estuvo muy bien, entre los asistentes Javier Santos se puso en contacto con nosotros para ver si conseguimos sacar una versión del juego para MacOS X (cualquier ayuda en este área es bienvenida). Aquí os dejo un recorte del periódico El Mundo del Sábado 3 de Marzo, en el que hablan de este evento:
También el Sábado 3 se celebró en Sevilla el EDVS 2, un encuentro de desarrolladores de videojuegos organizado por la asociación DESEA. Allí pudimos ver varios proyectos interesantes y conocer a personas metidas en el mundillo de los videojuegos. Pudimos hablar con la gente de Genera Mobile, que llevan unos años desarrollando mánagers de fútbol para móviles y tienen la licencia oficial de la LFP para poner los nombres de los equipos y los jugadores, además nos enseñaron la versión 2008 de dicho mánager y otros juegos de fútbol que estaban haciendo. También pude conocer a JoveChiere, un crack del Wings3D, al que le estuve preguntando algunas cosillas sobre como modelar una portería, el me comentó la existencia de un portal en español sobre Wings3D que está montando y que tiene muy buena pinta. También pudimos enseñar un poco el juego en un momento de relax y parece que gustó como va la cosa (gracias a Alberto y a nuestro tocayo David por ofrecer sus portátiles). Ya tenemos ganas de ir al EDVS 3
Por último, en cuanto al desarrollo propio de Project Football, estamos realizando la documentación del desarrollo que hemos hecho hasta ahora, puesto que es nuestro proyecto fin de carrera y queremos entregarlo antes del 2 de Junio (a ver si nos da tiempo), por esta razón no le estamos dando ahora tanta caña al código fuente. En el servidor SVN hemos corregido algunos pequeños detalles (por ejemplo para que compile en la nueva Ubuntu 8.04), y en mi copia local he estado trabajando un poco en la conducción del balón por parte de los jugadores, aunque el movimiento no es muy fluido aún.
Viernes, 18 de abril del 2008
Salimos en Linux Magazine Nº 37
Pues eso, que han publicado un artículo sobre nuestro proyecto en la edición Nº 37 de Linux Magazine. Los editores de la revista pidieron a los participantes en el CUSLII un artículo describiendo sus proyectos, y luego ellos irían publicando algunos de dichos artículos. Aquí tenéis la página donde aparece:
El artículo lo escribimos a finales de Enero, por lo que las capturas de pantalla que aparecen son algo viejas. La imagen está recortada de la que publicaron los del proyecto ICUM en su blog, a quienes aprovechamos para felicitarles por su premio en la categoría local de Castilla-La Mancha.
Sobre los avances del proyecto, ahora mismo nos hemos tomado un pequeño descanso para dedicar un poco de tiempo a ese proyecto que tiene todo el mundo llamado Vida Real, en el que hay trabajo, exámenes, feria, familia, etc, así que la próxima versión tardará un poco más de lo habitual.
El artículo lo escribimos a finales de Enero, por lo que las capturas de pantalla que aparecen son algo viejas. La imagen está recortada de la que publicaron los del proyecto ICUM en su blog, a quienes aprovechamos para felicitarles por su premio en la categoría local de Castilla-La Mancha.
Sobre los avances del proyecto, ahora mismo nos hemos tomado un pequeño descanso para dedicar un poco de tiempo a ese proyecto que tiene todo el mundo llamado Vida Real, en el que hay trabajo, exámenes, feria, familia, etc, así que la próxima versión tardará un poco más de lo habitual.
Viernes, 11 de abril del 2008
Versión de mantenimiento 0.1.1 de Project Football
Debido a un grave problema de rendimiento en la versión 0.1.0 para Windows, ha sido publicada la versión de mantenimiento 0.1.1 de Project Football. Ya que el problema era bastante molesto para los usuarios de Windows, en cuanto hemos tenido algo de tiempo nos hemos puesto manos a la obra para sacar esta versión.
Resulta que al crear la base de datos, realizábamos múltiples inserciones de golpe, siendo cada una de ellas una transacción en SQLite. En Linux apenas se notaban unos pocos segundos de retraso al crear la base de datos completa, pero en Windows el proceso se eternizaba, llegando a tardar entre 2 y 3 minutos en crear una partida nueva. La solución ha sido realizar todas las inserciones de creación de la base de datos en una única transacción, lo que ha mejorado el rendimiento notablemente. Ahora la creación de la base de datos es casi instantánea.
A parte de esto, se ha aprovechado para cambiar la configuración de vídeo por defecto, pasando a ser ahora la resolución 1024x768 a pantalla completa, y con VSync activado. También se ha añadido un límite mínimo a la altura de la cámara en el modo 3D, con lo que ahora no es posible ver el campo desde abajo.
El registro completo de cambios lo podéis leer en la Forja, y también podéis descargar esta versión 0.1.1 en tres tipos de paquetes: código fuente (incluye script para compilar), compilado dinámicamente para procesadores i386 en Linux, o para Windows.
Resulta que al crear la base de datos, realizábamos múltiples inserciones de golpe, siendo cada una de ellas una transacción en SQLite. En Linux apenas se notaban unos pocos segundos de retraso al crear la base de datos completa, pero en Windows el proceso se eternizaba, llegando a tardar entre 2 y 3 minutos en crear una partida nueva. La solución ha sido realizar todas las inserciones de creación de la base de datos en una única transacción, lo que ha mejorado el rendimiento notablemente. Ahora la creación de la base de datos es casi instantánea.
A parte de esto, se ha aprovechado para cambiar la configuración de vídeo por defecto, pasando a ser ahora la resolución 1024x768 a pantalla completa, y con VSync activado. También se ha añadido un límite mínimo a la altura de la cámara en el modo 3D, con lo que ahora no es posible ver el campo desde abajo.
El registro completo de cambios lo podéis leer en la Forja, y también podéis descargar esta versión 0.1.1 en tres tipos de paquetes: código fuente (incluye script para compilar), compilado dinámicamente para procesadores i386 en Linux, o para Windows.
Domingo, 6 de abril del 2008
Versión 0.1.0 de Project Football
Ya está disponible la versión 0.1.0 de Project Football, en la que hemos dado un salto cualitativo en cuanto a la jugabilidad de este mánager de fútbol. Como se comentó en ocasiones anteriores, esta será la última versión que entre en el II Concurso Universitario de Software Libre. Aprovechamos la ocasión, para desde aquí desear suerte a todos los participantes en esta fase final.
En este hito, se han alcanzado la mayoría de los objetivos marcados al comienzo del concurso. Esto es, poder crear partidas y guardarlas, simular partidos y completar una temporada de liga. A continuación una lista detallada de los cambios realizados: Continua leyendo "Versión 0.1.0 de Project ... »
En este hito, se han alcanzado la mayoría de los objetivos marcados al comienzo del concurso. Esto es, poder crear partidas y guardarlas, simular partidos y completar una temporada de liga. A continuación una lista detallada de los cambios realizados: Continua leyendo "Versión 0.1.0 de Project ... »
Martes, 1 de abril del 2008
Primeros esbozos de la versión 0.1.0
Ya queda poco para que finalice la fase de desarrollo del II Concurso Universitario de Software Libre, en el que estamos participando con Project Football. Es por esto que estamos tratando de dar un empujón un poco más fuerte para dejar algo medianamente presentable, a lo que llamaremos la versión 0.1.0 de este mánager de fútbol para Linux y Windows.
Una de las partes que ya están finalizadas para esta versión es el aspecto visual del monitor de simulación. En ese gran hueco que existía antes a la izquierda, ahora se puede consultar la lista de jugadores titulares de tu equipo, y además se han incluido un par de botones dentro de la pestaña de formaciones, con los que podréis cambiar en tiempo real la formación a usar por el equipo (actualmente sólo es posible cambiar entre un 4-3-3 o un 4-4-2).
También se ha mejorado la información mostrada por pantalla, ahora tenemos un pequeño marcador con los goles y el nombre de los equipos que están jugando, tanto en la vista general como en la vista ampliada. En la vista ampliada también se ha añadido un resumen del sistema de log, con lo que es más fácil seguir lo que está ocurriendo, y se ha mejorado el modo 3D. Ahora los jugadores y las porterías son "un poco" más "realistas", y la cámara sigue la posición de la pelota asemejándose a una cámara de televisión en un partido de fútbol de la tele, pudiendo utilizar las teclas WSAD, RePag y AvPag para desplazar la cámara si así lo deseamos.
Para este fin de semana esperamos tener lista la versión 0.1.0 con estas y más novedades.
Una de las partes que ya están finalizadas para esta versión es el aspecto visual del monitor de simulación. En ese gran hueco que existía antes a la izquierda, ahora se puede consultar la lista de jugadores titulares de tu equipo, y además se han incluido un par de botones dentro de la pestaña de formaciones, con los que podréis cambiar en tiempo real la formación a usar por el equipo (actualmente sólo es posible cambiar entre un 4-3-3 o un 4-4-2).
También se ha mejorado la información mostrada por pantalla, ahora tenemos un pequeño marcador con los goles y el nombre de los equipos que están jugando, tanto en la vista general como en la vista ampliada. En la vista ampliada también se ha añadido un resumen del sistema de log, con lo que es más fácil seguir lo que está ocurriendo, y se ha mejorado el modo 3D. Ahora los jugadores y las porterías son "un poco" más "realistas", y la cámara sigue la posición de la pelota asemejándose a una cámara de televisión en un partido de fútbol de la tele, pudiendo utilizar las teclas WSAD, RePag y AvPag para desplazar la cámara si así lo deseamos.
Para este fin de semana esperamos tener lista la versión 0.1.0 con estas y más novedades.
Viernes, 14 de marzo del 2008
Soporte para Lua en Eclipse mediante LuaEclipse
Puesto que estamos utilizando el lenguaje de programación Lua para desarrollar diversas tareas en Project Football, empieza a ser necesaria algo de integración de dicho lenguaje en el entorno de desarrollo EasyEclipse para obtener una mayor productividad.
Por ello, y gracias a la flexibilidad que ofrece esta "navaja suiza" llamada Eclipse, he instalado el plugin LuaEclipse en el entorno y parece que la cosa promete. La instalación es muy simple, sólo hay que agregar el repositorio de LuaEclipse a la sección de sitios remotos de Eclipse e instalar los paquetes que allí se encuentran. (Es necesario Eclipse 3.2x o superior).
Una vez instalado, disponemos de varias cosas que echaba mucho en falta, como es el coloreado de sintaxis en scripts de Lua, la integración de la documentación de Lua (con lo que aparece la descripción de las funciones documentadas al pasar el ratón sobre ellas), y la posibilidad de poder ejecutar un script directamente en un intérprete de Lua, con lo que es posible comprobar rápidamente si hay errores de sintaxis en el código (antes tenía que ejecutar el proyecto entero para realizar esta simple comprobación).
El plugin ofrece otra serie de funcionalidades que por ahora no he estudiado, pero el uso del LuaProfiler, para detectar cuellos de botella en los scripts, parece bastante interesante.
Por ello, y gracias a la flexibilidad que ofrece esta "navaja suiza" llamada Eclipse, he instalado el plugin LuaEclipse en el entorno y parece que la cosa promete. La instalación es muy simple, sólo hay que agregar el repositorio de LuaEclipse a la sección de sitios remotos de Eclipse e instalar los paquetes que allí se encuentran. (Es necesario Eclipse 3.2x o superior).
Una vez instalado, disponemos de varias cosas que echaba mucho en falta, como es el coloreado de sintaxis en scripts de Lua, la integración de la documentación de Lua (con lo que aparece la descripción de las funciones documentadas al pasar el ratón sobre ellas), y la posibilidad de poder ejecutar un script directamente en un intérprete de Lua, con lo que es posible comprobar rápidamente si hay errores de sintaxis en el código (antes tenía que ejecutar el proyecto entero para realizar esta simple comprobación).
El plugin ofrece otra serie de funcionalidades que por ahora no he estudiado, pero el uso del LuaProfiler, para detectar cuellos de botella en los scripts, parece bastante interesante.
Sábado, 1 de marzo del 2008
Mejorando la integración de Lua: máquina de estados y CEGUI
Hace un tiempo comentamos cómo estábamos integrando Lua en el proyecto. En aquella ocasión nos centramos en utilizar Swig para acceder desde Lua a funciones en C++, ahora vamos a explicar cómo acceder desde C++ a funciones y datos en Lua.
Para esta parte, y como suele ser habitual, dependiendo de las necesidades del proyecto será mejor utilizar una alternativa u otra. En nuestro caso, queremos utilizar Lua para realizar la lógica de la interfaz de usuario e implementar las máquinas de estados para la inteligencia artificial en el simulador. Como ya descartamos en su momento utilizar Luabind y tolua++, para esta parte utilizaremos la API de Lua para enviar y recibir información entre C++ y Lua.
La interfaz de usuario la estamos desarrollando utilizando la librería CEGUI, que nos ofrece la interfaz ScriptModule para poder utilizar algún sistema de scripting. En nuestro proyecto, utilizamos la clase CLuaManager que creamos para realizar los bindings mediante Swig, y ahora hacemos que herede de ScriptModule, implementando todos los métodos que sean necesarios. Una vez realizado esto, sólo tendremos que indicarle a CEGUI en su inicialización que utilice nuestro modulo de scripting, lo que quedaría algo así:
Con esto conseguimos que CEGUI se encargue de llamar a la funciones Lua que le indiquemos para cada elemento de la interfaz de usuario.
El otro uso que le vamos a dar a Lua va a ser la implementación de los estados de los agentes dentro del simulador. Veamos esto con un poco más de detalle:
Continua leyendo "Mejorando la integración de ... »
Para esta parte, y como suele ser habitual, dependiendo de las necesidades del proyecto será mejor utilizar una alternativa u otra. En nuestro caso, queremos utilizar Lua para realizar la lógica de la interfaz de usuario e implementar las máquinas de estados para la inteligencia artificial en el simulador. Como ya descartamos en su momento utilizar Luabind y tolua++, para esta parte utilizaremos la API de Lua para enviar y recibir información entre C++ y Lua.
La interfaz de usuario la estamos desarrollando utilizando la librería CEGUI, que nos ofrece la interfaz ScriptModule para poder utilizar algún sistema de scripting. En nuestro proyecto, utilizamos la clase CLuaManager que creamos para realizar los bindings mediante Swig, y ahora hacemos que herede de ScriptModule, implementando todos los métodos que sean necesarios. Una vez realizado esto, sólo tendremos que indicarle a CEGUI en su inicialización que utilice nuestro modulo de scripting, lo que quedaría algo así:
CEGUI::ScriptModule* script_module = CLuaManager::getInstance();
m_system = new CEGUI::System(m_renderer, 0, 0, script_module) ;
Con esto conseguimos que CEGUI se encargue de llamar a la funciones Lua que le indiquemos para cada elemento de la interfaz de usuario.
El otro uso que le vamos a dar a Lua va a ser la implementación de los estados de los agentes dentro del simulador. Veamos esto con un poco más de detalle:
Continua leyendo "Mejorando la integración de ... »
Miércoles, 20 de febrero del 2008
Sincronizando gráficos, física, y lógica
Un aspecto importante a la hora de desarrollar un juego es lograr sincronizar el motor gráfico, el motor de física, y la lógica del juego, de manera que este se comporte de manera similar en diferentes máquinas.
Por un lado, el motor gráfico cuanto más fluido funcione mejor, aunque nunca viene mal ajustar su velocidad con la tasa de refresco del monitor, con lo que aliviamos un poco el procesador. El motor de física y la lógica del juego suelen consumir bastantes recursos, por lo que también es buena idea regular a la velocidad que se actualizan.
Hasta la versión 0.0.5 de Project Football (incluida), el motor gráfico y el de física corrían a sus anchas, y la lógica del juego tenía como límite una actualización por cada tres veces que se actualizara la física. Esto tiene el inconveniente de que consume muchos recursos y que dependiendo de la máquina, el juego funciona más rápido o más lento. La única opción hasta el momento era activar la sincronización con el monitor (opción VSYNC en el fichero ProjectFootball.ini), que disminuye bastante el uso de recursos, pero aún así, no todos los monitores tienen la misma frecuencia de actualización, por lo que el juego seguirá funcionando a diferente velocidad dependiendo de la máquina.
Continua leyendo "Sincronizando gráficos, ... »
Por un lado, el motor gráfico cuanto más fluido funcione mejor, aunque nunca viene mal ajustar su velocidad con la tasa de refresco del monitor, con lo que aliviamos un poco el procesador. El motor de física y la lógica del juego suelen consumir bastantes recursos, por lo que también es buena idea regular a la velocidad que se actualizan.
Hasta la versión 0.0.5 de Project Football (incluida), el motor gráfico y el de física corrían a sus anchas, y la lógica del juego tenía como límite una actualización por cada tres veces que se actualizara la física. Esto tiene el inconveniente de que consume muchos recursos y que dependiendo de la máquina, el juego funciona más rápido o más lento. La única opción hasta el momento era activar la sincronización con el monitor (opción VSYNC en el fichero ProjectFootball.ini), que disminuye bastante el uso de recursos, pero aún así, no todos los monitores tienen la misma frecuencia de actualización, por lo que el juego seguirá funcionando a diferente velocidad dependiendo de la máquina.
Continua leyendo "Sincronizando gráficos, ... »
Publicado por Dividio
en CUSLII, Ogre, Project Football
a las
21:09
| Comentarios (0)
| Referencias (0)
Martes, 12 de febrero del 2008
Versión 0.0.5 de Project Football
Han transcurrido 2 semanas, y aquí tenéis la nueva versión 0.0.5 de Project Football. Destacan visualmente en esta versión los cambios incluidos en la pantalla del simulador, puesto que ahora muestra algo de información sobre lo que está ocurriendo en el terreno de juego durante un partido.
Como podéis ver en la captura, la parte en la que se muestra el campo ha sido reducida, en parte para dejar más sitio donde poder colocar información y controles. Nos gustaría saber vuestra opinión sobre como la veis ahora, ¿está bien o es demasiado pequeña?. Una opción que estamos barajando, es que esta sería la pantalla principal del simulador y podríamos incluir un botón que mostraría el campo en una ventana mayor, así si sólo se quiere ver el partido se puede usar esa ventana y si se quieren realizar cambios tácticos se utiliza esta pantalla principal ¿qué os parece?.
Por mi parte, como ya comenté en el artículo anterior, he estado trabajando sobre lo que he aprendido del libro "Programming Game AI by Example", y los primeros resultados se empiezan a ver en el partido simulado. Ahora los jugadores pueden dirigirse a cualquier punto del campo y esto hace que el partido sea algo más entretenido. También he realizado algunos cambios que habíais sugerido, como poner un límite físico al campo para que los jugadores no salgan "volando", incluir información del partido en la pantalla del simulador (como comentaba Juaxix), e incluir una pequeña comprobación para el problema que tenía Pedro Laguna.
Mi tocayo por su parte, ha continuado el trabajo en el motor para el modo mánager, concluyendo la implementación preliminar de CGameEngine y mejorando mucho el generador de clases para la base de datos, creando con el las clases de acceso a una primera versión del modelo de datos.
El registro completo de cambios lo podéis leer en la Forja, y también podéis descargar esta versión 0.0.5 en tres tipos de paquetes: código fuente (incluye script para compilar), compilado dinámicamente para procesadores i386 en Linux, o para Windows.
Como podéis ver en la captura, la parte en la que se muestra el campo ha sido reducida, en parte para dejar más sitio donde poder colocar información y controles. Nos gustaría saber vuestra opinión sobre como la veis ahora, ¿está bien o es demasiado pequeña?. Una opción que estamos barajando, es que esta sería la pantalla principal del simulador y podríamos incluir un botón que mostraría el campo en una ventana mayor, así si sólo se quiere ver el partido se puede usar esa ventana y si se quieren realizar cambios tácticos se utiliza esta pantalla principal ¿qué os parece?.
Por mi parte, como ya comenté en el artículo anterior, he estado trabajando sobre lo que he aprendido del libro "Programming Game AI by Example", y los primeros resultados se empiezan a ver en el partido simulado. Ahora los jugadores pueden dirigirse a cualquier punto del campo y esto hace que el partido sea algo más entretenido. También he realizado algunos cambios que habíais sugerido, como poner un límite físico al campo para que los jugadores no salgan "volando", incluir información del partido en la pantalla del simulador (como comentaba Juaxix), e incluir una pequeña comprobación para el problema que tenía Pedro Laguna.
Mi tocayo por su parte, ha continuado el trabajo en el motor para el modo mánager, concluyendo la implementación preliminar de CGameEngine y mejorando mucho el generador de clases para la base de datos, creando con el las clases de acceso a una primera versión del modelo de datos.
El registro completo de cambios lo podéis leer en la Forja, y también podéis descargar esta versión 0.0.5 en tres tipos de paquetes: código fuente (incluye script para compilar), compilado dinámicamente para procesadores i386 en Linux, o para Windows.
Viernes, 1 de febrero del 2008
Estudiando como hacer la IA para los jugadores
Los que habéis probado la versión 0.0.4 de Project Football, habéis podido comprobar que la inteligencia artificial de los jugadores no es muy elaborada, por decir algo
. Los que no la habéis probado, aquí tenéis un vídeo en Youtube (gracias Jaime).
Para el proyecto estoy tratando de aplicar lo que aprendí hace un par de años desarrollando la IA para un equipo de RoboCup, y sobre eso he estado trabajando las dos últimas semanas. La cosa ha ido bastante bien, pero el diseño de clases general no acababa de convencerme, y estaba viendo como el código corría el peligro de acabar en un spaguetti code.
Así que divagando sobre esta situación, casi de rebote, dí con este libro: Programming Game AI by Example, de Mat Buckland. Al señor Mat voy a tener que hacerle un monumento, ha escrito un libro exactamente de lo que estoy tratando de hacer. Así que sin perder un minuto, fui a la biblioteca de la Universidad a sacar el libro y llevo dos días leyéndolo en perfecto inglés.
La lectura del libro es bastante amena, habla detalladamente sobre varías técnicas muy utilizadas en el desarrollo de videojuegos, como son las máquinas de estados (patrón State Machine), el control del movimiento de los agentes (Steering Behaviors), jerarquías de comportamiento, comunicación entre agentes, scripting en Lua de la inteligencia artificial, búsqueda de caminos, etc., y todo con sus ejemplos bien claritos (de ahí el "by Example" del título). Por último, y lo que hizo que me fijara en el libro, hay un capítulo entero dedicado a explicar como hacer la IA básica para un simulador de fútbol, jeje.
Pues en eso estoy ahora mismo, voy ya por la mitad del libro
Para el proyecto estoy tratando de aplicar lo que aprendí hace un par de años desarrollando la IA para un equipo de RoboCup, y sobre eso he estado trabajando las dos últimas semanas. La cosa ha ido bastante bien, pero el diseño de clases general no acababa de convencerme, y estaba viendo como el código corría el peligro de acabar en un spaguetti code.
Así que divagando sobre esta situación, casi de rebote, dí con este libro: Programming Game AI by Example, de Mat Buckland. Al señor Mat voy a tener que hacerle un monumento, ha escrito un libro exactamente de lo que estoy tratando de hacer. Así que sin perder un minuto, fui a la biblioteca de la Universidad a sacar el libro y llevo dos días leyéndolo en perfecto inglés.
La lectura del libro es bastante amena, habla detalladamente sobre varías técnicas muy utilizadas en el desarrollo de videojuegos, como son las máquinas de estados (patrón State Machine), el control del movimiento de los agentes (Steering Behaviors), jerarquías de comportamiento, comunicación entre agentes, scripting en Lua de la inteligencia artificial, búsqueda de caminos, etc., y todo con sus ejemplos bien claritos (de ahí el "by Example" del título). Por último, y lo que hizo que me fijara en el libro, hay un capítulo entero dedicado a explicar como hacer la IA básica para un simulador de fútbol, jeje.
Pues en eso estoy ahora mismo, voy ya por la mitad del libro
(Página 1 de 3, en total 23 entradas)
página siguiente »

