1 de Junio, 2014

»Resultados de PyWeek 18 · Ya están los resultados de la PyWeek 18. He quedado tercero, con 3.79 en total (mi mejor marca desde que empecé a participar en la competición); 3.41 en diversión, 3.59 en innovación y 4.36 en producción, siendo el primero en esa categoría. El ganador en individuales ha sido The Eight Bit Passage, en grupos ha sido Goodnight, Mr President (que, por cierto, no soporta Linux; ¡ha ganado con solo 8 votos! Mi favorito era Idle). He repetido posición, aunque esta es la primera vez que he entregado un juego que podría haber ganado ;).

Hay 0 comentarios, anotación clasificada en: pyweek.

27 de Mayo, 2014

»Grid Runners en indiegames.com · Estoy muy contento con que Grid Runners haya sido mencionado en indiegames.com. Además me gusta bastante la descripción que John Polson hace del juego:

Grid Runners involves hacking all the terminals in each stage, but the real challenges are in resource management and environment manipulation. You can hack each PC in one of four ways: to grant access to nearby doors, to disable nearby lasers, to recover your link (health), or to get you extra time on the grid. Enemies can shoot at you to deplete your health, and lasers will reduce your time allowed on the grid.

Yo no lo hubiera explicado mejor :).

Hay 0 comentarios, anotación clasificada en: pyweek.

21 de Mayo, 2014

Commits durante la PyWeek 18

Esta es mi punch card para Grid Runners, que nos da una referencia visual de cuándo y cuántos commits hice a lo largo de la semana.

Commits

Comparado con la edición anterior, creo que se nota que he tenido más trabajo ;). Además acabé bastante más tarde el último día añadiendo los 10 niveles (el sábado, porque el domingo en la gráfica corresponde con el inicio de la competición).

Hay 0 comentarios, anotación clasificada en: pyweek.

18 de Mayo, 2014

»¡PyWeek 18 conseguida! · He estado más callado que de costumbre por aquí, pero es que ha sido la PyWeek 18 :). He entregado un juego que mezcla acción con puzzles, más o menos, y es el juego más completo y ambicioso que he "acabado" hasta la fecha: Grid Runners (también en mi entrada en PyWeek). En la página del proyecto hay para bajar el código fuente y binarios para Windows (por ahora); además se trata de mi juego de Mayo para One Game a Month.

Actualización: he subido paquetes para Debian/Ubuntu.

Hay 0 comentarios, anotación clasificada en: python, programming, pyweek, 1gam.

29 de Abril, 2014

»Submarine (treasure hunting) · El fin de semana pasado probé suerte de nuevo con la Ludum Dare, aunque tenía varios compromisos para el sábado y solo pude dedicarle parte del domingo. Como estoy con un proyecto ambicioso, pensé que podría acabar un mini-juego y tener algo para Abril válido para el reto one game a month. Al final no pudo ser :(, pero sí he tenido tiempo para acabarlo para la jam (que las reglas son menos estrictas); el resultado es mi juego de este mes Submarine (treasure hunting) (y también mi entrada en Ludum Dare).

Hay 0 comentarios, anotación clasificada en: programming, javascript, 1gam.

20 de Abril, 2014

Trabajando en un RPG

Ya hablé hace tiempo de lo que me gustaba leer Maniacos del Calabozo (en Micromanía), y que había descubierto un par de blogs que me habían vuelto a enganchar (CRPG Revisited; algo menos activo, y el genial CRPG Addict).

Ya hace cosa de un año estuve pensando cómo podría ser el RPG mínimo, porque se trata de un tipo de juego que es muy complejo, pero creo que se podría acotar de forma que sea un proyecto viable para un solo programador (además a ratos).

Dejé el tema de lado porque ya no es solo el motor del juego, sino los gráficos que pueden llegar a ser muy exigentes, y además hace falta una historia. Guardé mis notas por si acaso, y las he retomado ahora: ya que de todas formas estoy haciendo un juego al mes, ¿qué tal si hago un RPG con un motor mínimo y lo voy perfeccionando en los meses siguientes?

Witchlord alpha
La idea va tomando forma

Además cooincide que a finales de Mayo tenemos la PyWeek 18 (que será mi juego para ese mes), con lo que puedo estirar un poco más el tiempo de Abril y tener unos días extra para trabajar la idea.

Por ahora las cosas parece que van saliendo, aunque va a ser más parecido a juegos tipo Rogue, porque es el sistema más sencillo de implementar (especialmente en cuanto a aspecto gráfico, aunque estoy implementando ideas que pueden dar mucho juego a la implementación de puzzles). Siempre tendré la posibilidad de mejorar el motor y darle más profundidad en el futuro (entregando un nuevo juego, claro está).

Aunque estamos en la recta final del mes, es todavía pronto para saber si podré terminarlo (juas). El reto one game a month es lo que tiene, que cada juego entregado solo significa un mes menos; y cada nuevo juego es empezar otra vez y poder fallar ;).

Hay 0 comentarios, anotación clasificada en: rpg, 1gam.

11 de Abril, 2014

