sábado 27 de diciembre de 2008

D'oh!

Sí, la palabrilla mágica de Homero Simpson que significa que algo anda mal.
Pues en mi lanzamiento apresurado de 0.0.2 de Mapero no me aseguré de un paso "trivial"... como verificar que tuviera todas las características. estoy trabajando en la versión 0.0.2.5, que es la que incluye el navegador por habitaciones de los mapas.

Si se preguntan por qué versión 0.0.2.5 y no 0.0.2 real, es porque también estoy haciendo una modificación no planificada a main.py para mejorar el flujo del programa.

lunes 22 de diciembre de 2008

pyStats 0.2

Ahora guarda todo en el mismo archivo, con fecha/hora y archivo del que se sacó la información; Vamos camino ya hacia las estadísticas de evolución!

Los cambios en realidad son muy pocos, sólo detalles en cuanto al código. Sin embargo, la utilidad de la forma en que se guarda la información es muchísimo mayor.

Los inconvenientes más grandes que tiene pyStats es que si se movió un archivo de un directorio a otro lo toma como un archivo diferente, por lo cuál es preferible que se corra la copia de pyStats 'localmente' con los archivos a los que les sacaremos las estadísticas.

El leedme.txt es el mismo, así que sólo subo el ".py"

Mapero Versión 0.0.2 Liberada!

Esta vez con un diseño más robusto que el 0.0.1, permitirá ser ampliado con mayor facilidad, pudiendo producir el 0.0.3 en menor tiempo (menos distancia entre lanzamientos!)

Permite, mediante el uso de main.py, exportar mapas ".dum" a formato comprensible ".txt"

Este lanzamiento incluye el eterno mapa1.dum, esta vez explotando las características de la especificación .dum 0.1.2 y ahora también el mapa1.txt, una transformación a mapa legible, que sirve para saber qué esperar al exportar de .dum a .txt

Subo pronto, que me tengo que ir!! pero está listo.

miércoles 17 de diciembre de 2008

Primer Lanzamiento!!

Eo, ¿no se han dado cuenta que es mi primer lanzamiento de software? Siéntanse felices conmigo!!

Y liberé el código fuente!! pude haber elegido no hacerlo, y liberarlo con base en ".pyc"

Para los que piensen que no se puede, encontré la manera de hacerlo!!

Sencillamente:

1) python aplicacion.py

(Genera .pyc)

luego borrar el contenido de la aplicacion.py (dejar en blanco)
y en mi liena de comandos...
usar touch !!! jajajaja :D ponerlos como modificados al mismo tiempo. Y así se pueden distribuir scripts de python sin código fuente! lo malo es que cuando la gente intente abrir el archivo .py desde cualquier cosa (como un editor de texto) la aplicación deja de funcionar automáticamente.

pyStats 0.1

Bien, después de tantito sin postear, he hecho el analizador de scripts python y propuesto metas hasta una versión 0.5; aún no se prevé el soporte de comentarios multilínea (si alguien quiere hacer eso, favor de mandarme un módulo que pueda contar todos los comentarios multilínea, formato de python, que hay en un archivo. Sería muy útil.)

No he revisado si hay un script allá afuera que hace esto. Favor, no me maten la ilusión señalandome eso.

Veré donde puedo subir y compartir el archivo... comprimido en zip y en .tar.gz

Para bajar los archivos, vayan al directorio "Lanzamientos"> "pyStats 0.1" de mi carpetea de 4shared.com (el widget que está a mano derecha)

El release son dos archivos: el código fuente y el leedme.txt

Lean el "leedme.txt", por favor, eh!

miércoles 10 de diciembre de 2008

Más Avances hacia 0.0.2

Actualmente se cumplen con los requisitos tachados en el post anterior. Sólo falta ponerlo en una serie de bucles decentes que se puedan llamar, al menos vagamente aplicación.

Seguimos con un sólo archivo de código fuente, ahora con 47 líneas contando los comentarios, que engloban 4 funciones (todas útiles esta vez).

Como pasatiempo, ya que me falta poco para terminar, voy a hacer una utilería que me genere un reporte de archivos de código fuente, líneas que tiene, cuantas funciones, cuantas están en blanco, cuantas en comentarios y cuantas son netamente código (incluyendo las definiciones de función) que funcionará con python...

martes 9 de diciembre de 2008

Avances hacia versión 0.0.2 de Mapero!

Aplicación para generar mapa ASCII a partir de archivo que siga el estándar ".dum"
Se convirtió en:
  • Función con el algoritmo de búsqueda de cuartos línea por línea
  • Función que busca una línea en un cuarto y la devuelve en un string
  • Función que guarda un string en un archivo
  • Ponerlo todo dentro de un bucle que tenga sentido
