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 Football" »
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.
Lunes, 24 de marzo del 2008
Versión 0.0.7 de Project Football
Bueno, han pasado dos semanas y ya toca release de Project Football. En esta ocasión se trata de la versión 0.0.7 de Project Football y como recordareis, la fase de desarrollo del II Concurso de Software Libre va llegando a su fin, por lo que esta será la penúltima release dentro de concurso. Y dicho esto vamos con lo que interesa.
Dividio ha estado trabajando en esta iteración mejorando la inteligencia artificial del simulador. Los equipos tienen ahora definidas unas formaciones con las posiciones iniciales, defensivas y ofensivas de cada jugador dentro del campo, así como qué jugadores son los encargados de realizar los saques de esquina, banda, centro, puerta, etc. La IA de los jugadores de campo hace que sigan estas indicaciones de su equipo dinámicamente, por lo que en próximas versiones trataremos de incluir en la pestaña de tácticas algún sistema para controlar en tiempo real las posiciones estratégicas de los jugadores. También se ha incluido en el monitor un anillo de color marcando la posición de cada jugador mientras juega, con esto podremos dar unas dimensiones más realistas a los jugadores sin disminuir su visibilidad en la vista 2D.
Mientras que por mi parte:
Como podéis ver, se están haciendo importantes avances en el desarrollo de Project Football y esperamos continúe así en las siguientes semanas.
Y como en ocasiones anteriores, el registro completo de cambios lo podéis leer en la Forja, y también podéis descargar esta versión 0.0.7 en tres tipos de paquetes: código fuente (incluye script para compilar), compilado dinámicamente para procesadores i386 en Linux, o para Windows.
Más novedades muy pronto.
Dividio ha estado trabajando en esta iteración mejorando la inteligencia artificial del simulador. Los equipos tienen ahora definidas unas formaciones con las posiciones iniciales, defensivas y ofensivas de cada jugador dentro del campo, así como qué jugadores son los encargados de realizar los saques de esquina, banda, centro, puerta, etc. La IA de los jugadores de campo hace que sigan estas indicaciones de su equipo dinámicamente, por lo que en próximas versiones trataremos de incluir en la pestaña de tácticas algún sistema para controlar en tiempo real las posiciones estratégicas de los jugadores. También se ha incluido en el monitor un anillo de color marcando la posición de cada jugador mientras juega, con esto podremos dar unas dimensiones más realistas a los jugadores sin disminuir su visibilidad en la vista 2D.
Mientras que por mi parte:
- Se ha añadido una pantalla para cambiar la configuración básica del juego.
- Se ha añadido una pantalla al crear una nueva partida para seleccionar el equipo con el que se jugará.
- Ahora se muestra el equipo con el que se juega y el siguiente partido en la pantalla principal de juego.
- Se ha añadido una pantalla para consultar la clasificación del los distintos equipos.
- Se ha añadido una pantalla para consultar los jugadores del equipo.
- Se ha corregido un problema con las fechas en plataformas Windows.
Como podéis ver, se están haciendo importantes avances en el desarrollo de Project Football y esperamos continúe así en las siguientes semanas.
Y como en ocasiones anteriores, el registro completo de cambios lo podéis leer en la Forja, y también podéis descargar esta versión 0.0.7 en tres tipos de paquetes: código fuente (incluye script para compilar), compilado dinámicamente para procesadores i386 en Linux, o para Windows.
Más novedades muy pronto.
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.
Martes, 11 de marzo del 2008
Versión 0.0.6 de Project Football
Han transcurrido casi cuatro semanas desde la última release de Project Football. Nuestra idea era sacar una cada dos semanas pero esta se ha ido retrasando repetidas veces debido principalmente a mi falta de tiempo durante el mes de Febrero. Es por ello que desde aquí quiero pedir disculpas a todos aquellos que siguen el desarrollo de Project Football y a mi compañero que ha seguido trabajando en él todo este tiempo.
Una vez dicho esto, me gustaría recordar que queda prácticamente menos de un mes para que la fase de desarrollo del II Concurso de Software Libre llegue a su fin, eso no quiere decir que nosotros detengamos el desarrollo de Project Football, más bien al contrario, continuaremos hasta sacar una versión completa y que nos guste
, y luego quien sabe.
Y ahora sí, vamos con lo que realmente interesa, la versión 0.0.6 de Project Football. Como principal novedad que trae es la posibilidad de manejar partidas, es decir, crear nuevas partidas, cargar partidas ya existentes y guardarlas. Este paso es muy importante dado que a partir de ahora, en todo lo que queda por venir se trabajará sobre una partida en concreto. Una captura de la pantalla en cuestión:
Además, se ha trabajado sobre el sistema de eventos e informes del juego, permitiendo ahora manejar los principales eventos de un partido (comienzo del partido, goles y final del partido) y generar un informe al finalizar el mismo. Estos informes todavía no son visibles, pero para la próxima versión estarán incluidos en la siguiente pantalla, que se convertirá en la principal pantalla del juego una vez que se esté dentro de una partida:
Por otro lado, Dividio ha estado trasladando la IA (Inteligencia Artificial) de los jugadores y el árbitro a Lua, implementándolo todo como máquinas de estados. El motivo de esto es la mayor facilidad de realizar modificaciones de la IA sin necesidad de tocar el código fuente, permitiendo además crear jugadores con estilos de juego característicos, o incluso equipos completos en un futuro. La IA de los jugadores ahora mismo es muy provisional, en la próxima versión nos centraremos en mejorar este aspecto.
Como sugirió Dokan, hemos añadido también una vista ampliada del partido simulado con unas opciones muy básicas, por si se quiere ver este con más detalle. La vista que había hasta ahora se utilizará para realizar el resto de tareas técnicas y la visualización de estadísticas, sin perder de vista el partido.
Como en ocasiones anteriores, el registro completo de cambios lo podéis leer en la Forja, y también podéis descargar esta versión 0.0.6 en tres tipos de paquetes: código fuente (incluye script para compilar), compilado dinámicamente para procesadores i386 en Linux, o para Windows.
Más novedades muy pronto.
Una vez dicho esto, me gustaría recordar que queda prácticamente menos de un mes para que la fase de desarrollo del II Concurso de Software Libre llegue a su fin, eso no quiere decir que nosotros detengamos el desarrollo de Project Football, más bien al contrario, continuaremos hasta sacar una versión completa y que nos guste
Y ahora sí, vamos con lo que realmente interesa, la versión 0.0.6 de Project Football. Como principal novedad que trae es la posibilidad de manejar partidas, es decir, crear nuevas partidas, cargar partidas ya existentes y guardarlas. Este paso es muy importante dado que a partir de ahora, en todo lo que queda por venir se trabajará sobre una partida en concreto. Una captura de la pantalla en cuestión:
Además, se ha trabajado sobre el sistema de eventos e informes del juego, permitiendo ahora manejar los principales eventos de un partido (comienzo del partido, goles y final del partido) y generar un informe al finalizar el mismo. Estos informes todavía no son visibles, pero para la próxima versión estarán incluidos en la siguiente pantalla, que se convertirá en la principal pantalla del juego una vez que se esté dentro de una partida:
Por otro lado, Dividio ha estado trasladando la IA (Inteligencia Artificial) de los jugadores y el árbitro a Lua, implementándolo todo como máquinas de estados. El motivo de esto es la mayor facilidad de realizar modificaciones de la IA sin necesidad de tocar el código fuente, permitiendo además crear jugadores con estilos de juego característicos, o incluso equipos completos en un futuro. La IA de los jugadores ahora mismo es muy provisional, en la próxima versión nos centraremos en mejorar este aspecto.
Como sugirió Dokan, hemos añadido también una vista ampliada del partido simulado con unas opciones muy básicas, por si se quiere ver este con más detalle. La vista que había hasta ahora se utilizará para realizar el resto de tareas técnicas y la visualización de estadísticas, sin perder de vista el partido.
Como en ocasiones anteriores, el registro completo de cambios lo podéis leer en la Forja, y también podéis descargar esta versión 0.0.6 en tres tipos de paquetes: código fuente (incluye script para compilar), compilado dinámicamente para procesadores i386 en Linux, o para Windows.
Más novedades muy pronto.
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 Lua: máquina 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 Lua: máquina 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, física, y lógica" »
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, física, y lógica" »
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
Domingo, 27 de enero del 2008
Versión 0.0.4 de Project Football
Ya tenéis disponible en la sección de descargas la versión 0.0.4 de Project Football, incluyendo por primera vez un binario para Windows.
Los paquetes están compilados ahora en modo Release, esto es, sin opciones de depuración y con alguna optimización. Como principal novedad tenemos la primera "simulación" de un partido, este dura dos tiempos y hay un árbitro que controla el modo de juego en todo momento, quien saca y anota los goles que se produzcan. Sin embargo la IA de los jugadores aún es demasiado básica, sólo saben avanzar en línea recta y golpear el balón si lo tienen cerca. Con esta "amplia" gama de movimientos podéis imaginar que los partidos por ahora no son nada divertidos
Por otro lado, d_b ha estado trabajando en las bases de lo que será el motor para el modo mánager del juego. Su trabajo por ahora no se ve reflejado visualmente en el juego y ha tenido algún pequeño retraso por los exámenes, pero pese a todo, le ha dado un buen lavado de cara al generador de clases para el acceso a la base de datos y ha incluido la estructura de lo que será el sistema de eventos e informes del juego.
Por último, y no menos importante, hemos empezado a recibir bastantes muestras de apoyo y ayuda externa de diverso tipo. A parte de lo comentado en el artículo anterior, para esta versión hemos recibido una nueva colaboración en el apartado de sonido para el juego. Esta aportación se debe a Carlos Javier Bastian Lérida ( DJ Chap N.A ), que nos ha creado un sonido para el golpeo del balón por parte de los jugadores y otro sonido de click para los menús del juego. Cualquier comentario que queráis hacerle sobre estos sonidos, lo podéis escribir aquí mismo.
El registro completo de cambios lo podéis leer en la Forja, y también podéis descargar esta versión en tres tipos de paquetes: código fuente (incluye script para compilar), compilado dinámicamente para procesadores i386 en Linux, o para Windows.
Los paquetes están compilados ahora en modo Release, esto es, sin opciones de depuración y con alguna optimización. Como principal novedad tenemos la primera "simulación" de un partido, este dura dos tiempos y hay un árbitro que controla el modo de juego en todo momento, quien saca y anota los goles que se produzcan. Sin embargo la IA de los jugadores aún es demasiado básica, sólo saben avanzar en línea recta y golpear el balón si lo tienen cerca. Con esta "amplia" gama de movimientos podéis imaginar que los partidos por ahora no son nada divertidos
Por otro lado, d_b ha estado trabajando en las bases de lo que será el motor para el modo mánager del juego. Su trabajo por ahora no se ve reflejado visualmente en el juego y ha tenido algún pequeño retraso por los exámenes, pero pese a todo, le ha dado un buen lavado de cara al generador de clases para el acceso a la base de datos y ha incluido la estructura de lo que será el sistema de eventos e informes del juego.
Por último, y no menos importante, hemos empezado a recibir bastantes muestras de apoyo y ayuda externa de diverso tipo. A parte de lo comentado en el artículo anterior, para esta versión hemos recibido una nueva colaboración en el apartado de sonido para el juego. Esta aportación se debe a Carlos Javier Bastian Lérida ( DJ Chap N.A ), que nos ha creado un sonido para el golpeo del balón por parte de los jugadores y otro sonido de click para los menús del juego. Cualquier comentario que queráis hacerle sobre estos sonidos, lo podéis escribir aquí mismo.
El registro completo de cambios lo podéis leer en la Forja, y también podéis descargar esta versión en tres tipos de paquetes: código fuente (incluye script para compilar), compilado dinámicamente para procesadores i386 en Linux, o para Windows.
« página anterior
(Página 2 de 4, en total 35 entradas)
página siguiente »