»PyWeek 18 · El registro para la PyWeek 18 ya está abierto, y la competición se llevará a cabo del 11 al 18 de Mayo. Ya sabes de qué va: programar un juego desde cero en una semana, usando Python. Mi última entrada fue una aventura en 3D (o algo así) con la que quedé tercero en el ranking general (aunque lo importante es ciertamente participar y ¡entregar un juego al final de la semana!).

Hay 0 comentarios, anotación clasificada en: python, programming, pyweek.

28 de Marzo, 2014

»Game programming patterns · Me he encontrado este game programming patterns, un libro sobre diferentes patrones útiles que podemos utilizar programando juegos. Por ejemplo: game loop (al hilo de mi anotación sobre animaciones fluidas, donde implemento variable time step recortando por arriba a 60 FPS). Lectura muy recomendable.

Hay 0 comentarios, anotación clasificada en: programming.

23 de Marzo, 2014

Flax para Android

He publicado mi juego para Marzo del reto one game a month, esta vez un port de Flax para móviles corriendo Android (4.0 o posterior).

Mi experiencia con Android hasta el momento había sido un par de intentos (inclyendo compra de libros) para programar aplicaciones usando el SDK oficial, pero sin mucho interés (ni resultados :D), así que me he tenido que inventar soluciones a los problemas que me he ido encontrando.

Flax en Android

En primer lugar Flax es un juego HTML para jugar en un navegador, pero en el escritorio, así que tuve que adaptarlo a la plataforma móvil.

Para empezar tuve que cambiar cómo se dubuja el juego para poder soportar diferentes tamaños de pantalla y diferentes proporciones. En un escritorio es aceptable que no se utilice toda la pantalla (especialmente en un juego como Flax, donde la acción es vertical), pero en un dispositivo móvil donde la pantalla puede ser bastante pequeña hay que cambiar de estrategia. Además hay multitud de tamaños de pantalla y dispositivos ejecutando Android así que tuve que buscar una forma de que más o menos el juego se viera igual en todas ellas.

Al final no es tan complicado jugando un poco con CSS y detectando la orientación del dispositivo (el juego no funcionará en modo apaisado).

La siguiente diferencia evidente son los controles. El juego original se puede controlar con el teclado o, en caso de ser un navegador Chrome, con un gamepad (tengo uno USB de esos baratos y funciona genial), pero ninguno de estos controles está disponible en un dispositivo Android (no estoy seguro en la parte del gamepad, así que he dejado el soporte por si acaso).

En este caso me empapé de la especificación de los eventos touch y programé un joystick virtual que intenta simular un control analógico: touch-joystick-js (lo he publicado como Open Source).

La idea es que cuando el usuario pulse la pantalla, la nave disparará, y dibujaremos una referencia de la posición del joystick para dar información al usuario (aparte del hecho de que la nave se moverá, claro). Como el dedo del usuario puede molestar para ver la acción, en cualquier momento se puede levantar el dedo para pulsar en otra parte de la pantalla y tener el joystick de nuevo.

No sé si es la mejor forma de implementar este tipo de controles, pero funciona y el juego es bastante jugable.

De todas formas he tenido que ajustar la dificultad porque los controles táctiles son menos precisos que el teclado o que el gamepad, así que algunos enemigos resistirán menos impactos o dispararán con menos frecuencia (esquivar algunos de esos proyectiles puede ser complicado en la pantalla reducida de un móvil).

Mi idea original era utilizar Apache Cordova (aka Phonegap), pero finalmente no pudo ser por un fallo conocido en Kit Kat que desactiva la aceleración por hardware en los componentes que usa Cordova para ejecutar las aplicaciones web (bug 315111).

Estuve a punto de desistir porque, debido a ese problema, no obtenía más de 1 ó 2 frames por segundo, mientras que el juego iba más rápido que en mi portátil si usaba Chrome para Android (en serio :o).

Finalmente la solución vino de la mano de otro proyecto: Crosswalk; que proporciona la misma funcionalidad que Cordova, pero incluye su propio runtime basado en Chromium en lugar de usar un componente WebView del sistema. Por ahora está un poco verde y tiene el inconveniente del tamaño de las aplicaciones, junto al hecho de que tienes que distribuir un componente nativo (el runtime), pero la velocidad y la funcionalidad del entorno es el esperado :).

Así que aquí está: Flax para Android, mi juego de Marzo ;).

Hay 2 comentarios, anotación clasificada en: programming, javascript, 1gam.

21 de Marzo, 2014

»Hasta luego Firefox OS · Porque es posible que vuelva a probar, pero ahora mismo... no merece la pena :(. Hace unos 6 meses desde que comprara un ZTE Open con Firefox OS; y lo he intentado usar a diario (mucho, incluso me compilé la versión 1.2), pero no está listo. Además la batería del terminal cada vez dura menos, imagino que en algún sitio tenía que notarse el precio. En fin, que vuelvo a Android, y damos por concluido el experimento.

Hay 0 comentarios, anotación clasificada en: firefox.

Entradas antiguasEntradas nuevas