Blog enfocado a la informatica y a la tecnología. Escrito de una forma amena y sencilla de forma que todos los que tengais cierto interes por la tecnología, podais entender.
¿Quien no ha querido nunca navegar por la deep web desde su navegador favorito Internet Explorer?
Tanto IOS, como Edge, como el obsoleto Internet Explorer tienen un problema con los proxys en común, y es que no traen soporte para el protocolo SOCKS5 que es el tipo de proxy que utiliza tor.
Ahora es posible hacerlo gracias a un programa en Java creado por mi, que en unas 160 lineas de código, se conecta a un proxy SOCKS5 (como puede ser tor) y devuelve un proxy HTTP al que nos podemos conectar desde los navegadores de Microsoft o nuestros dispositivos de Apple. Problema con IOS: Por alguna razon en las ultimas versiones de IOS, cuando intentas acceder a un sitio .onion, en Safari, te muestra un mensaje de que no tienes conexión a internet y el navegador ni se molesta en conectarse a traves del proxy. Se puede navegar anonimamente por el resto de paginas en cualquier caso. Este problema no ocurre en cambio con mi antiguo Iphone 4 con IOS7. Actualización:
Tras perder el código fuente original en Java, el cual aun tenía algunos fallos por resolver, he re-escrito el programa en C++ (Más eficiente) con mi librería Jsocket. Podeis encontrar el código fuente y ejecutable para Windows en https://github.com/juanmv94/SOCKS2HTTP.
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,...
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.
Terminan los examenes, comienza el verano y como viene siendo tradición me apetece hacer un nuevo juego retro para gameboy.
Esta vez, uno de los juegos de moda (seguido de flappy bird, 2048...) se llama Stack Tower, en el que vas haciendo caer de forma alineada plataformas en 3D que se van haciendo cada vez mas pequeñas.
¿¡Pero como voy a hacer un juego 3D en una consola cuyas capacidades graficas eran... Bueno...
Y es que la Gameboy y la Gameboy color son consolas con graficos basados en tiles con un único background sin escalado ni rotación, y que de forma resumida estan limitadas a un 2D bastante basico.
La cuestión es que como soy friki ingeniero informatico me pongo a diseñar un "motor grafico" para Gameboy que permita crear tiles de forma dinamica via software con los bloques 3D renderizados mediante unas rutinas software. Algo nunca visto. Estoy loco, sí.
Y sí... ¡funcionó! no me digais que no me ha quedado bonico.
No lo hice para Gameboy Original por dos motivos:
Aunque funciona, la potencia de la CPU en la Gameboy original se queda escasa.
En blanco y negro el juego queda bastante feo.
Como os habreis fijado, el contador de puntos tiene antialiasing, lo cual tampoco se habia visto hasta ahora en Gameboy.
Y este es el resultado :') ayy que lloro... Ahora solo me falta ponerle una imagen de portada bien fea.
Los bloques se imprimen por dos lados:
El bloque en movimiento, se dibuja en los sprites. Como sabreis (o no) hay un límite de 10 sprites por scanline, son solo 40 y pueden tener un tamaño de 8x8px o 8x16px. Para dibujar los bloques lo mas grandes posibles, alineo todos los sprites en modo 8x16 px en un único "objeto" de 10x4 sprites. ¡Apuro los límites tecnicos al maximo!
Los bloques ya colocados se dibujan en el background. Mi "motor grafico" se encarga de dibujar unos encima de otros y de actualizar el tilemap de forma dinamica.