Citar:
La verdad es que tengo bastante curiosidad por ver qué estás preparando...
¿Puedes adelantar algo?
Y sobre las librerías... ¿Has pensado en liberar todo ese material?
Saludetes
Mapache
Eliuk: Bueno, ya he adelantado algo sobre el comportamiento de mis librerías... pero puedo extenderme un poco más ya que estás interesado (lo cual te agradezco sinceramente, porque yo creía inicialmente que las librerías me serían útiles simplemente a mí).
Dalubi es una librería que inicialmente era utilitaria... como "utility.h"... para la máquina-Z (y para mis propias aventuras en INFSP6). Luego se me ocurrió hacerla bitplataforma, observando la "fea" GUI blanca que tienen los juegos compilados para Glulx por defecto de la librería Inform. Miré alguna documentación y adapté algunas rutinas para obtener comportamientos idénticos (con respecto al despliegue de texto en pantalla) tanto para Z como para Glulx (y puedo decirte que Dalubi corrige un error bien feo de la librería 6/11 que parece que nadie ha detectado todavía... un error con la restauración del color).
Finalmente, la librería dejó de ser "utilitaria" para convertirse en algo como de "funciones biplataforma para el manejo de la pantalla". Aunque, por supuesto, más adelante es posible que se añadan algunas otras funciones apropiadas para biplataforma que no tengan que ver mucho con la pantalla (puedes ver algo así ya, si miras las "Magias" de Dalubi). La idea es que los programadores puedan incorporar funciones utiles a la librería y así formar una "gran librería de extensión" para de funciones útiles biplataforma.
Damusix es mi intento de extender Dalubi para que manejara audio. Estoy seguro que con un poco de esfuerzo podría hacer Damusix biplataforma... (por lo menos ya he logrado algunas cosas musicales en WindowsFrotz)... pero no es el objetivo. Damusix es una mejora sustancial de la Librería de Efectos de Zak. Esa es una excelente librería inspirada del ejemplo JukeBox.h de Adam Cadre... pero la de Zak se queda corta en algunos asuntos... y, ciertamente, yo creía que las funciones podian simplificarse más todavía. Así, Damusix es capaz de gestionar hasta 10 canales de audio (aunque, en una próxima versión, ese máximo podrá ser determinado por el programador). Tiene un manejo transparente del audio: permite tocar sonidos, pararlos, repetirlos, cambiar el volumen... hacer Fades... etc. Además, su filosofía de "dar canales a los sonidos" (es decir, crear un vínculo abstracto entre un canal y un sonido concreto) facilita mucho el trabajo del programador y la lectura del código. El kernel de Damusix controla la repetición de los sonidos, los detiene si es necesario, reestablece correctamente el audio en los casos de SAVE, UNDO, RESTORE, RESTART. Además, comprueba si la salida de audio es posible y cosas así.
La filosofía de "dar canales" también puede ser eludida por los programadores más avanzados mediante las llamadas rutinas "técnicas" que permiten trabajar directamente con un canal específico.
La idea era crear un objeto con una interface amigable para el programador, pero no sacrificando con ello la potencia del audio en Glulx. Es seguro que módulos como GSound (de la GWindows) trabajan más poderosamente que Damusix... pero, jeje, no son tan "sencillos" de usar.
Damenu es mi propia version de DMenu.h. La he adaptado para estar en español, para funcionar coherentemente biplataforma y le he agregado algunos pluses adicionales (DMenu.h es una extensión biplataforma de la rutina DoMenu de Inform, pero DMenu.h es mucho mejor en varios sentidos).
Dastatus es mi implementación de una barra de estado del tipo "Bronze" tanto para Z como para Glulx. Muestra una bonita brújula que indica las salidas. En la máquina Z las salidas que aún no han sido visitadas deberían, además, aparecer en negrita (y si el programador se esfuerza un mínimo, también puede ponerle color).
GDastatus es una versión de Dastatus, pero para ser compatible con GWindows (es un widget para GWindows).
Datoki, como lo dije, es mi propia adaptación de Fhablaoo.h y Palique.h (en realidad, es casi idéntica a palique.h). Datoki permite mostrar diálogos de conversación en un sistema basado en menús. Permite, por extensión, múltiples niveles de SubDialogos (es decir, menús de conversación lanzados por otro menú previo). Además, autorepite el menú, para que no tengas que estar escribiendo continuamente "Habla con...". Funciona coherentemente tanto en Z como en Glulx. Permite limpiar la pantalla cada vez o mostrar los mensajes uno abajo del otro sin limpiar la pantalla. Además, cuenta con rutinas antes y después para personalizar los comportamientos de los Menús. Gracias al aporte de Palique.h, puedes usar simples menús genéricos... o asociarles un "tema de conversación" que será averiguado por una rutina. Si usas Inform6 con la Lib.6/11 e infsp6, Datoki autoinicializará todos los diálogos por si misma sin que tengas que poner ningún código.
Ah! y Datoki incluye funciones para manejar los mensajes del menú, para personalizarlos, y para crear copias de seguridad de los dialogos presentados.
Poco después de haber dejado Datoki en su primer release estable, encontré una librería llamada GTalk que hace prácticamente lo mismo (y quizá mejor). Pero, nuevamente, Datoki sigue siendo simplemente más fácil de usar (yo NO SOY PROGRAMADOR: soy un novato, por eso que agradezco infinitamente cuando un programador libera una librería que hace las cosas bien, pero que también es sencilla de usar...).
Ah! Tanto Dalubi como Damusix (y todas la librería de DreamBytes Adventures que manejen los puntos de entrada para GLK) tiene una "inicializacion centralizada" mediante la librería Dainulik, que no es más que un "truquito" para facilitarle la vida al programador. Dainulik se encarga de llamar a todos los puntos de entrada Glk de las librería DA que los utilicen y así el programador no debe preocuparse de escribir este código por sí mismo. Así, el programador puede utilizar tantoi Dalubi como Damusix sin tener que escribir un código "fusionado" para inicializar ambas librerías. Es la propia Dainulik la que se encarga de ello.
Para concluir, estoy trabajando en Damensajes, que es una librería tipo Msg1P.h (de Presi), pero que funciona para INFSP6 (y si alguien la adapta, también para el lenguaje natural de Inform7 [porque está preparada para funcionar a nivel de código Inform para Inform7]). Damensajes permite usar 1ra y 2da persona y tiempo presente y pasado en los mensajes por defecto de la librería. De momento, todo esto es controlado por un par de constantes. Pero también tengo planeado una futura una version modificada que permite cambiar los mensajes en tiempo de juego a través de sencillas rutinas de control de persona y de tiempo (evidentemente, esto incrementará el tamaño del juego).
Tal vez haya una par de trabajos que haya olvidado poner por aquí... pero bueno, puedes escribirme, mapache, si quieres compartir códigos conmigo. Te lo agradeceré mucho. Como lo he dicho, soy apenas un novato... (no llevo usando Inform a full hace más de tres meses) y pues, ustedes han logrado grandes cosas y quisiera beneficiarme de sus experiencias...
En fin. Gracias por preguntar.
Y sí, yo siempre libreraré todas mis librerías. De momentos, todas tienen licencia GNU-LGPL. Quiero que el resto también se beneficie de lo que yo pueda aportar.
Bueno, eso.
Eliuk Blau
eliukblau EN gmail PUNTO com