Archivo para la categoría General

LibWiiEsp v0.9.1

Así es, queridos amigos, hoy publicamos la segunda versión de LibWiiEsp, la v0.9.1. La lista de cambios es la siguiente:

  • Optimización de la detección de colisiones de un actor con los tiles que forman un escenario: ahora las comprobaciones sólo se realizan con los tiles de alrededor del actor.
  • Se proporcionan dos nuevos métodos para detectar colisiones verticales y horizontales con el escenario.
  • Los actores ya no tienen dirección, en su lugar, su movimiento está controlado enteramente por sus velocidades horizontal y vertical, que ahora pueden ser negativas.
  • Los actores ahora tienen conocimiento sobre el escenario en el que se mueven: se consigue evitar que salgan del escenario.
  • Los métodos que leen las figuras de colisión desde un archivo XML ahora son métodos estáticos de la clase Figura.
  • Otros cambios menores

Espero que esta serie de cambios, orientados principalmente a optimizar las colisiones y a simplificar la estructura de Actor y Nivel, sirvan para afianzar un poco más la biblioteca, aunque soy consciente de que aún falta mucho por hacer.

Aprovecho para informar de que ya está en desarrollo el Arkanoid (concretamente, ya tengo la pelotita rebotando en los márgenes de la zona de juego). En que siga avanzando seguiré manteniendo al día el blog.

Como siempre, la nueva versión y el manual pueden encontrarse en la sección Ficheros de la Forja del proyecto en Rediris.

Nada más, cambio y corto.

, , , , , , ,

Deja un comentario

Manual de libWiiEsp 0.9.0

Muy buenas de nuevo, hoy una entrada cortita para mantener al público al tanto de las novedades. El primer punto del día trata sobre el manual completo de instalación y uso de LibWiiEsp, que acabo de terminar y publicar en la Forja del proyecto. Os dejo el enlace directo aquí.

En el manual explico paso por paso cómo se instala la biblioteca y el entorno de desarrollo, cómo organizar nuestro proyecto, las consideraciones a tener en cuenta a la hora de crear nuestro videojuego con LibWiiEsp, cómo utilizar las tres plantillas para crear actores, niveles y la clase principal de la aplicación, y además la referencia completa de la biblioteca. He intentado que la información resulte lo más completa y útil, incluyendo ejemplos de código y explicaciones sencillas. Se adjunta también el proceso que hay que seguir para crear nuestros escenarios con Tiled. Quien le eche un ojo que comente, que siempre son bienvenidas las críticas.

En otro orden de cosas, a partir de ahora toca la parte divertida: los juegos de ejemplo. Voy a desarrollar tres juegos para Nintendo Wii utilizando la biblioteca, que serán los clásicos Arkanoid, Duck Hunt y Super Pang. Por supuesto, van a ser versiones muy sencillas, y que servirán como ejemplos de uso de LibWiiEsp. Para su desarrollo, emplearé el proyecto de la Forja que originalmente iba a estar destinado únicamente a Wii Pang, pero una vez acabados, serán publicados (binarios y fuentes) tanto allí como en el proyecto propio de LibWiiEsp.

De momento nada más, seguiré informando a medida que haga avances. Cambio y corto.

, , ,

1 comentario

LibWiiEsp v0.9.0

Me complace anunciar que hoy ha sido liberada la versión 0.9.0 de LibWiiEsp. Prácticamente, es una versión completa, pero carece del manual de instalación y uso, que aún estoy redactando, y que espero tener listo para poder publicar la versión 1.0.0 de la biblioteca a finales de esta semana.

Ahora, LibWiiEsp tiene su propio proyecto registrado en la forja de Rediris. Desde este sitio, se puede acceder al código (mediante SVN), a las dependencias (DevKitPPC r21, libOgc 1.8.4 y libFat 1.0.7), y a la versión publicada de la biblioteca, la 0.9.0. Además, está disponible la referencia completa de LibWiiEsp desde la página de la propia forja, y un adelanto de lo que será el manual de la biblioteca.

Así pues, cuando libere la versión estable definitiva (de momento) de la biblioteca, empezaré a centrarme en el desarrollo de algunos juegos de ejemplo, construidos a partir de ella. Por supuesto, Wii Pang es uno de ellos, y seguiré contando por aquí todas las novedades relacionadas con este proyecto.

De momento, poco más, voy a seguir organizando todo, a ver si puedo cumplir objetivos y presentaros pronto la versión 1.0.0 de LibWiiEsp con manual completo.

