¿Qué es? - Introducción

Es un juego de pizarra electrónica, en el cual un usuario "dibujante" elige una palabra que debe describir con un dibujo, y otros usuarios que tienen tratan de adivinar lo que la persona propuso.

Actualmente el primer usuario en loguearse al soft poseerá el rol de "dibujante" y los siguientes seran los "adivinadores".

La consigna era crear una aplicación innovadora/interesante utilizando la API de Bing Search y/o la plataforma Windows Azure. La app utiliza la API de Bing para realizar una búsqueda en imágenes que pueden servir para modelo o inspiración para el dibujo del "dibujante".

Los requisitos del cliente son:
  • Un browser con buen soporte HTML5 para Canvas y WebSockets.
Y en el servidor:
  • Un servidor web/PHP 5 con soporte tanto de APC como de OpenSSL (ya que la consulta de imágenes se realiza creando una conexión desde el servidor a BING utilizando SSL).
  • Una instalación de Python 2.6 o 2.7, con la versión 2.4.1 de Tornado (www.tornadoweb.org), para el servidor que realiza broadcast de los comandos de la pizarra.
El juego fue programado durante el HackathonPY (www.hackathonpy.com) el fin de semana del 15 y 16 de Diciembre de 2012, por el equipo compuesto de Daniel Bernal y Camilo Díaz Repka.

Cosas que (se podrían) mejorar

  • Prever un tiempo de espera para que se una el o los adivinador(es) antes de que el dibujante pueda empezar el dibujo, o tal vez implementar un mecanismo para copiar el dibujo entero actual a un nuevo adivinador que se una al juego luego de que ya exista parte de un dibujo.
  • Hacer que el servidor de pizarra(boardserver.py) sea más "inteligente".
  • Una alerta visual mas adecuada al momento de cerrar un juego (no simplemente window.alert)
  • Manejo de posibles errores del WebSocket.
  • Diseño, y mejores criterios de usabilidad en general.
  • SEGURIDAD.
  • Testing. (MUCHO)
  • Documentación.

Ideas para futuras implementaciones

  • Un temporizador para la partida.
  • Optimizar performance. Enviar comandos de pizarra en bloques/chunks (?) Comprimirlos (?)
  • Registro de usuarios y/o utilización de OpenID, FBConnect o similares para autenticación.
  • Múltiples salas de juego, grabar históricos y poseer rankings.
  • Que se pueda seleccionar un dibujo de los resultados de busqueda, y "calcarlo" estando el dibujo debajo del canvas.
  • Implementar mas herramientas de la paleta de dibujo, por ejemplo la funciones "clear", "line". Actualmente sólo están disponibles Pencil, Eraser, y la selección de color. Las demás herramientas del wPaint pueden activarse modificando la configuración `defaultSettings` de la linea 153 de wPaint.js.
  • Implementar un algoritmo para fill (rellenar) en el cliente web, y que se propague correctamente por mensajería.
  • Que el dibujante reciba las palabras incorrectas que los adivinadores sugieren, y quizá pueda dar "pistas" para ayudarlos a descubrir de qué se trata el dibujo.

Last edited Dec 20, 2012 at 9:48 PM by camilojd, version 6