# Boxoban: Servicio digital de juego de puzles estilo Sokoban/Versión previa: Tecnologías utilizadas

< Boxoban: Servicio digital de juego de puzles estilo Sokoban

## Canales de comunicación

Se describen los medios de comunicación que vamos a utilizar para la organización del proyecto junto a una breve descripción:
* Repositorio principal: Tenemos el repositorio principal del proyecto en Bitbucket. Bitbucket es un servicio de alojamiento basado en web, para los proyectos que utilizan el sistema de control de revisiones Mercurial y Git. Bitbucket ofrece planes comerciales y gratuitos. Se ofrece cuentas gratuitas con un número ilimitado de repositorios privados (que puede tener hasta cinco usuarios en el caso de cuentas gratuitas).
También utilizaremos Mercurial. Mercurial es un sistema de control de versiones multiplataforma, para desarrolladores de software. Un manual muy interesante es el siguiente enlace.
* Google drive: Utilizamos Google drive para compartir documentación interna, recursos, y borradores del proyecto. Tenemos una división de carpetas básicas:
** Análisis:es la carpeta donde guardamos la documentación tales como formato de niveles, objetos, etc ...
** Arte:carpeta donde se encuentran todos aquellos recursos artísticos que necesitamos para el desarrollo del proyecto, como las imágenes, audio, paletas y plantillas.
** Diseño:todo lo relacionado con las decisiones de diseño del juego.
** Recursos:en esta carpeta colocamos ejecutables, librerías o software adicional que necesitamos para poder desarrollar el proyecto.
** Producción:aquí generamos toda la documentación interna, como son las actas o los resúmenes de los sprints.
** Tecnología:compartimos manuales y ejemplos de algunas tecnologías que utilizamos.
* Trello:Trello es un gestor de actividades para equipos accesible vía web que destaca por su sencillez extrema. Trello nos presenta un tablero virtual dónde crear columnas en las que meter tarjetas. Las columnas pueden nombrase y darles el significado que se quiera. El sistema propone tres categorías básicas: Pendientes, En Curso y Terminadas.
** Nombre:
*** Asignado por los administradores.
*** Este nombre será descriptivo de la tarea.
** Tag de clasificación:
*** Asignado por los administradores.
*** La etiqueta de color asignada a cada tarea define el departamento o departamentos involucrados en esta tarjeta.
** Descripción:
*** Inicialmente será escrita por los administradores, pero se puede ir añadiendo información por parte de los miembros que tengan esa tarea asignada.
*** Esta descripción será un poco más detallada que el nombre de la tarea, y en ella se pueden incluir links y otros recursos.
*** Si la tarea fuese algo de documentación, por ejemplo, podría añadirse a la descripción un link al documento en cuestión una vez completada la tarea.
** Fecha de vencimiento:
*** Asignado por los administradores.
*** En ocasiones especiales, si urge completar una tarea para una fecha, los administradores podrán utilizar este sistema de comunicación indicando la fecha de vencimiento de la tarea.
** Marcadores de personas:
*** Asignado por los administradores.
*** Estos avatares identifican en cada tarea a quién se tiene que ocupar de una tarea determinada. Las tareas se asignan en cada reunión semanal, en la fase de asignación de tareas y, salvo algún caso extraordinario que pudiera ocurrir, se mantienen vigentes toda la semana.
*** Podemos utilizar esta información en los filtros del tablón para ver qué tareas tiene asignada cada persona.
** Checklist:
*** Asignado y modificado por los miembros involucrados.
*** Durante la realización de una tarea, los miembros que la tienen asignada pueden marcarse sus propias metas e ir activándolas según las acaben.
** Comentarios:
*** Todos los miembros pueden comentar cualquier tarea.
*** Cuando tengamos algo que decir sobre una tarea, queramos preguntar algo, o queramos hacer un comentario de cualquier tipo, podemos utilizar esta opción.
Trello nos permite utilizar seis colores para clasificar las tareas con un sistema de colores bastante rápido de identificar. Estos tags también nos permiten filtrar las tarjetas de forma que sólo veamos las que son de nuestro interés.
** Listas : Vamos a utilizar un número fijo de listas que nos permitan clasificar las tareas según el progreso que se lleve en dicha tarea. Estos grados van a ser:
*** Para hacer: son las tareas que se va sabiendo que hay que hacer en el proyecto y que en el futuro serán asignadas a una semana de trabajo. Estas tareas son puestas en esta lista por el administrador y son las propuestas por el director del proyecto o el resto de integrantes y surgen de los objetivos del juego y de las conclusiones de las reuniones. Son todas las tareas que se van necesitando para avanzar en el proyecto y todavía no se ha empezado a trabajar en ellas.
*** Haciendo ahora mismo: una vez se decide trabajar en una tarea, el miembro (o miembros) que la tiene asignada es el encargado de traspasar su tarjeta a esta lista, para indicar que está trabajando en ello. Una vez acabado pasarlo a la siguiente lista, “Revisión”.
*** Revisión: una vez terminada la tarea se coloca aquí para revisarlo y dar el visto bueno definitivo pasándolo a la lista "Hecho".
*** Hecho: cuando completemos una tarea, que nos había sido asignada, la moveremos aquí. Así, esta lista nos va a permitir ver el trabajo que se ha acabado.

# Programación

Aquí nombramos los entornos y lenguajes de programación que utilizamos:
* Microsoft Visual Studio 2012:se utiliza para desarrollar aplicaciones potentes con alto rendimiento. Hemos acordado utilizarlo debido a sus características para programar y la documentación disponible.
* UNITY: Unity es un ecosistema completo de herramientas y servicios diseñados para personas que desea desarrollar un negocio exitoso a través de la creación de juegos multiplataforma y contenido interactivo.
* C#:es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft . Es el lenguaje que utilizaremos para el proyecto.