Cambio y corto.

, , ,

Deja un comentario

Mejor proyecto de comunidad

Me complace anunciar que WiiPang ha sido galardonado con el áccesit al mejor proyecto de comunidad de la fase local de Cádiz del V Concurso de Software Libre. Ya supuso una enorme alegría el hecho de pasar a la final con un proyecto que, a decir verdad, aún va a poco más de la mitad, y este reconocimiento no hace más que aumentar mi satisfacción, y por supuesto, las ganas de continuar con LibWiiEsp y WiiPang.

Tuve que hacer una pequeña presentación del proyecto, y reconozco que me puse como un flan, me dejé varios detalles importantes sin comentar y cometí el fallo de no preparar una demo (de hecho, aún no he grabado un solo vídeo en todo el proyecto, y ya va siendo hora; voy a proponerme grabar algunas cosillas, como una demo de la gestión de colisiones, el funcionamiento del mando, las animaciones, el soporte de idiomas… no sé, ya se me ocurrirá algo). Aún así, espero que haya servido para darle algo de publicidad al proyecto, a ver si pronto veo a alguien experimentando con LibWiiEsp.

No puedo dejar pasar la ocasión para homenajear a todos los compañeros, tanto los que han llegado a la final como a los que no, porque hay tanto esfuerzo, dedicación e ilusión que uno no puede evitar sentirse parte de algo grande. ¡Va por vosotros!

Los proyectos que llegaron a la final, junto con los resultados obtenidos fueron:

  • Aarón Bueno, proyecto «FreePhyloTree», Primer Premio
  • Jesús González, proyecto «Balloon Breakers», finalista Mejor Proyecto de Ocio
  • David Saltares Márquez, proyecto «IberOgre y Sion Tower», Mejor Proyecto de Ocio
  • Ignacio Palomo, proyecto «Dominous», Mejor Proyecto de Innovación
  • Sebastián Guerrero, proyecto «Security Leaks», Mejor Proyecto de Seguridad
  • Ezequiel Vázquez, proyecto «WiiPang», Mejor Proyecto de Comunidad.

Desde aquí, mis felicitaciones a todos, habéis currado de lo lindo, y os merecéis estas distinciones.

Clic aquí para ver la noticia en la página de la Universidad de Cádiz.

Y un pequeño avance: la primera versión de LibWiiEsp está casi casi casi lista, sólo me falta refinar un par de detalles y ponerme a documentar como un loco… más noticias pronto =)

, ,

3 comentarios

LibWiiEsp

¡Muy buenas a tod@s!

Llevo ya unas dos semanas que no actualizo por aquí, pero entre pitos y flautas he tenido que dedicarle mi tiempo a otros menesteres no relacionados con el proyecto. Siento la inconstancia (relativa), pero vengo cargadito de novedades.

En primer lugar, me complace anunciar que la biblioteca multimedia para desarrollo de videojuegos en dos dimensiones para Nintendo Wii (es decir, todo lo que llevo desarrollado hasta el momento)… ¡ya tiene nombre! He decidido bautizarla como LibWiiEsp, y creo que el nombre de la biblioteca se explica por sí solo.

La idea de esta biblioteca surgió de la necesidad de una herramienta bien documentada en español para desarrollar en la consola Wii. He de reconocer que existen otras bibliotecas más avanzadas, basadas mayormente en la libogc, al igual que esta, pero ninguna cuenta con manuales o documentación suficiente para alguien que no conozca el mundillo del desarrollo en Wii. Con este conjunto de clases, su documentación y los futuros manuales que redactaré dentro de no mucho, espero dar ese empujoncito a toda persona que tenga una base en C++, orientación a objetos y desarrollo de videojuegos, y que quiera desarrollar sus juegos para la blanquita de Nintendo.

Por otra parte, ya tengo planificado el desarrollo de LibWiiEsp hasta su primera versión, la v0.1, y calculo que estará lista en unas dos semanas (incluyendo la propia biblioteca, la documentación de ésta generada con Doxygen, y los manuales de uso de la biblioteca, de creación de niveles y de instalación del entorno). Así mismo, adecentaré el blog (que en un futuro se convertirá en una wiki; pero esto, aviso, sólo es una idea) y dispondré todos los contenidos en un proyecto separado en la Forja de Rediris.

