| Descargas | F.A.Q. | Artículos | Screenshots | Comunidad | Archivo | Foro | English Info | Acerca >

Noticias Octubre 2001


18/10/2001
- Actualizo para comentaros que ya está implementado el interfaz de intercambio de ítems entre el jugador y cualquier tipo de contenedor. Ya sabéis que el motor trata como contenedores a objetos de escenario que lo sean (baules, estaterías o lo que quiera el diseñador que sea un contenedor) y cualquier tipo de criatura. Para los que os estéis preguntándoos si el motor puede trabajar con contenedores dentro de contenedores os diré que no. No puede trabajar con una bolsa que, por ejemplo, está dentro del inventario del jugador ya que los items son los únicos elementos recogibles por este y los ítems no pueden ser contenedores. Os muestro un aspecto del interfaz.

Trabajo con contenedores


El aspecto gráfico de las interfaces no es muy bueno porque está hecho por mí :). Lo más normal es que el diseñador cree un bitmap definido para lo que es el inventario del jugador con el objetivo de resaltarlo sobre la otra ventana de intefaz. Había pensado poner el retrato del jugador pero sería redundante pues este retrato ya se ve en la ventana de interfaz principal.

- Al implementar este interfaz he hecho algunas revisiones en temas de lógica para la seleccion ítems y esto se ha visto reflejado tambien en la interfaz que ya había implementado relacionada a la selección de un ítem para usarlo sobre una entidad concreta. El nuevo aspecto es ahora así:

Trabajo con contenedores


En todos los casos, el area en donde se ven los ítems para ser seleccionables estará representado como una matriz de mxn completamente modificable en todos los interfaces. Así, en el caso de los interfaces de intercambio de ítems entre contenedores uso una matriz de 3x3 para representar el contenedor examinado y una de 4x3 para representar el inventario del jugador mientras que en el caso de la última interfaz, la de seleccionar un ítem para usar, uso de una de 1x4. Otros elementos modificables en las interfaces será el del color de fondo para cuando se selecciona un ítem.

- A partir de mañana me pondré a todo trapo con la revisión de la interfaz del perfil del personaje que, a raiz de esté nuevo código que he construido para la seleccion de ítems, va a quedar modificada. Este nuevo código creo que esta a un 99% de posibilidades sin errores. Digo esto porque es código que trabaja intensamente con iteradores, punteros a elementos y demás y siempre es posible que haya algún caso con error. Aún así, creo haber dado con todos los errores y que dicho código funciona perfectamente. En el caso de la interfaz del perfil de personaje, si recordáis, existían algunos bugs que me comentásteis en el foro el día que saqué la última beta. Con este nuevo código espero de arreglar esos errores y además mejorar el código general de esta interfaz tan importante.

- Por último os recomiendo que os paséis por la web de unos buenos amigos, David Isla y Daniel Isla, que han montado su propio grupo de desarrollo totalmente independiente y con el objetivo de hacer juegos en su tiempo libre gratuitos y divertidos. Podéis encontrar la página de Géminis Studios (aún en fase de construcción) en www.geminisstudios.f2s.com.


15/10/2001
- Actualizo después de diez días en los que la verdad es que han habido avances muy significativos. He reescrito por completo el subsistema de búsqueda de caminos, ahora el personaje no parece medio borracho para ir de un punto a otro y aprovecha las líneas rectas siempre que puede. Si recordáis, en las betas el personaje para avanzar de un tile a otro cuando estos se hallaban en diagonal, siempre elegía el camino que hacia que se moviera en "escalera". Ahora, ese problema ya está arreglado. Al arreglarlo he tirado el código que había y producido otro mucho mejor y que ahorra en recursos.

- Por otro lado, he implementado tres interfaces muy importantes y he reescrito otro que ya estaba implementado pero que no tenía un código muy elegante y fiable. En el primero de los casos, los interfaces implementados son los cuadros de diálogo de los que el usuario dispondrá para mejorar su trabajo con la interacción del usuario. Estos serán los cuadros de diálogos a modo de ventanas para preguntar algo (si / no / cancelar), advertir y los destinados a la selección de opciones y muestra de un archivo de texto. Los destinados a la selección de opciones serán muy importantes de cara a implementar sistemas como la magia. Pensad que la magia estaría modelada como una habilidad, cuando se escoja, por ejemplo, usar la habilidad magia el diseñador desde script lanzaría un cuadro de diálogo con todas las magias que el usuario podrá escoger para usar, asociándolas un identificador. El motor se encargará de esperar por la opción escogida y una vez escogida volver al script y comunicarla al diseñador para que este sepa cuál se escogió y qué operaciones internas debe de realizar. He aquí una captura de cómo puede quedar este cuadro de diálogo. Os lo muestro en el menú principal cuando, lógicamente, aparecería durante el juego (lo he hecho por motivos de rapidez y para solventar el problema de que aún no está implementado el lenguaje script).

