Paso de C++ a Java.

A partir de esta compilación, Aetheria ya no es un proyecto en C++, sino en Java.

¿Por qué Java en lugar de C++?

Porque, si bien C++ es mejor que Java para algunas cosas, cada lenguaje tiene sus usos y sus abusos, y me ha parecido que Java es más apropiado para este caso. Al igual que C++, es un lenguaje orientado a objetos, cosa imprescindible para llevar a cabo este proyecto que he enfocado desde un principio desde el punto de vista de la orientación a objetos. Pero Java es más portable que C++, así que a partir de ahora no tendré que tener cuidado de incluir alguna función que funcione en Windows y no en Linux, o viceversa. Además, en Java existen más herramientas estándar que en C++ para algunas cosas que me serán útiles en este proyecto concreto (recordemos que sólo utilizo los estándares para que el juego sea portable), mientras que las cosas que faltan son prescindibles. Por otro lado, Java es mucho más lento que C o C++ al ser interpretado; pero esto se puede corregir bastante gracias a los compiladores JIT (Just In Time), especialmente en programas que, como éste, ejecutan muchas veces el mismo método, que puede estar compilado en memoria. Las pruebas que he hecho al respecto han sido satisfactorias.

Y, en ese caso, ¿por qué no haber empezado ya con Java?

Porque cuando empecé con esto no sabía Java. :)

Características de la Compilación 7.

PORTADAS todas las funciones de la compilación 6 a Java. Ha aparecido alguna clase más (ver jerarquía de clases)

MODIFICADO el formato de ficheros de habitación, aunque sólo en algunos detalles (de hecho sigue siendo compatible con el anterior, aunque eso poco importa). Anteriormente, el lector de habitaciones (y también de objetos y otros ficheros de entidad) se guiaba por el número (implícito) de línea, a partir de ahora se guía por números que aparecen explícitamente al principio de cada línea. Así se evita la molestia de que muchas líneas apareciesen vacías en entidades que no las necesitaban.

CREADA una interfaz de texto con el AWT (Abstract Window Toolkit) que puede resultar más agradable que la consola, que de todos modos puede seguir usándose. Ésta no será, de todos modos, la interfaz definitiva (el AWT no es lo mejor que hay para crearlas) sino sólo para las pruebas.

AÑADIDO el comando "coger" para items (objetos).

Jerarquía de clases.

He aquí la jerarquía de las clases que tengo, de momento, tal como la genera JavaDoc:

Class Hierarchy

Interface Hierarchy

Muestra de la salida.

He aquí lo que aparece en la ventana al ejecutar Aetheria:

Interfaz AWT cargada.
Poniendo en marcha la Máquina de Estados de Aetheria...

Obteniendo información de mundo.
Cargado mundo AetherWorld.

Mundo: AetherWorld
Directorio: .\AetherWorld\
Habitaciones: 1000
Objetos: 1000 (nota: estos números son unos máximos a la hora de cargar, no el número real de objetos que tengo de momento)
Inicializando habitaciones...
Paramos de cargar habitaciones en 10. (este es el último fichero de habitación, ve que no hay más y para)

Mundo cargado.

[COMANDO] mirar
00000000 Plaza Vieja de Aetheria (la información que aparece en esta línea no aparecerá en el juego, sólo para las pruebas)
Te encuentras en una impresionante plaza pavimentada con enormes piedras. Una placa en una esquina informa de que se trata de la Plaza Vieja.
Un simple vistazo basta para comprobar que fue, sin duda, el centro neurálgico de la ciudad: una imponente catedral con dos estilizadas torres de piedra se alza al Oeste, su fachada verdosa debido al musgo, pero excelentemente conservada a pesar del paso de los siglos. En frente, al Este, hay edificio de estilo similar, funcional pero solemne, sobre cuya puerta se lee en grandes letras "Ayuntamiento", dividido en dos por un gran arco que desemboca en otra plaza. Al Sur hay una construcción, algo más modesta, aunque también antigua; un cartel de madera indica que se trata de "La taberna de Kelis". Hacia el Norte arranca una ancha calle adoquinada, mientras que un callejón que bordea la catedral conduce al Sudoeste. No hay en la plaza ningún obstáculo para pasear y admirar los monumentos.
La luz del sol se refleja en las ventanas y vidrieras de la gran catedral.
Hay una piedra pequeña aquí. (objeto de prueba)

[COMANDO] mirar la catedral
Es preciosa. (lógicamente, estas descripciones hay que trabajarlas más :))


[COMANDO] mirar la piedra (objeto de prueba)
Es una pequeña piedra de forma irregular, sin ningún valor. Probablemente se trate de granito.


[COMANDO] coger la piedra
Coges la Piedra pequeña.

Es una pequeña piedra de forma irregular, sin ningún valor. Probablemente se trate de granito.


[COMANDO] ir al este
Te diriges hacia el arco del Ayuntamiento.
00000004 El Arco del Ayuntamiento
Estás en una amplia bóveda de medio punto que cruza de Oeste a Este el edificio del Ayuntamiento, conectando dos plazas.
La piedra granítica que forma el techo de la bóveda está pintada mostrando un colorido mapa del reino de Aetheria. Hay bancos, también de piedra, a ambos lados, adecuados para los días soleados. Dos guardias de la ciudad se encuentran permanentemente instalados en las dos salidas de la bóveda, abarcando con la vista las dos grandes plazas que separa, al Oeste y al Este.
La piedra de la bóveda no solo da sombra sino que también contrarresta algo el calor del día, haciendo que resulte agradable estar aquí.


Vade retro