Y la última novedad por hoy: el proyecto ha sido seleccionado como finalista en la fase local de la Universidad de Cádiz del V Concurso Universitario de Software Libre. Tengo que reconocer que me ha sorprendido muchísimo esta noticia, porque el proyecto original presentado era una implementación del clásico Super Pang en la Nintendo Wii, y me he ido derivando hacia la construcción de la biblioteca. Además, si sumamos el hecho de que he ido trabajando en este proyecto a rachas, que la documentación (aún) está incompleta… ¡La sorpresa es aún mayor! Quiero agradecer desde aquí a los miembros del jurado del premio local que hayan tenido en consideración mi esfuerzo, y también a todos vosotros (que aunque comentéis poco, sé que estáis ahí) la expectación que está levantando esta herramienta. Prometo que dentro de no mucho publicaré la primera versión estable y cerrada de LibWiiEsp.

Por lo demás, cambio y corto. En las próximas entregas iré desgranando las clases que faltan por documentar, y os iré poniendo al día sobre todo lo relacionado con LibWiiEsp.

, , ,

1 comentario

Cambios menores

Buenas a tod@s un día más. Hoy no traigo la descripción de ninguna clase, únicamente vengo a comentar algunas actualizaciones menores que he ido haciendo a algunas clases.

  • Para empezar, clase Screen ahora puede dibujar un cuadro de textura invertido respecto al eje vertical a partir de una textura que no se modifica; por lo tanto, a la hora de que un personaje tenga, por ejemplo, una animación de movimiento, ésta se podrá aplicar para ambas direcciones sin necesidad de tener en memoria dos imágenes distintas. Además, este cambio es muy eficiente, ya que sólo realiza un par de operaciones extra.
  • He reorganizado la estructura de directorios del proyecto, de tal manera que ahora, en el directorio raíz se encuentra el Makefile (convenientemente adaptado al cambio), la carpeta source (donde están los fuentes), la carpeta xml (donde están los archivos de datos), la carpeta media (donde he incluido los recursos que estoy utilizando para hacer las pruebas), y la carpeta lib (dentro de la cual se encuentran ahora las bibliotecas externas del proyecto).
  • Estoy trabajando (y casi tengo terminada) en una clase abstracta para los actores del juego (explicación sobre qué es un actor más abajo)
  • En los próximos días, comenzaré a preparar la flamante carpeta doc, donde irá la documentación que he ido redactando hasta ahora (generada, por supuesto, con Doxygen), y la que queda (que no es poca, precisamente).
  • Al haber añadido los recursos media, ahora basta con tener el entorno de desarrollo preparado, hacer el checkout del proyecto y compilar para poder ver los ejemplos de código.
  • Voy a subir a la forja un archivo tar.gz con la libogc 1.8.4, ya que sólo se encuentran disponibles los fuentes ahora (y dentro de poco puede que ni eso). Este archivo estará preparado para únicamente ser descomprimido dentro de la carpeta devkitpro, e incluirá la libfat 1.0.7. (ver entrada sobre la instalación del entorno). También voy a reescribir próximamente esa entrada para adaptarlo a los cambios, e incluiré el manual en la documentación.

Y ahora, voy a explicar eso del actor. La biblioteca que tengo en desarrollo va a permitir trabajar a 2 niveles. El más bajo trabajaría de una forma parecida a como lo hace SDL, es decir, proporciona cierta abstracción de los componentes media del programa y de los controles (en este caso, los mandos), y nos permite trabajar con ellos. Además, se cuenta con el soporte de idiomas, la galería de recursos, la cabecera de utilidades, las animaciones, las figuras de colisión y un logger. En este punto es en el que está la biblioteca, es decir, sobre lo que hay ya se pueden crear juegos completos para Nintendo Wii.

El nivel más alto de la biblioteca, que es el que acabo de comenzar con la clase Actor, pretende proporcionar una serie de clases (casi todas abstractas) para trabajar de una forma más cómoda con la consola. Las plantillas serán Actor (cualquier objeto móvil que haya en el juego), Escenario (tendrá un fondo de pantalla y un conjunto de actores, además de gestión del scroll y de los límites del escenario), Escena (las partes del juego como tal: menú, presentación, el propio juego, créditos, etc.), y Juego (que gestionara las distintas escenas, y será la clase principal de un proyecto). Los nombres no son definitivos, y estas clases abstractas serán muy genéricas, de tal manera que se puedan utilizar en prácticamente cualquier juego.

