Wednesday, January 23, 2019

Mientras tanto, en Plutón...

Por petición popular -en serio- he empezado a trabajar en la segunda parte del remake de La Aventura Original. A lo largo de todo el proceso escribiré aquí comentarios que considere interesantes acerca del desarrollo del juego y de las mejoras que será necesario realizar en Enki, el motor de juego que también usé para Pluto Crash.

Si una pila está dentro de una linterna ¿Está en tu inventario?

Aun siendo un motor bastante competente, Enki tiene algunas limitaciones que hasta ahora había ignorado por el bien de mi salud mental y de la planificación temporal de Pluto Crash. Una de estas limitaciones tiene mucho que ver con uno de los puzzles de La Aventura Original.

Como ya sabrá cualquiera que haya jugado a La Aventura Original original -vaya lío- la pila de tu linterna tiene los días contados y necesitarás recargarla si no quieres partirte la crisma mientras te paseas por la Gran Caverna. Para ello debes encontrar la máquina cargadora de pilas y recargar la pila de tu linterna, para lo que previamente debes sacar la pila de la linterna.

Pues bien, tal y como está programado Enki esto no es posible. Al meter la pila en la linterna la misma desaparece del inventario del jugador y es enviada a una especie de limbo de modo que el jugador no puede interactuar con ella, con lo que no podría sacarla de la linterna porque al parsear la instrucción el intérprete vería que el objeto "pila" ya no existe.

Para solucionar esto me he sacado de la manga lo que llamo "objetos implícitos". Éstos objetos están en el inventario del jugador pero no aparecen en él y no pueden ser el objeto activo de las acciones normales del jugador, sólo de aquellas acciones que estén específicamente indicadas en la definición del objeto.
Así, tras meter la pila en la linterna el jugador podrá sacarla de la misma pero, por ejemplo, no podrá examinarla o dejarla en el suelo sin sacarla antes.

Esto abre la puerta también a una mejor gestión de lo que se podrían considerar objetos equipables. En Pluto Crash, por ejemplo, al coger el traje espacial en la sala de descompresión se indica al personaje que se lo ha puesto y a partir de este momento se considera que lo lleva siempre de modo que puede moverse por el exterior de la base.
Internamente lo que realmente ha ocurrido es que el objeto "Traje espacial" ha sido enviado al limbo de objetos que no están en ninguna parte y se ha activado un flag que indica que el personaje lo lleva puesto, lo que es perfectamente válido para las necesidades del juego pero impide que el jugador pueda quitarse el traje.

¿Elfito? ¿Eres tú, Elfito?


Debido a las limitaciones que tuve que imponerme al desarrollar el remake de La Aventura Original, el personaje conocido como Elfito tuvo que desaparecer. El motor del juego había sido desarrollado ad hoc para lo que a fin de cuentas era el trabajo para un módulo del máster que estaba haciendo en aquel momento y simplemente no era factible desarrollar un sistema que te permitiese conversar con él, por no hablar de que se supone que el cabroncete es medio invisible y había que controlar si la linterna estaba encendida o apagada para poder interactuar con él.

Todo eso ha sido resuelto en el motor actual, pero como no quería modificar el guion de mi remake he decidido que Elfito aparecerá pero será dentro de la Gran Caverna, en un giro argumental que espero sea del gusto de todos los fans del original.

No comments: