WCC Hackathon 2017

WCC

El pasado 6 y 7 de octubre se llevó a cabo el We Can Code Hackathon, en Ensenada, y como ya es costumbre (llevamos cuatro años haciéndolo), mis amigos y yo participamos.

El objetivo del evento es lograr desarrollar algún proyecto de tecnología en 24 horas y se califica la dificultad técnica, la ejecución y diseño, el factor WOW, el impacto, y qué tan terminado o funcional logramos dejar el proyecto.

La verdad es que no teníamos ni idea de qué íbamos a hacer en el hackathon, y perdimos más o menos las primeras cuatro horas de la competencia pensando qué hacer. Al final nos decidimos por hacer un juego que a todos nos parecía divertido: un juego de minijuegos, al estilo Mario Party o Wario Ware, que se juegue en el celular y se conecte con los celulares de tus amigos.

Me parece que tal proyecto tiene mucho potencial, porque es un género que casi no existe en los celulares, y eso que son perfectos para éste, pues tienen muchos sensores que podrían ser explotados, como el acelerómetro/giroscopio, la cámara, el micrófono y obviamente la pantalla táctil.

El cliente lo programamos en Haxe, con HaxePunk, y el servidor en Python (utilizando multithreading, de lo cual pueden leer más en el post de Antonio). Yo más que nada me encargué de la programación de los juegos.

Logramos hacer cinco minijuegos:

  1. Atrapar una botella de vidrio que va cayendo desde el cielo.
  2. Batear una pelota de béisbol.
  3. Meter unas pelotas en un agujero.
  4. Clon de Flappy bird.
  5. Atrapar una botella que se desliza por una barra.

Creo que quedamos, como equipo, bastante satisfechos con nuestro trabajo, incluso nos divertimos bastante jugando en nuestro tiempo libre el demo que hicimos. Durante la presentación dejamos que los jueces jugaran el demo entre ellos mientras les explicábamos el proyecto.

No esperábamos ganar ninguno de los premios, porque rara vez es un juego el ganador de un hackathon, así que nos llevamos una gran sorpresa cuando nos otorgaron el segundo lugar.

¡Segundo lugar!

Me divertí mucho en esta edición del WCC Hackathon, y espero poder asistir de nuevo el próximo año. Creo que el proyecto que realizamos tiene mucho potencial y planeamos seguir trabajando en él para sacar algo jugable por otras personas.


"Grab a Coin to Win" disponible para Android. Y cómo publicar en Google Play las aplicaciones hechas en Haxe

Nota: Esta entrada fue publicada el 9 oct de 2015 @ 07:32 en un blog que tenía anteriormente en Wordpress, y republicada aquí para el record.


Grab a Coin to Win

El día de ayer por fin adquirí la licencia de desarrollador de Android (y la de iOS), así que lo primero que quise hacer fue publicar mi jueguito Grab a Coin to Win. Mi ingenuidad me hizo pensar que sólo tenía que subir el archivo.apk ... estaba muy equivocado.

Por cuestiones de seguridad, Google te exige que firmes electrónicamente las aplicaciones, esto es para evitar que alguien distribuya malware en tu nombre. Es un proceso bastante sencillo en realidad, pero me costó un poco encontrar información específicamente para Haxe y Lime.

Firmar el APK

Primero se debe generar el archivo de llaves, para esto se utiliza keytool , que está incluido en el JDK. Los parámetros recomendados por Google son los siguientes:

keytool -genkey -v -keystore TU_ARCHIVO_DE_LLAVES.keystore -alias TU_ALIAS -keyalg RSA -keysize 2048 -validity 10000

donde TU_ARCHIVO_DE_LLAVES es el nombre que le quieres poner al archivo que keytool generará, y TU_ALIAS es el nombre de usuario que quieres usar para acceder al archivo (pueden ser lo que sea, pero es importante que los recuerdes). keytool te hará una serie de preguntas y pedirá una contraseña, que tampoco debes olvidar.

Después tienes que agregar la siguiente línea a tu project.xml:

<certificate path="TU_ARCHIVO_DE_LLAVES.keystore" alias="TU_ALIAS" password="TU_CONTRASEÑA" if="android" unless="debug"/>

(reemplazando las mayúsculas con tus datos).

Si usas Git, obviamente no quieres añadir estos datos al repositorio público, por lo que deberías añadir

*.keystore

a tu .gitignore. En cuanto al project.xml, es buena idea mantener este archivo sin la línea del certificado y crear otro archivo project-PRIVATE.xml con las mismas líneas incluida la del certificado, para que el proyecto pueda ser usado sin el certificado, pero sólo pueda ser firmado por quienes lo posean. Entonces, a la hora de compilar para producción, se deberá usar el comando

lime build project-PRIVATE.xml android

Trascendencias y Taller de Programación de Videojuegos

Nota: Esta entrada fue publicada el4 oct de 2015 @ 23:07 en un blog que tenía anteriormente en Wordpress, y republicada aquí para el record.


El miércoles, jueves, y viernes pasado se llevó a cabo "Trascendencias", un simposio de ingeniería que se celebra cada año en CETYS Universidad, compuesto por talleres, conferencias, visitas a empresas, eventos sociales, y más. Este año, mi amigo R., que era parte del staff, me ofreció dar un taller de programación de videojuegos, propuesta que acepté con gusto.