Aplicación para mostrar un cuarto cualquiera en pantalla
Se convirtió en:
  • Función que tome el cuarto, lo mete en un string y lo devuelve
  • Función que imprime un string en pantalla (INNECESARIA)
  • Ponerlo todo dentro de un bucle que tenga sentido
Así que 3/7 hechos (al menos en teoría). Indudablemente lo más arduo será ponerlo todo dentro de un bucle que tenga sentido... y posiblemente meter esos dos bucles en un tercer bucle que tenga sentido y los englobe a ambos, es decir, hacer el Mapero 0.0.2 per se!! : )

Código fuente y toda la documentación hasta ahora disponible (la documentación, excepto por algunas notas mentales, está aquí... quien quiera el código fuente, me lo pide o espera a que el 0.0.2 sea oficial...)

¿Dónde estamos ahora en el árbol de Desarrollo?
0.0.1.3/8 >> hay que contar el bucle final!!
---
Reporte de tamaño de Mapero
Un archivo de código fuente, con un total de 40 líneas, 94 palabras y 921 caracteres que engloban 3 funciones.
Un archivo de Mapa, 40 líneas, 52 palabras y 232 caracteres que engloban 4 cuartos.
---
:P
:)

FORMATO ".dum" Definición versión 0.1.1.1

Publicaré en un documento de texto... hay que verlo con letra de espacio único como "courier", "courier new" o "monospace 10"

Después de enojarme porque esto no traduce adecuadamente los tags para cambio de letra (o que por mi poco conocimiento de HTML creí que debía funcionar y no lo hacía) y justo antes de cambiar todo lo que dijera Trebuchet MS por Courier New en el Diseño de la página, hice que el texto de las entradas estuviera en courier new.

Sin más preámbulos, la definicón del formato ".dum" Versión 0.1.1

FORMATO ".dum" Definición versión 0.1.1

Todo archivo .dum inicia con:
###
###
Donde el primer número son cuántas columnas tiene la matriz de habitaciones y el segundo cuantas filas. Luego, el archivo tiene entradas con el formato:

