Bueno al fin saco un ratito para ir poniendo un pequeño tutorial sobre GLSWS. Espero expresarme con suficiente claridad. En este tutorial usaré ejemplos sobre una Ubuntu 8.10. En total serán 4 partes. Pero bueno, vayamos al grano.
Lo primero de todo es descargarnos el tarball.
wget http://forja.rediris.es/frs/download.php/1224/glsws-0.0.1.tar.gz
Una vez descargado toca descomprimirlo.
tar -xzf glsws-0.0.1.tar.gz
Para instalarlo tenemos que hacer lo que con cualquier tarball, configurar, compilar e instalar. Seguramente te falten paquetes para poder compilarlo. Lo primero es que debes tener instalados las librerías de desarrollo para OpenGL. El resto de paquetes son: libftgl-dev libftgl2 libboost-filesystem1.35-dev
Ahora vamos a instalarlo:
cd glsws-0.0.1
./configure
make
sudo make install
Rápido y fácil. En el siguiente tutorial explicaré unas nociones básicas de cómo usar la librería.
Bueno, voy a colgar un par de imágenes que, aunque no son gran cosa, han costado bastante. Se trata de dos imágenes del menú del juego. En el se aprecia glsws funcionando (aunque, como ya digo, no es gran cosa).

Imágen menú principal 1