Al simposio asisten principalmente estudiantes de ingeniería, así que se supone que todos debían saber aunque sea lo básico de programación, aunque también hay estudiantes de preparatoria o de otras carreras (es un evento totalmente abierto). Lo bueno es que la programación de videojuegos es un área solamente buscada por los geeks, así que todos mis alumnos sabían, cuando menos, lo que era un if.

Para el taller utilizamos Haxe y HaxePunk para realizar el siguiente juego:

Fue una muy grata experiencia. Recibí muy buenos comentarios y quienes tenían más experiencia programando hasta modificaron un poco el código para tener un juego más elaborado (nadie sabía Haxe, pero logré inculcar un poco las maravillas de este lenguaje).

Aquí hay algunas fotos (lo siento por la calidad, al parecer R. no sabe usar el flash, o una cámara...):




Instalar Haxe, HaxePunk y SublimeText 2 con el plugin de Haxe

Nota: Esta entrada fue publicada el 20 may de 2015 @ 18:27 en un blog que tenía anteriormente en Wordpress, y republicada aquí para el record.


Estoy impartiendo el Taller de Programación de Videojuegos en El Garage - ProjectHub, en el que utilizamos Haxe y el engine HaxePunk para crear videojuegos, y mis alumnos me pidieron que les escribiera las instrucciones para poder instalar y configurar todo lo que necesitan en sus computadoras, así que aquí están los pasos que se deben seguir.

Paso 1: Instalar Haxe

Entren a la página de descargas de Haxe y descarguen el instalador correspondiente a su sistema operativo (si usan Linux, les recomiendo utilizar el script que se encuentra en esta página), corran el programa y esperen a que termine.

Paso 2: Instalar HaxePunk

Al instalar Haxe, se agregó el comando haxelib , que es el que nos permite administrar las liberías de Haxe (como HaxePunk), así que abrimos el Command Prompt en Windows, o la Terminal en Linux/OSX, y escribimos

haxelib install HaxePunk

Una vez que HaxePunk termine de descargarse, debemos configurarlo con el comando

haxelib run HaxePunk setup

Paso 3: Instalar Sublime Text 2

Este paso no es necesario si piensas usar otro editor de texto, pero en el taller utilizamos este. Para instalarlo, simplemente descarga el instalador en la página web, córrelo y espera a que termine.

Paso 3.1: Instalar PackageControl

SublimeText 2 no viene por default con soporte para Haxe, así que necesitamos instalar el plugin que agrega este lenguage, pero para instalar plugins necesitamos PackageControl. Instalarlo es muy fácil: todo se explica muy bien en la página web. Una vez tengamos ST2 abierto, vamos a View > Show console , para abrir la consola de comandos de ST2, pegamos el código escrito en la página, y damos enter. Sublime te pedirá reiniciar para terminar la instalación.

Paso 3.2: Instalar el plugin de Haxe

Ya tenemos PackageControl, así que dentro de Sublime podemos presionar Ctrl + Shift + P para abrir la paleta de comandos, aquí escribimos install y seleccionamos la opción Package Control: Install Package (si casualmente te sale un mensaje de que se acaba de instalar una librería nueva y necesitas reiniciar, hazlo y vuelve a empezar este paso). Ahora debería haberse abierto un campo de texto para buscar, donde debemos poner haxe . Le damos click al primer resultado, el único que dice Haxe, y ya quedará instalado.

Paso 4: Crear un proyecto de HaxePunk

Este paso no es necesario obviamente, pero puede ser útil para corroborar que todo haya sido instalado correctamente (y también por si no sabes cómo crear un proyecto).

En la terminal escribimos

haxelib run HaxePunk new Proyecto

(Proyecto siendo el nombre que queremos darle a la carpeta de nuestro proyecto, puede ser lo que sea mientras no contenga espacios). Esto nos creará una carpeta con la siguiente estructura:

  • Proyecto/
    • assets/
      • audio/
      • font/
      • graphics/
      • HaxePunk.svg
    • src/
      • Main.hx
      • MainScene.hx
    • project.xml

El proyecto como tal ya tiene el código necesario para mostrar una ventana gris vacía, así que entramos desde la terminal a la carpeta

cd Proyecto

y corremos el programa

lime test neko

Si todo fue bien, debe de abrirse una pantalla gris. Si no pasa esto, algo fue mal durante la instalación, así que deberías verificar que seguiste todos los pasos. También es posible que algunas librerías estén en una versión incorrecta, por lo que es necesario hacerles downgrade. Al momento de escribir esto (actualizado el 11/10/2017), estas son las versiones que me funcionan en Windows y Linux:

  • Windows y Linux:
    • HaxePunk: 2.6.1
    • lime: 4.0.3
    • openfl: 4.9.2

Paso 5: ¡Estudiar Haxe y HaxePunk!

Estamos ofreciendo cursos en El Garage con este propósito, pero también hay muy buenos recursos online con los que podrías reforzar tu aprendizaje. Recomiendo especialmente haxe.org y haxepunk.com.