Zorn, novela gráfica

¡Ya está a la venta!

Zorn, liquidador. Es la primera novela gráfica que publicamos mi hermano Mº Jesús Camacho y yo. Escrita por él e ilustrada por mí.

En un viaje hacia un hipotético futuro, ZORN nos transportará a una sociedad aparentemente perfecta pero deshumanizada y desposeída de sus recuerdos, su naturalidad. En ella, Skull un despiadado soldado a sueldo de la compañía liquidadora de recuerdos se topará de bruces con una jugada del destino que le desvelará una vacía y ficticia existencia. Descubrirá entonces que su vida entregada a los intereses de la Inteligencia artificial ha sido minuciosamente diseñada por esta. Atribulado, encontrará sus auténticas raíces y liderará la insurrección que luchará por la restitución de los recuerdos de la verdadera humanidad.

Puedes adquirirla en esta direccion:

http://www.bubok.es/libros/212632/Zorn

Video Demo Surfer Turtle

Acabado el curso de Programación y Diseño de Videojuegos 3D de Evolisnet.com, este es el aspecto actual del videojuego.

Sorpresa que se viene

Atentos porque muy pronto en esta ciudad ocurrirán cosas…

Nuevo concept para CTGames, Hiena del desierto

Este es otro de los personajes que aparecerán en el videojuego de CTGames.

Ayuda contextual

Hace acto de aparición el abuelo de Surfer Turtle que ayudará al personaje durante toda la aventura de forma contextual, es decir, en función del cumplimiento de unos hitos durante el transcurso del nivel la ayuda que aparecerá del abuelo al ser llamado será distinta, el texto que aparecerá será distinto pero en todos los casos tendrá esta pinta.

Esa ayuda aparece pulsando la tecla H, y si pulsamos la tecla C, nos aparecerá el popup con los controles del juego.

Todo esto pretende ser configurable no solo en cuanto al texto que aparece en cada parte del nivel sino también al personaje que aparece podría ser también modificable.

Pausa de juego

Algo necesario y que llevo tiempo queriendo meter es una tecla para pausar el juego durante el Ingame, y está hecho. Ahora al pulsar P, pausamos el juego, pero veamos en detalle que hace:

Pausar el juego no significa congelarlo por completo, debemos permitir que se sigan ejecutando cosas como entradas de teclado o algunos renderizados. Pues bien, todos los frameListeners siguen activos, pero mediante el control de estado del juego podemos determinar si los managers se actualizan o no. De esta forma si estamos en modo pausa los managers PlayerManager, EnemyManager, ShotManager, ItemManager, PhysxManager dejan de actualizarse. El sonido sigue escuchándose (o sea la música y efecto ambiente), y el Listener de teclado sigue recibiendo pulsaciones (para poder salir del estado pausa evidentemente).

Pero una cosa que había que corregir era que puesto que el renderizado se sigue ejecutando, todos los sistemas de partículas que están en modo perpetuo se siguen ejecutando y no he encontrado forma de parar mediante un método la actualización de todos los sistemas de partículas. Pero pensando en el problema en realidad no quiero pararlos todos, pero por ejemplo si el del polvo que levanta el player al andar que por algún motivo se ejecuta en el modo pausa.

Esto lo he solucionado usando el método setNonVisibleUpdateTimeout(1) del efecto polvo. Con esto se consigue que si el efecto de partícula está “no visible” durante más de un segundo, entonces deja de actualizarse hasta que vuelva a ser visible. Quizás no sea la mejor solución, seguiré buscando alguna forma de parar las partículas perpetuas.

Sistema de cinemáticas

Tengo hecho un rudimentario sistema de cinemáticas para la demo, que me permite crear escenas ‘especiales’ definidas por una cámara especial y un texto descriptivo de la escena. Estas cinemáticas por el momento son interactivas, es decir al tiempo que vemos la escena con esa cámara y aparece el texto, podemos controlar al player. Estas escenas se activan/desactivan cuando el player pasa por un punto concreto del escenario.

El manager pretende ser mucho más para permitir más tipos de cinemáticas, como vídeos prerenderizados o secuencias en las que no haya control por parte del usuario pero por el momento y para la demo, utilizo una cámara llamada camaraK que es la que configuro en función de los valores de las cámara de cada cinemática y al mismo tiempo mediante la clase ScrollingMessage muestro un texto en pantalla.

Actualmente hay solo dos cinemáticas del tipo descritas, la Intro del Ingame, cuando la tortuga está en el nido y el final, cuando la tortuga llega a las inmediaciones del castillo del nivel 0.

Snippets para los mensajes en pantalla

Snippets, me gusta esta palabra en vez de usar “fragmento de código” que es lo que realmente significa. Y es que para implementar un sistema para mostrar mensajes en pantalla durante el juego he recogido algunos snippets de la wiki de Ogre para utilizarlos en mi código. Tras probar sin demasiado éxito al menos de momento, intregrar MovableText para mostrar etiquetas en objetos que sean movibles, he probado otros snippets como ScrollingMessage y ObjectTextDisplay, y estos creo que van a ser suficientes para lo que necesito. Con ScrollingMessage podré mostrar la historia a base de líneas que se irán mostrando y desapareciendo mientras que ObjectTextDisplay me servirá para usar etiquetas en objetos. En cualquiera de los dos casos no son más que overlays con texto.

Cinemáticas, Intro, tutorial…

Vuelvo al código para buscar una forma de implementar secuencias de cinemáticas, un tutorial del primer nivel o una intro dentro del Ingame. Y para empezar con ello, he utilizado la máquina de estados del nivel y le he añadido un nuevo estado a los ya existentes (Playing, Pause). Este nuevo estado lo he llamado, no se si acertadamente, Kinematic_Stage y es el estado en el que comienza el primer nivel y pretendo utilizar este estado para mostrar el castillo final. En ese estado el juego utiliza una nueva cámara que he llamado cámaraK, y dependiendo de un valor entero se lanzará una cinemática u otra. Cuando hablo de cinématica, no me refiero (al menos no solo) a secuencias renderizadas que vayan explicando la historia sino también a secuencias en tiempo real ejecutadas con el motor y que sean de utilidad para la historia.

Estoy muy lejos aún de crear un verdadero sistema de cinemáticas, de momento sólo es una nueva cámara que utilizamos al comenzar el nivel y a través de la cual intentaremos explicar quién es el personaje y que debe hacer. Pasado un cierto punto del mapa, entramos el en estado Playing_State del nivel y ahí colocamos la cámara de 3ª persona por detrás del player y comienza el juego.

Por lo tanto tenemos esta estructura de estados del juego:

Estado aplicación: Intro,Ingame,Credits
Estado Stage (nivel): Playing,Pause,Kinematic

Además de este nuevo estado, será conveniente también crear un sistema que me permita mostrar mensajes o carteles en pantalla.

Concept del castillo nivel 1 de Surfer Turtle

Este es un concept del castillo final del nivel 1 de Surfer Turtle, y que es el final de la demo. La idea es que al llegar a una cierta distancia del castillo aparezca una especie de cinemática del castillo para presentar la batalla final del nivel. Ahora toca modelarlo.

Como comente en el documento de diseño, cada nivel tendrá un castillo final que habrá que derribar. En un principio no había pensado demasiado sobre estos castillos pero haciendo el diseño de este, me ha surgido la idea de que cada castillo tenga sus propias características y este gobernado por un jefe. En el caso de este concept este castillo es una fortaleza islámica al estilo de la ciudadela del Saladino en Egipto y su jefe final será un sultán.

Seguir

Get every new post delivered to your Inbox.