Práctica 3: Documentación Técnica

Script de Desarrollo

npm run dev

Se ejecuta utilizando la dependencia nodemon. Es extremadamente útil, actualiza en tiempo real los cambios en el servidor.

Estructura e implementación.

Sobre el juego

Motor

Se ha implementado un sistema de entidades basado en componentes. Básicamente, una entidad es un objeto standard que se caracteriza mediante la adicción de componentes en su estado. En el juego se utilizan las siguientes componentes:

También se ha implementado un sistema de dibujado de entidades basado en clases contenedoras que guardan una referencia a la entidad que dibujan en su estado.

Red

Las funciones de red del juego están implementadas principalmente con websockets. Se utiliza el sistema de rooms de socket.io.

Inputs

Los controles del juego varían según el rol del jugador y el dispositivo. En el caso de la piedra, se hace uso de un drawing pad, un canvas sobre el cual se dibuja una línea recta arrastrando el cursor o el dedo en el caso de dispositivos móviles. Esta línea determina la trayectoria que tomará la piedra en la siguiente iteración del loop. En el caso de los pájaros, serán controlados los dos en simultaneo. En el caso de PCs, los controles serán manejados con las teclas awsd para el Blue Bird y las arrowKeys para el Green Bird. Para activar la función Poop, se utiliza la tecla espacio. En el caso de dispositivos móviles, se utilizarán dos drawing pads y el clic en la pantalla.

Constantes

Las constantes han sido abstraídas en un archivo propio para poder personalizar el juego de forma más cómoda. Para el desarrollo, se han implementado funcionalidades especiales como colliders visibles. Se pueden activar desde la constante DEBUG.

Interfaz

Se ha implementado un sistema de interfaces dinámico. Se busca crear una SPA con Vanilla JavaScript. Para esto, se emula el sistema de componentes de frameworks como React.js . Se tienen los siguientes componentes:

Estos componentes son manejados mediante una clase cuyos métodos modifican el contenido dentro del bloque menu en el html. Estos métodos son a la vez usados dentro de los callbacks de los otros métodos, de forma que se consigue el efecto de navegación dentro de la SPA.

Información Relevante

¿Que es una SPA?

Single Page Application, son aplicaciones web que funcionan enteramente con un solo HTML que es modificado durante la ejecución mediante código JavaScript.