Imágen de la selección de perfil
En estos momentos estoy trabajando en la gestión interna de las cartas, mazos, personajes, perfiles y el mapa (que me está dando más de un dolor de cabeza). En cuanto tenga más imágenes iré colgándolas.
Ya he creado paquetes de glsws. Sólo lo he compilado para 64 bits (arquitectura x86_64). Si alguien es tan amable de crear los paquetes para otra arquitectura se lo agradecería eternamente. Los enlaces son los siguientes:
- glsws-0.0.1.tar.gz
- glsws-dev-0.0.1-1_amd64.deb
- glsws-0.0.1-1_amd64.deb
- glsws-dev-0.0.1-2.x86_64.rpm
- glsws-0.0.1-2.x86_64.rpm
Como muy tarde el lunes pondré documentación acerca de cómo usarla. ¡Un saludo a todos!
ACTUALIZACIÓN: Los paquetes deb no están bien empaquetados. Por ahora dejo el tarball que sí lo está. Ya subiré los *.deb y *.rpm (alienizados) cuando aprenda a hacerlo bien. Lo siento.
Archivado en: Blog Magic Cards | Etiquetas: Documentación, Forja, OpenGL, SDL, Vídeo
Bueno, vuelvo a escribir en el blog. He estado dejando el blog de lado durante 4 meses. La razón es que no veía utilidad al blog si nadie lo va a leer.
Ahora esto ha cambiado. En la presentación del proyecto durante las jornadas de software libre de la Universidad de Cádiz hubo gente interesada en mi proyecto y eso es algo que me da muchas fuerzas para continuar. He recibido contacto de 2 personas interesadas (¡sí, la comunidad se ha triplicado!) y me parece que si alguien presta 5 minutos de atención a mi proyecto lo justo es que yo les preste atención a ellos e intente sorprenderlos con nuevos contenidos e información en el blog.
La experiencia presentando el proyecto ha sido muy positiva para mí, aunque he de reconocer que me daba un poco de reparo el no tener nada visible que enseñar.
Un segundo tema que quiero tratar es que tengo listo el paquete de la librería del sistema de ventanas, al que he llamado libglsws (gl simple window system). En unos días subiré a la forja de proyecto los paquetes .deb de la misma para que cualquiera pueda usarlos (ojala le sirvan a alguien).
Espero, de todo corazón, que mi trabajo sirva a alguien.
En el siguiente gráfico muestro cómo he decidido implementar (a grandes rasgos) el sistema:
Todo está implementado con clases. Existen cuatro subsistemas que se ocupan de red, sonido, vídeo y entrada. El núcleo es la parte principal del sistema. Es quien sincroniza al resto de subsistemas y quien les da paso.
Para comunicarse entre sí, pueden enviarse mensajes a un buzón interno (que es una estructura FIFO). Cada subsistema tiene un buzón y el núcleo otro. Además, externamente está el sistema de ventanas, que necesita intervención por parte del núcleo y por parte del sistema de vídeo.
Además, ya disponen de un histórico de manera que, dependiendo de las opciones de depuración, se registran más o menos eventos en el mismo para poder visualizarlos y poder localizar posibles fallos.
También recoge algunas opciones desde la línea de órdenes y puede interpretar ficheros de configuración (aunque actualmente sólo lee la resolución de pantalla).
En los próximos días implementaré al completo (por fin) el sistema de ventanas para dejarlo funcionando.
Un saludo.
He conseguido “dominar” las autotools. Mil gracias a Manuel Palomo Duarte y a Antonio García Domínguez por su apoyo y colaboración.
He conseguido preparar el autoconf y el automake para el proyecto. Ya todos podéis compilarlo
.
Dejo aquí un enlace interesante que me ha ayudado mucho: http://www.freesoftwaremagazine.com/books/autotools_a_guide_to_autoconf_automake_libtool
Archivado en: Blog Magic Cards | Etiquetas: Documentación, OpenGL, Vídeo
Por fin he encontrado una forma de imprimir fuentes en OpenGL con calidad vectorial. La solución está aquí http://homepage3.nifty.com/ysflight/uglyfont/uglyfonte.html
El autor de esta función ha realizado un trabajo artesanal (admirable). El resultado son fuentes dibujadas con líneas (y, por tanto, vectoriales). Para modificar el tamaño, posición, rotación y color de la fuente (e incluso texturizarlas con texturas 2D) puedes usar cualquier directiva OpenGL (rotaciones, translaciones, escalados, etc).
Además, el autor ha liberado los ficheros para cualquier uso (magnífico).
Espero ahora avance con mucha velocidad.
Archivado en: Blog Magic Cards | Etiquetas: Documentación, Forja, OpenGL, SDL, Vídeo
Hola a todos. Edito el primer comentario del Blog de mi proyecto. No soy un gran redactor así que seré breve.
Estoy a la espera de que me den de alta en la Forja de RedIRIS, para empezar a subir código de mi proyecto. De momento voy mirando documentación de Doxygen para documentar el código que llevo.
La parte que me ocupa es el sistema de vídeo, más concretamente el gestor de ventanas (que quiero que sea independiente de máquina y sistema). Por el momento muestra las ventanas, es capaz de moverlas, mantener una jerarquía y un órden en profundidad.
He implementado una serie de propiedades sobre las ventanas: Visibilidad (visible o invisible), movilidad (móvil o inamovible), color del fondo o textura de fondo (con la pega de que deben ser cuadradas y con un ancho/largo potencia de 2, como exige OpenGL, estoy estudiando la posibilidad de que vengan en cualquier tamaño y una rutina que haga uso de SDL las redimensione a un tamaño que valga a OpenGL), color del borde y una serie de propiedades que aún no están muy logradas.
En cuanto a los objetos que puede tener una ventana, tan sólo puedo colocar de momento botones (y su funcionalidad es nula).
He diseñado ya el modo de introducir datos y recoger datos de las ventanas, así como los eventos que una ventana u objeto pueden generar y recoger. Estos detalles aún no están implementados. En futuros mensajes comentaré cómo va esto.
Ahora mismo me ocupan 2 asuntos:
- Implementación de un parser que lea ficheros para generar las ventanas, con su contenido y eventos asociados.
- Estudio de una forma de dibujar fuentes en pantalla, a ser posible vectorial, con OpenGL y que sea multiplataforma y multisistema. Este asunto en concreto es el que me tiene más parado, porque no he encontrado aún una manera que me convenza. Lo que estoy exigiendo a esto, sobre todo, es la característica multiplataforma y multisistema. Por ahora lo que he conseguido ha sido dibujar texto en la pantalla pero con una calidad pésima, pues uso sdl-ttf (que genera textos de gran calidad pero en formato de mapa de bits). El problema es que tengo que pasarlo a textura de OpenGL y cuando agrando demasiado los polígonos para texturizarlos, se produce un efecto de aliasing bastante horrendo. La solución a este problema es generar mapas de bits muchísimo más grandes, pero consumen demasiada memoria y la eficiencia y el consumo de recursos son otros temas que quiero respetar lo máximo posible.
En fin, que me queda diversión (o quebraderos de cabeza, según se mire) para rato. En breve informaré como avanza el proyecto.
