- Sigo trabajando en el motor, actualmente he dejado un poquito de lado
la documentación para poder centrarme, esta semana, en terminar de
implementar la lista de cosas pendientes que tengo. Por desgracia, esto
de programar es a veces como un dominó; cuando crees que tienes una
lista de tareas pequeña, por cada nuevo aspecto que implementas te das cuenta de
que han aparecido dos o tres elementos "extra" (¡menudo premio!). De todas formas,
que no cunda el pánico, el asunto está completamente controlado.
De lo que he implementado hay varios temas relacionados con nuevas
funciones para CrisolScript, mejoras de aspectos del código ya existente,
solución de errores que podrían aparecer al no tenerse en cuenta
ciertas condiciones, más control en la propagación de sucesos en el motor (hoy por ejemplo,
me dí cuenta que si desde CrisolScript se equipaba un ítem en una de las
manos, la interfaz principal nunca se cambiaría), etc.
También hay un buen puñado de aspectos que probablemente no implemente
nunca en la versión presentable como proyecto fin de carrera, ya
que son relativos a añadidos y no al cierre de lo que hay actualmente.
- El aspecto que me tocará implementar el día de mañana va a ser muy
importante, pues se centra en la creación y destrucción de entidades
de forma dinámica desde CrisolScript. Este tema no lo había
contemplado en los diseños preliminares y, por tonto que parezca, no me
he dado cuenta hasta hace poco menos que unas semanas. La posibilidad de
destruir una entidad y crear otras nuevas es algo muy importante pero
también puede suponer graves efectos laterales, principalmente en el
tema de la destrucción de entidades (por ejemplo, destruir una
criatura desde CrisolScript mientras estamos intercambiando ítems
con ella; si no se realizan notificaciones para que la ventana de
interfaz asociada al intercambio de ítems se cierre, el motor se
colgará pues estará trabajando con una instancia que fue
destruida). Desde el punto de vista de la creación dinámica es todo mucho
más sencillo pues, como por diseño hace falta definir las entidades en
archivos de perfil, tan sólo hay que usar funciones que tomen dichos
archivos de perfil, junto con unos poquísimos parámetros que los concreten,
y ya tendremos una entidad localizada en el área actual y creada en
tiempo de ejecución. Añadir que para las criaturas voy a permitir que se
creen de dos tipos: las que se destruyan cuando se abandone el área (ideal
para enemigos) y las que no se destruyan aún cuando se abandone el área (que
son las que únicamente se pueden crear en el archivo de diseño de un área).
- La fecha de publicación de la nueva beta se sigue manteniendo para
los alrededores del 15. Quizás fuera mejor postergarlo pero ya me he comprometido y
sólo se trata de mostrar el motor para que veáis el sistema script
integrado, así que aunque haya cosas que queden por acabar y bugs por
localizar (y que probablemente localicéis al probar la beta), pues publicaré
algo muy parecido a la demo actual que podéis
descargar de la página pero con lógica (que el jugador pueda manipular y usar
cosas, que sucedan eventos, que pueda hablar, etc).
4/06/02
- Bueno, comenzamos el mes de Junio. Tal y como comenté en la última ocasión,
espero que durante la primera quincena pueda tener una nueva beta del
motor con el objetivo de que se pueda ver el sistema script en
funcionamiento. Ahora mismo me quedan unos cuantos flecos por terminar
y pulir, además de tener que realizar chequeos importantes en cuanto al
funcionamiento correcto del motor (el que no haya bugs, que por ahora
tengo apuntado un par de ellos "extraños"). También, durante esta primera
quincena de Junio, deberé de visitar a mi director de proyecto para que
eche un vistazo a lo que llevo hecho de la documentación.
- Tal y como he podido leer hoy en el foro (gracias RePAnd), he subido de nuevo el documento
PDF del motor debido a que había hojas que no se veían correctamente (creo que debido a
no comprimir en modo normal con Rar). Espero que en esta ocasión no haya problemas.