![]() |
|
28/02/2002
- Bueno, ¡actualizo al fin!. Perdonad a todos los que hayáis podido estar pendiente de la página. En la actualidad el motor ya es capaz de cargar, guardar y pausarse. Las operaciones de cargar y guardar ya disponen de sus propios interfaces, asi que en lo que respecta a estas operaciones, si no hay bugs, esta todo implementado. Lógicamente, falta guardar temas de lo que será el futuro script (únicamente las que puedan ser variables globales) pero como estoy pendiente de los tutoriales que ya sabéis y estos no han actualizado, he tenido que seguir adelante para no estancarme con el motor. Espero que haya alguna actualización pronto en la página donde faltan esos dos tutoriales que necesito y si no, pues a buscarse la vida por otro lado. De todas formas, todo aquel que tenga información sobre la construcción de una máquina virtual tipo Java, en plan sencillo, y quiera echarme una mano que me lo comunique, por favor. - Otras de las novedades principales es que ya he comenzado la codificación del CrisolBuilder, de hecho, fue lo primero que toque cuando actualicé por última vez. Cuando me refiero a CrisolBuilder, me refiero a una actualidad que transforma esos archivos de texto que he publicado junto a la última beta, los archivos .cbt (que contenían las especificaciones con las que indicar los datos que debía de manejar el motor, qué gráficos utilizar, animaciones, etc), en archivos binarios con extensión .cbb. Los archivos binarios tienen la principal ventaja de que son tremendamente más rápidos de procesar (ahora el motor carga las áreas y animaciones muchísimo más rápido) y que antes han pasado por un filtro (la propia utilidad CrisolBuilder) que localiza posibles errores que puediera existir en éstos. De CrisolBuilder me queda ampliarlo al trabajo con los interfaces, pues por ahora solo transforma los archivos de de animacion, entidades y areas (los más importantes) pero no los de interfaz (los que definen cómo deben de mostrarse los menús de opciones). Espero que a primeros de Marzo vaya publicando la documentación del CrisolBuilder, con lo que la siguiente beta que se publique ya podra ser modificada utilizando un manual que diga al usuario qué es lo que está haciendo. - Y por lo demás pues... el motor ya está prácticamente acabado. Tengo que tantearle un poco más a ver qué tal se sigue comportando pero en mi opinión ya estaría, exceptuando la programación de la máquina virtual para procesar los scripts (y esto es vital para presentar el proyecto), en visos de poder ser presentado como proyecto fin de carrera. Espero no hallar muchos obstáculos para construir la máquina virtual y como siempre, agradeceré cualquier tipo de ayuda al respecto.
3/02/2002
- A día de hoy ya tengo un 95% del compilador hecho. Me falta un módulo de ensamblaje para pasar el código intermedio a formato binario y realizar unas pocas operaciones más para el cálculo de direcciones internas, de cara al trabajo con la máquina virtual (la cual también me queda por construir). Debo de agradecer el haber podido crear tan relativamente rápido el compilador (sin contar el aprendizaje externo de Flex y Bison) a los tutoriales de Kasper Fauerby. Esta persona está construyendo además un remake del Ultima I desarrollando un motor 3D ciertamente impresionante. Lamentablemente, me faltan dos tutoriales para poder no depender de ningún tipo de fuente de información a la hora de completar el compilador y construir la máquina virtual. Me he puesto en contacto con Kasper para consultarle el tiempo que puede llevarle tenerlos listos y parece que pudiera ser la con suficiente antelacion. ¡Ojalá!. Si queréis consultar los tutoriales podéis hallarlos en http://www.peroxide.dk/tut.htm - Mientras llega y no el nuevo material teórico, subo una nueva versión del documento de CrisolScript. En esta última versión hay dos novedades principales. Por un lado la supresión de la sentencia de control foreach debido a que entrañaría bastantes dificultades su implementación usando código intermedio, pues hay dependencias con iteradores internos en el motor y no lo he visto nada claro. En su lugar, usaré la localización de ítems a través de métodos así que no se restará ni un ápice a las posibilidades del script. Por otro lado, he insertado una serie de constantes globales para que se haga todo mucho más asequible a la hora de programar. Dichas constantes son las típicas true, false y null y otras constantes para indicar direcciones, alineaciones en combate y los slots principales. Añadir sobre las constantes que será muy interesante que me diera tiempo a construir una utilidad que pasara todos aquellos identificadores del archivo de reglas a nombres de constantes, de tal forma que con un sencillo copy - paste se pudieran insertar en el archivo de definiciones globales, haciendo el trabajo con el script aún más asequible. - Sobre el uso de begin / end frente a { / } decir que, después de preguntar a bastante gente sin ningún tipo de conocimiento, el formato Pascal gana por goleada así que aunque personalmente me guste poco esa sintaxis (y lo digo por experiencia de haber trabajado bastante con Pascal) será la que use CrisolScript pues, después de todo, se trata de hacer un lenguaje lo más sencillo posible. - En la sección de descarga podéis encontrar la última versión del documento pero también el compilador. En esta ocasión ya sí que es mucho más que un simple analizador léxico y sintático y es capaz de generar código intermedio que los programadores podrán ver si tienen curiosidad. Si ponéis el nombre del ejecutable (CSCompiler) se os mostrará un mensaje con las opciones que tiene. En el archivo zip he incluido el mismo ejemplo que use en la versión 0.3. - Mientras llega el nuevo material para seguir avanzado y terminando el compilador, me pondré a finalizar algunos aspectos internos del motor pendientes. El principal va a ser el relativo al trabajo con niveles y la opción de cargar y guardar partidas. Para esto último también deberé de tener presente el uso de las variables globales del script. |