Por supuesto, en su momento lo detallaré todo con el mismo nivel que al resto de las clases, pero ahora mismo espero que más o menos quede claro.

A partir de la siguiente entrada en el blog continuaré con la documentación, pero como ya avisé, voy a ir intercalando documentación y desarrollo. De momento, continúo con la clase Actor.

Más noticias pronto. Cambio y corto.

, , , , , , ,

Deja un comentario

Avances silenciosos

¡Buenas a tod@s!

En primer lugar, quiero aclarar que Wii Pang sigue vivo, sólo que he estado más centrado en los últimos dos meses en su desarrollo que en publicar en el blog (las telarañas acumuladas durante los últimos dos meses en las otras cuatro entradas lo demuestran). Pero seguimos adelante, claro está, solo que con (bastantes) cambios desde el planteamiento inicial.

Os cuento: como ya bien indiqué en la primera entrada, mi primera intención era desarrollar una biblioteca de herramientas (clases en C++) para facilitar la creación de juegos en 2D para Nintendo Wii. Pues bien, tras muchos quebraderos de cabeza, la biblioteca está cercana a su conclusión (según mis cálculos, me quedan tres clases por construir y probar antes de poder sacar a la luz la versión 0.1). Aún no tiene nombre, para los curiosos, pero ya estoy preparando la botella de champán para el bautizo (lo sé, no es un barco xD).

En los próximos días, me comprometo a publicar, al menos, una entrada por día, detallando las clases que forman la biblioteca, tanto su implementación interna, como la funcionalidad que se puede obtener de cada una de ellas, y cómo trabajan junto con las demás. Aprovecho para adelantar que tiene soporte de idiomas, y una clase que gestiona los archivos multimedia desde un archivo XML, entre otras cosas.

Por lo demás, la versión 0.1 de la biblioteca tendrá una completa documentación en formato HTML (cortesía de Doxygen), además de toda la referencia completa en este blog.

Nada más por hoy; mañana (y esta vez de verdad), aprenderemos a utilizar los mandos de la consola (¡sí, otra de las novedades es que ahora se pueden utilizar los cuatro mandos!)

, ,

3 comentarios

Bienvenido al blog de Wii Pang

Hola a todos, y bienvenidos al blog de desarrollo de Wii Pang.

En este pequeño rinconcito de ‘la internet’ iré proporcionando información sobre el estado de desarrollo de la vuelta de tuerca a este clásico donde los haya.

Entrando en materia, el proyecto pretende ser ambicioso, ya que no sólo consta de la propia implementación del Pang en la consola Wii, tarea ya de por sí peliaguda, si no que mi intención es la de facilitar a la comunidad unas herramientas (una biblioteca de clases en C++, para ser exactos) que permitan facilitar la creación de pequeñas (o medianas, vaya usted a saber) aplicaciones en dos dimensiones para la blanquita de Nintendo.

Esta historia surge de la libogc, que, junto con otras bibliotecas portadas por muchos programadores a lo largo del mundo, proporciona suficiente base como para poder desarrollar casi lo que se desee en una Wii, pero… a bajo nivel. Mi biblioteca (pendiente de recibir el botellazo de nombramiento aún) va a proporcionar unas clases de bastante más alto nivel, que abstraigan detalles pesados como pueden ser el la alineación de los datos, el relleno, el big endian … (detalles que se comentarán en otra entrada más adelante).

¿Motivación? ¿Por qué un Super Pang? Pues sencillamente, me encontré hace un tiempo un magnífico tutorial de Hermes  (entuwii.net y elotrolado.net) en el que detallaba una introducción a la programación en Wii. Me dije, ¿y por qué no? A fin de cuentas, tengo un Proyecto Fin de Carrera que entregar. Y debo confesar que la idea de implementar un Pang (con un par de modificaciones, por ejemplo, ganchos oblícuos en lugar de sólo verticales) me vino por mi gusto por los clásicos, pero como un juego de plataformas 2D para Wii no daría jugo para controlar el WiiMote, me decidí por esta otra opción.

Por último, sólo comentar que espero que este blog sirva para que todo curioso sobre el desarrollo en Wii pueda aprender algo (o enseñar, que siempre se agradecen consejos), y que participo en el V Concurso Universitario de Software Libre.

Pronto comenzaré a publicar cosillas sobre el proyecto, al principio sobre los detalles de la programación en Wii, y más adelante, sobre el desarrollo de la biblioteca primero, y del juego después.

¡Saludos!

, , , , ,

1 comentario