Selector de opciones de texto


Otro de los cuadros de diálogos importantes es el de lectura de archivos de texto. Su utilidad radicará en que cuando el personaje controlado por el jugador decida usar un libro, una nota, etc, al lanzarse el evento de tal acción, el diseñador pueda desde el script ordenar al motor que muestre un archivo de texto con el contenido de aquello que el personaje ha decidido usar. Para mostrar el contenido del archivo de texto, el motor lanzará un cuadro de diálogo como el que muestra la captura.

Lector de archivos de texto


Y en ultima intancia, he reescrito por completo el sistema de conversación para aprovecharme de mejoras en codificación, desde el punto de vista de diseño, que introduje en la implementación de los cuadros de diálogo e introducir mejoras estéticas. Por fortuna, sólo me costó la tarde del domingo pasado susistituirlo. Podéis ver en esta captura el aspecto. El personaje que maneja el jugador se llama "Player" para que lo podáis distinguir del hipotético NPC al que se dirige (Frodo. Por cierto, la imagen de Frodo esta sacada de un retrato del juego Arcanum. Sé que no es muy legal hacer esto pero naturalmente la muestro a modo de ejemplo y en ningún caso tengo intención de poner gráficos de otros juegos y/o motores sin permiso expreso):

El interfaz de conversaciones
ha sido reescrito


- Ahora mismo me encuentro metido de lleno en el diseño de lo que será el sistema para el intercambio de objetos entre el jugador y un contenedor. Un contenedor es una entidad que puede transportar objetos, así que ya os podéis imaginar que a esta familia pertenecerán todas las criaturas (pues todas las criaturas poseen un inventario) y aquellos objetos de escenario que sean contenedores. El diseño de este interfaz tiene ciertas complejidades que creo haber salvado en casi su totalidad durante esta mañana de Lunes (complejidades referidas a la sincronización visual de esta interfaz con el futuro lenguaje script) mediante el uso de patrones Observer (como apunte para todos aquellos programadores que lean estas líneas). Por fortuna o por desgracia, el trabajar en esta nueva interfaz me ha revelado que en la destinada a mostrar el inventario del jugador (la primera gran interfaz que hice y que mostré en la última beta) las cosas no están del todo bien implementadas en lo relativo al trabajo con el inventario y con los slots de equipamiento, por lo que en cuanto termine de implementar esta interfaz de trabajo con contendores, tendré que saltar a modificar la del inventario. Una vez hecho esto sólo quedarán las interfaces de cargar, salvar y configurar que dejaré para más adelante. Además de la posible mini interfaz necesaria para combate.

- Ahora mismo el motor esta bastante controlado en cuanto a que sé exactamente lo que me queda. Con esto no quiero decir que una vez que el motor implemente lo que sé que me queda funcione o esté acabado, eso significará "solo" que habrá que pasar a una fase de testeo y depuración para ver que todo funciona correctamente y a una velocidad aceptable. Pero bueno, lo que realmente motiva es conocer que ya uno no se encuentra perdido con este (humilde) monstruito. La próxima actualización supongo que la haré cuando acabe la interfaz de intercambio de datos entre contenedores con alguna captura sobre el mismo. ¡Espero que sea a lo largo de esta semana!.


5/10/2001
- Primera actualización de Octubre (desde luego, es incréible cómo pasa el tiempo). Poca cosa tengo que contar salvo que el motor sigue adelante, por supuesto. A día de hoy ya tengo corregida la forma de carga para todos los interfaces, entidades y área, de tal modo que cierro el tema pendiente comentado en la última actualización. La revisión también ha alcanzado al sistema de transparencias y selección de entidades (para esta última, sigo con la localización a nivel de pixel). En ambos casos, están completamente revisadas, depuradas y preparadas para trabajar con el sistema de alturas.

- Este fin de semana lo voy a emplear para reescribir el sistema de búsqueda de caminos. Sin querer ir demasiado lejos, hay que construir uno que solucione todos los defectos del actual. También tengo que revisar ciertos aspectos referidos al bloqueo de tiles para puertas, pues hay cosas que no funcionan bien. También ha aparecido un bug de esos que te pueden sacar de tus casillas. He decidido pasar de el y dejar su depuración para más adelante. El problema, afortunadamente, está localizado, ahora solo resta saber en qué condiciones se produce pues es de aparición muy irregular (todo indica algún fallo inicializando variables o descoordinación entre objetos).

- Y cierro esta mini actualización. Espero que esta semana estén revisados todos los temas del motor que actualmente se hallan implementados e incluso que esté implementado la forma en la que se cargarán las áreas y demás elementos. El siguiente paso será comenzar a definir el lenguaje script. ¡Buff, que de cosas por hacer madre!.

Regresar