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 ... »
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 ... »
(Página 1 de 1, en total 4 entradas)

