24/05/02
- Actualizo para subir una nueva versión del documento del proyecto, es la 2.0
(como siempre, podéis localizar todo en la sección de descarga. He tenido
que dividir el archivo en 3 partes pues, pese a trabajar en PDF, el máximo que he conseguido comprimir ha sido
de 2.99 megas y en Lycos no me dejan subir archivos de tamaño superior a 2).
En esta nueva versión ya contemplo todos los apartados de diseño (sobre Crisol y las
herramientas CrisolBuilder, CrisolScript y CPAKTool). Me queda pendiente
los métodos utilizandos por las clases involucradas en el subsistema de
interfaz, pero el resto ya tiene contenido. Eso sí, no está revisada la
redacción y hasta que no imprima todo el documento y me lo lea pausadamente,
no podré realizar tal revisión. Además de la redacción, hay apartados aún
por añadir (apartados pequeños) y también es posible que se tengan que
revisar diagramas y añadir casos de uso.
- El documento anterior, así como los que ya había, los he subido en
formato PDF (gracias Rafa por la sugerencia), lo que alivia bastante
el tamaño de los ficheros y los hace, sobre todo, mucho más
distribuibles. La única pega es que el documento del proyecto no sale
con las imagenes de los diagramas UML muy legibles. Curiosamente, a la
hora de imprimir todo queda bien. En fin, supongo que
será hasta dar con el parámetro adecuado a la hora de fabricar el archivo
PDF o, incluso, puede que se trate que tengo mal configurado el lector.
- La publicación de la siguiente beta, que iba a salir a finales de este mes, la voy
a aplazar hasta el 15 de Junio. Espero que pueda publicarla antes, pero
el no tocar el código durante este mes me obliga a tener que dar un
repaso sobre lo que ya tenía (El código fuente de Crisol tiene ahora muchas líneas) y terminar
de cerrar ciertas cosas del script que, aunque me podría dar tiempo antes del 30 de este mes, no evitaría
el quedarme sin tiempo de construir un "mini juego" que
demuestre el funcionamiento de CrisolScript (tengo
pensado hacer el típico y tonto ejemplo de encontrar una llave para abrir
el baúl que sale en la demo actual). Además, Manuel Moreno y Marcelo
Galán, se hallan terminando nuevas pantallas y elementos de interfaz
para la siguiente versión, y les va a ser imposible tenerlas para el día
30. Así pues, hemos decidido darnos un poquito de tiempo para esa fecha y
no hacer las cosas a la loco, que luego siempre hay problemas (aunque
sea una beta aparentemente poco relevante como esta).
20/05/02
- Subo la versión 0.1 del documento del proyecto; la podéis localizar
en la sección de descarga. Aún no está
finalizado pues falta, en la etapa de diseño, comentar el subsistema
de interfaz del motor y luego analizar las herramientas CrisolBuilder y
el compilador de CrisolScript. De todas formas, ya hay una considerable cantidad
de información (que iré mejorando y ampliando) que resultará valiosa para los
interesados en el código fuente de Crisol.
En la siguiente versión del documento estoy pensando en reducir todo el "tonelaje"
de métodos comentados por clase y ceñirme, principalmente, a los que tengan algún
tipo de relevancia (de todas formas, actualmente comento sólo los públicos de cada clase). También
quedarían por revisar diagramas UML existentes, añadir casos de uso y
escenarios, si fuera preciso, y ampliar y puntualizar los comentarios teóricos
de cada subsistema y clase.
Aparte de todo lo comentado con anterioridad, quedaría por añadir un apartado
sobre implementación y otro sobre pruebas, además del de bibliografía (la cual
también quedaría pendiente de ser citada en las explicaciones). Los documentos que he publicado
relativos al uso de CrisolBuilder, el compilador de CrisolScript y
CPAKTool también integrarán este documento, pero en calidad de anexos. Aún así, todo lo dicho
está supeditado a la revisión de mi director de proyecto, que supongo me
mandará modificar y/o añadir un número importante de aspectos.
- A finales de esta semana espero tener muy avanzado todo lo que me queda pendiente en
el documento actual (salvo los apartados de de implementación, pruebas y
bibliografía) con el fin de poder mostrarselo a mi director de proyecto y
disponer de tiempo para publiar una nueva beta de Crisol con el sistema
Script funcionando (aunque voy a andar muy justo de tiempo para esto último). ¡Además
necesito tener el tema de la documentación controlado ya que se me echan los meses
encima y aún hay unos cuantos aspectos pendientes de ser finalizados en el
engine!.
13/05/02
- Pocas novedades. Sigo con la documentación. Actualmente ya he realizado
la "primera vuelta" en el apartado de diseño del documento (eso sí, estoy
con Crisol, no con las utilidades). En este primer ciclo ya
tengo la explicación general de funcionamiento de los diferentes subsistemas
junto con sus diagramas UML. Ahora estoy trabajando en algo que dije en la
otra actualización que no haría: la documentación de las clases. Para ello, estoy documentando todos los métodos
públicos de las diferentes clases que intervienen en Crisol. Esta tarea
es bastante dura, afortunadamente el código del proyecto esta
muy bien documentado y se trabaja sin parones.
Espero que esta semana de un empujón considerable a la documentación y
que, con un poco de suerte, pueda publicar una versión preliminar el próximo
lunes.
- En otro orden de cosas, ya recibí el libro "AI Game Programming Wisdom".
Aún no he podido realizar una lectura seria (aunque más bien debería de decir
repaso, dado el formato del libro basado en artículos) de todas formas,
sí que he echado unos cuantos vistazos al mismo. La obra sigue el mismo
formato que todos los libros "Game Programming Gems", es decir, está basado
en artículos que se acojen a diferentes temas. El libro tiene, desde luego,
una presencia excelente. Cuenta con multitud de articulos y además recoge
todos los de AI que fueron publicados en el segundo volumen de "Game Programming
Gems". Hay un apartado muy importante sobre la problemática de la búsqueda
de caminos pero también se abordan el diseño de arquitecturas de AI para
diferentes tipos de juegos y se hace un abordaje al tema del scripting en
los motores. Siendo justos, los dos artículos destinados a la construcción
de un lenguaje script (hay más artículos sobre script, pero solo dos
destinados en concreto sobre lo que es construir un compilador, el resto
son complementarios para las personas que ya tienen un motor script
funcionando) son muy pequeños, completamente introductorios, y dudo mucho que haya gente que les
pueda sacar partido más que para obtener una idea general. De todas formas,
se necesitaría un libro entero para enseñarte a construir un lenguaje
script más luego su compilador.
Poco más puedo añadir por ahora, eso sí, si para los que estéis
interesados en la AI este libro yo creo que es estupendo.
6/05/02
- A fecha de hoy sigo con el trabajo relativo a la creación de la
documentación necesaria para la presentación del proyecto. Actualmente
me encuentro en la fase de diseño. Como Crisol no es una aplicación
al uso, no he entrado a realizar escenarios ni casos de uso en la
etapa de análisis y he adaptado la práctica totalidad del documento
que hice antes de ponerme a programar Crisol y que actualmente se
halla colgado en la web.
- En la etapa de diseño voy a explicar el funcionamiento de todos y
cada uno de los subsistemas del motor ofreciendo un diagrama UML
simplificado (no voy a entrar a poner ni los métodos ni los atributos
de las clases). Tampoco voy a realizar aquí una explicación a nivel
algorítmico sino que voy a ofrecer la teoría general de funcionamiento
de cada subsistema. Por ahora tengo realizada toda la expliación relativa
al Wrapper de DirectX que tuve que programar para Crisol. Sobre este Wrapper
decir que debería de revisarlo antes de finalizar el proyecto pues el código
fuente puede ser mejorado en algunos aspectos y no es algo que me vaya a llevar
mucho tiempo (el Wrapper de DirectX que programé es bastante pequeño en general).
El caso es que al ser lo primero que realicé, el código del mismo desentona
un poco con el estilo de Crisol y el resto de utilidades.
- Para la creación de los diagramas UML estoy utilizado una herramienta gratuita
muy maja llamada
UMLPad aunque
estuve a punto de decantarme por
Plastic 1.1 Lite. Este último es capaz
de generar código Java a partir de los diagramas UML.
- La documentación del proyecto fin de carrera considerará los manuales de
CrisolBuilder, CPAKTool y CrisolScript como apartados dentro de una gran sección
a la que denominaré "Manual del Diseñador". De todas formas, esto aún lo tendría que
concretar con mi director. Lo que sí está claro, es que para todos aquellos
interesados en el código fuente de Crisol, la publicación de este documento que
estoy haciendo les será muy interesante en lo referido al apartado de Diseño pues
podrán hacerse una idea de cómo funcionará Crisol por dentro. Espero
comenzar a publicar versiones de este documento antes de que acabe el mes al igual
que espero mostrar una nueva beta con el objetivo de que se vea el sistema script
en funcionamiento así como los nuevos gráficos que Manuel Moreno, en interfaz, y Marcelo Galán, en
renders para fondos de pantallas, están realizando.