martes, noviembre 29, 2016

Sistema de entrada unificado y versátil

Aunque no lo creí al principio, incluso con un proyecto 2D aprentemente sencillo (en desarrollo de juegos, casi nada es sencillo) se puede aprender. El fin de semana tuve que reescribir el control del personaje casi completo. Todo el código anterior no servía luego de agregar el joystick virtual, a menos que mantuviese dos formas distintas de controlar el personaje: una para móviles y otra para PC. Y esta última no contemplaba el uso de mandos.
Sin embargo, la solución estaba en el mismo tutorial que utilicé para el joystick virtual, que me sirvió de inspiración para arreglar el sistema de control basado en teclado y convertirlo en algo más portable, utilizando GetAxis() en vez de preguntar si las teclas del cursor han sido presionadas o liberadas. Eso conlleva cambiar el sistema de movimiento a uno basado en vector en vez de cuatro direcciones fijas, pero por suerte, la matemática detrás del asunto es sencilla. Ya lo probé usando un joystick, que es el único mando que tengo a mano, y funciona igual que con WASD y las teclas del cursor. O sea, que el juego ya se puede jugar en PC con teclado o mando.
Ahora solo me falta cambiar todo el sistema de animaciones, el apuntado, y cualquier detalle que se me haya pasado por alto, que siempre hay alguno esocndido por ahí.
Lo aprendido aquí también tiene aplicación en otros proyectos. Ahora sé que la cámara en tercera persona que implementé a principios de año posiblemente necesite una buena reescritura para soportar mandos.
Y ya que hablamos de Unity3D, parece que un viejo problema ha sido corregido: me dicen que ahora sí se puede usar deferred rendering cuando la cámara está en proyección ortográfica. Todo un alivio siquieres hacer una vista isométrica y manejar muchas luces en la escena.

miércoles, noviembre 16, 2016

Ya casi está el demo

Se dice fácil, pero ha costado lo suyo. Aún me quedan detalles por pulir, y trabajo artístico pendiente (de ahí que no tenga imágenes para mostrar), pero el demo está más cerca. La mayor parte del código está ahí, y la mecánica de juego es muy fiel al original, salvo en algunos detalles que se me han pasado por alto. Lamentablemente, no he podido contactar con los creadores del Laberinto original, para afinar todos los aspectos del diseño.
Seguimos teniendo el pequeño inconveniente de no tener cuenta en Google Play. Ni acceso a registrarla, ni dinero para pagarla. Pero supongo que eso se resolverá de alguna manera. Por lo mismo, ni hablar de versión para iOS, de momento.
Como les decía, ha costado lo suyo, y eso que solo se trataba de copiar un juego antiguo. En especial me fue trabajoso escribir un algoritmo de persecusión, pues Unity no trae búsqueda de caminos en 2D. Hasta el fin de semana pasado estuve retocando detalles. Y auqnue no lo crean, el proceso de crear las preguntas ha sido complejo. No es fácil sacarse de la manga 40-50 preguntas universales, no muy difíciles, además, traducirlas al inglés, y segundo además, que dejen alguna enseñanza. No estoy muy seguro de haber conseguido esto último, pero entiendan que no soy pedagogo ni nada de eso.
Y todo sin dejar de escribir y trabajando en un tercer proyecto. 

viernes, noviembre 04, 2016

Godot engine trabaja en su nuevo renderizador

Los desarrolladores de Godot han publicado un largo post acerca del estado del trabajo en el nuevo renderizador 3D, donde explican que la fase 1 (octubre) ha concluido y nos detallan el roadmap para noviembre y diciembre. De paso, se explayan comparando GL ES 2 con GL ES 3.
Tal como he mencionado anteriormente, la elección del equipo ha sido esta última API, y no Vulkan, u OpenGL 4, que aparentemente son las opciones más lógicas. Tal decisión ha sido defendida a capa y espada, y argumentada hasta la saciedad en algunos hilos que pueden encontrar en Google. Conclusión: que si bien no se descarta que se implemente un renderizador Vulkan algún día, por el momento la prioridad es GL ES 3, porque la mayoría de los usuarios de Godot están enfocados en el desarrollo para móviles, Vulkan es muy inmaduro, no está ampliamente soportado (en hardware y software) y no sabemos cuándo alcanzará el grado de popularidad necesario como para considerarlo importante.
En fin, que hay que sentarse y esperar. O pasarse a Unity3D. O si buscas solo libertad y quieres algo kosher, Torque3D. Tampoco es que la decisión vaya a dañar mucho la base de usuarios de Godot, que ya está contenta con el motor así como es (porque explotan más su renderizador 2D que es de lo mejorcito del mundo) y no se van a ir a ningún lado. La parte 3D de Godot no se ha popularizado mucho en la plataforma de escritorio, y no creo que eso cambie en un buen tiempo. Pero a pesar de ello yo considero a Godot como un proyecto exitoso y reconocido entre los programadores de juegos, supongo que eso justifique no correr riesgos y ser conservadores. Después de todo, no tienen recursos ilimitados, como Epic.

miércoles, noviembre 02, 2016

Quiero jugar un RPG

Desde hace un tiempo tengo ganas de jugar un buen RPG. Algo así como The Witcher (2 o 3). No me importa que tenga gráficos geniales o funcionalidades super innovativas. Lo que yo (y aquí usted puede insertar lo que le de la gana) busco es una buena trama que me haga sentir parte de un mundo que es más grande que lo que rodea directamente al personaje, y con progresión de niveles y muchas habilidades. Y eso solo se encuentra en los RPG.
A pesar de que hemos disfrutado de buenos títulos, hay cierta escasez de RPGs: quizás tengamos dos o tres al año. Los grandes estudios insisten en sacar FPS a patadas, sobresaturando un mercado que no da para más. Porque si nos detenemos a analizar, un FPS al uso, como CoD, ya no tiene más nada que ofrecer, salvo divertirnos un rato disparándole a todo lo que se mueva. No importa que le agregues combates en gravedad cero, o desde un tanque o cualquier otro vehículo completamente alejado de todo realismo. No importa que le metas Quick Time Events por todas partes, eso no va a hacer que tu CoD sea algo más que disparar a mansalva. Lo único que está salvando a los FPS es su modo multijugador, y eso es solo hasta que llega la siguiente versión.
Nadie quiere arriesgarse. Los RPG cuestan trabajo porque llevan más contenido y tienen menos mercado. Echen un vistazo y verán: casi todos los mejores títulos de los últimos años han venido desde fuera del circuito de los grandes. Underrail, completamente indie. Wasteland 2, vía Kickstarter, por un estudio que no destacaba mucho salvo por su gente. Obsidian había estado malviviendo a base de RPGs flojones hasta Pillars of Eternity (otra vez, gracias a Kickstarter). Solo hay dos compañías establecidas que se atreven con el género y lo manejan con maestría: Bioware y CD Projekt RED, y eso, salen cada 75 años, cual cometa Halley. Absténganse de mencionar Bethesda y Fallout, porque lo han diluido tanto que ya casi no es un RPG, sino una mezcla con lo peor de ambos lados, es como tener un amigo gay muy feo que no puede presentarte mujeres y encima ni siquiera toca el piano o puede cortarte el cabello. Me pregunto si cometerán el mismo crimen con el próximo Elders Scroll.
En fin, que la vida es dura para los fans del género. Yo, de momento, me tengo que quedar sin saciar el antojo.