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