/***
#
#
m
+-+
+-+
w

Donde /*** es el delimitador de definición de mapa, el primer número es la columna y el segundo la fila que ocupa la habitación en la matriz.
Todo lo que está entre la "m" y la "w" es parte del mapa. El significado de los carcteres es definido por el usuario (e interpretado por su software).

Las habitaciones vacías (inexistentes) se representan así:

/***
#
#
m
w

Cambios:
Revisión (0.1.1.1)
  • Se añadió la explicación de que entre la línea "w\n" y el próximo "/***", todo será considerado comentarios, y por tanto ignorados por el Generador de Mapa Comprensible y Pantallero (nombre oficial del módulo que muestra en pantalla las habitaciones, que van como parte de Mapero versión 0.0.2)
Versión 0.1.1
  • Se añadió la definición para habitaciones vacías.
  • Se definió el uso de las primeras dos líneas para definir el tamaño del mapa.
Versión 0.1
  • Se definió delimitador para una definición de habitación y otra
  • Se definió lugar para coordenadas de habitación
  • Se definieron los delimitadores de habitación (caracteres "de" la habitación).

Mi aplicación tiene nombre!

El motor que estoy haciendo acaba de ser bautizado...
Mapero!
Y todo lo relacionado con el software tiene ese tag.
Ahora viene la versión 0.0.2!
No pregunten mucho, que es muy poco para mostrar (no ven que es una sub-sub-versión?) es una versión para optimización que rompe un poco con el código anterior, pero más importante aún, está diseñada para ponerme en camino a algo "de verdad".

Metas para versión 0.0.2
  • Aplicación para generar mapa ASCII a partir de archivo que siga el estándar ".dum" (aun no lo he publicado); estará en archivo .txt, de manera que sólo podrá visualizarse bien en las condiciones óptimas (ancho de pantalla suficiente, por ejemplo).
  • Aplicación para mostrar un mapa cualquiera en pantalla, habitación por habitación, pidiendo las habitaciones por coordenadas. Visibilidad limitada por condiciones óptimas.
Todo esto será en modo de consola hasta nuevo aviso. Especificaciones de la 0.0.3 a ser definidas después... ahora sólo programaré la versión 0.0.2 y seré feliz.

lunes 8 de diciembre de 2008

Diseña Mundos

Bien, hasta ahora he hablado un poco del Motor que estoy haciendo. Me he quedado trabado sin saber qué código tirar. Eso pasa cuando uno está desorganizado con la idea. Hasta ahora tengo un poquito de código, nada impresionante. Para hacer el motor voy por partes:

Diseña Mundos
  1. Asistente de Creación/Edición de Mapas (Muros y puertas).
  2. Generación del mapa con arte ASCII (mapa usable por humano) a partir de los archivos ".dum" que usa el diseñador.
  3. Navegación de Mapas (Poder ir de cuarto en cuarto, sólo "la cámara"). Para ver el "look and feel" del mapa.
  4. Integración de Objetos Genéricos al mapa (mesas, sillas, escobas...? todo.)
  5. Integración de Items al Mapa (van en archivo aparte).
  6. Integración de Enemigos
Eso es por ahora el Diseña Mundos Versión 1.0

Para el 2.0 ya hay algunas tareas pedidas:
  1. Al menos un SpriteSet (Aún no sé cómo se hacen o usan, pero en su momento vendrá!!)
  2. Generación de mapa con los Sprites, termina en archivo .gif o .jpg (el equivalente al de arte ASCII)
Es sólo diseño. No incluye ni una tira de código para el juego. La meta es facilitar la generación de contenido.

Sugerencias, comentarios, bienvenidos mientras tanto a mi dirección axel.rivas (arroba) gmail (punto) com

Todo por hoy... ya estoy organizado sobre qué tengo que hacer :P Ahora descanso tantito y luego (quizás mañana) programo. Wenas!

Zim - a Desktop Wiki

Para cada fin, una herramienta.

He mencionado anteriormente mi proyecto literario, Nivreial. Bien, aunque instalar el cvs fue divertido, no es todo lo necesario para mi proyecto.
Una herramienta útil para cualquier editor es poder tener accesibles las notas que hace cerca del contenido, así como algunos significados (para nosotros que inventamos palabras es útil) y especificaciones sobre lo que se escribe, pero que no tiene sentido que estén presentes en el documento que se escribe, pero que le dan forma al momento de escribirlo.
Importancia especial tiene en mi proyecto, pues estoy desarrollando varias ideas que definen cómo marcharán las historias, el comportamiento de los seres vivos y cuál es la explicación de la historia de la historia... en fin, que todo se hace complejo cuando uno tiene un metanarrador.

El software que estoy usando es el zim. Esa pieza permite tener "Cuadernos" computarizados manejados a estilo wiki. Ofrece también Control de Versión, por lo que suple mi necesidad del cvs en cuanto a los proyectos literarios.
Entre otras cosas, permite la exportación del Cuaderno a html para fácil publicación. La facilidad para enlazar información es una bendición especialmente en los estados iniciales del desarrollo de la narrativa, cuando tenemos editores o críticos que necesitan saber el significado de algún elemento que aún no ha sido definido en la narrativa; entonces se enlaza a la página con la definición tantas veces como sea necesario.
Tiene también otra característica que tengo que resaltar: estructura de árbol para todas las páginas. Así puede uno tener fácil navegación y llevar varios proyectos relacionados entre sí con mejor comprensión y seguimiento.

Sitio web (enlazado a través de la palabra zim). Por cierto, el sitio web fue escrito con zim... lindo ejemplo de la utilidad que tiene el software, eh?

Hay muchas más características que tiene. Pueden verlo aquí. Está en inglés, por cierto, el sitio completo. El software puede conseguirse en español.

domingo 7 de diciembre de 2008

El Camino del Mochador

Bien, como con todo lo que se planifica en la vida, existe la posibilidad de ir por la via directa o la via panoramica a nuestro destino.

Bien, estoy tomando la vista panorámica hacia el programa de documentación de código fuente. Mientras tanto escribí un artículo sobre el zim que pasaré al blog tan pronto como pueda, y comencé la versión 0.1 del motor de juegos RPG que estoy haciendo (chicos de yohackeo, recuerdan eso?).
Está en python, y ya tiene:
  • Archivos de mapa definidos (formato ".dum" Versión 0.1, publico la documentación del formato más adelante)
  • Impresión de cuartos del mapa en pantalla
  • Lectura de los mapas desde archivos
A quien le interese ver el código (que está algo desordenado por ahora) me deja saber...
Voy a comenzar a escribir comentarios separados del código, por amor a la claridad, utilizando el formato que le daré a los comentarios del programa para documentar código fuente.
Estoy buscando la manera de poner en línea el código fuente. La versión del Motor es 0.0.1 en estos momentos...

Seguiré trabajando en esto y publicando... cuando llegue el momento de trabajar en el programa de documentar código les aviso, mientras pondré a prueba la funcionalidad del formato propuesto para el archivo de documentación ".dyc"