sábado, 30 de septiembre de 2017

Manejando la Raspberry Pi desde un ebook (tinta electronica)

Tenemos una Raspberry Pi conectada por LAN a un router Wifi con un teclado inalambrico y un pendrive conectados al USB (y un altavoz conectado a la salida 3,5mm).
Gracias a shellinabox (https://github.com/shellinabox/shellinabox) podemos crear una terminal accesible desde el navegador integrado del ebook.

Para poder redirigir la entrada del teclado USB a la tty de shellinabox uso un programa de creación propia.

He aquí el resultado. Os muestro la ejecución del reproductor multimedia omxplayer a través de esta interfaz.


viernes, 1 de septiembre de 2017

Un videojuego 3D con tecnologia WebGL: Flappy Adventure 2

Descarga aplicación android aquí.
Windows, IOS, Mac y Linux acceded a versión online aquí.




Solo una semana es lo que he tardado en hacer el juego que tantos deseabais poder jugar. Flappy adventure 2 no solo es el primer videojuego 3D 100% hellinero, sino que es uno de los muy pocos implementados en tecnologia web (La mayoria de los juegos Indie 3D se crean en Unity) Esto significa que podeis jugarlo practicamente en cualquier sitio: PC, Mac, Iphone, Ipad, Android, Linux,...


Ademas dentro de la aplicación web tambien podeis jugar a la ya conocida Aventura de Flappy en su versión 2D la cual he mejorado en su versión 1.2, o jugar a la ya anticuada version GB o al Retro Stack Tower 2017 mediante su emulador de gameboy incluido.

Problemas relativos al lag:
-La velocidad de avance se ve reducida impidiendo pasar el primer nivel. Solucion: multiplicar velocidad x delta en control.js pasando delta como parametro a la funcion update.
-Al caer se puede atravesar el suelo si el lag es muy grande. Solución: RaycasterDown= Math.max(la distancia que flappy baja en el siguiente frame , 10).

Mejoras para touchscreen:

-La sensibilidad de los controles depende de la resolucion de la pantalla. Solución: usar ScreenHeight como referencia.
-Camara podría estar quieta al desplazar el dedo a una posicion (2º cuadrado). Solucion: actualizar posicion touchstart a la actual en cada update. (En Galaxy S8 funciona bien, vaya misterio)

Otros:

-Mirar si se puede arreglar spawn inicial.

Si experimentais problemas y teneis especial interes en una version 1.0.1 hacedmelo saber.


Actualización 1 aniversario de Flappy Adventure 2
Para celebrar el 1 aniversario de Flappy Adventure 2, aparte de solucionar la mayoría de los problemas apuntados anteriormente, he implementado la versión VR (Virtual Reality) del juego. Esta versión era mi principal intención cuando decidí hacer FA2, y que lamentablemente tuve que descartar por varios motivos:

  • No tenia gafas VR. Hace un año eran caras, la mayoría eran de cartón, y habría supuesto que mi juego no llegase a ningún publico.
  • Era novato usando WebGL y Three.js y solo me faltaba complicarme aun más la vida con FA2 (El cual quería tener hecho en menos de una semana)
  • No tenía de idea de como poder controlar a Flappy sin poder tocar la pantalla tactil.
Tras abrir el código por primera vez desde 1 año del lanzamiento, me quedé sorprendido de que no tuviera mas fallos. Era la primera vez que usaba Three.js y que desarrollaba un juego en 3D (Ademas con prisas). Arreglé los fallos que pude, e implementé la versión VR sin preocuparme demasiado en dejar el código bonito.

¿Como solucioné el problema del controlador?
Para controlar a Flappy finalmente se me ocurrió poder utilizar un dispositivo móvil auxiliar como controlador y que mediante Websockets se comunicaran con un servidor Java (también creado por mi).

Dudo mucho que nadie quiera probar Flappy Adventure 2 VR así que os adjunto el vídeo y vais sobraos.