Skip to content

Jorger/Space4

Repository files navigation

🚀 Space4

Space4 es un juego realizado para la edición 2021 de la JS13k, cuyo tema es SPACE.

En está competencia existe la categoría de server, en la cual se entrega un proyecto el cual ya tiene configurado lo necesario para establecer una conexión en tiempo real, en este caso haciedo uso de la popular librería conocida como socket.io, la idea es que el juego comprimido en un acrhivo .zip no supere los 13KB, para este juego el archivo que contiene todo el juego y que pesa 13 KB, es el denominado dist.zip, los archivos comprimidos está ubicados en la carpeta public, de la misma forma los archivos no comprimidos del juego se encuetran en la carpeta public_uncompressed

📖 Reglas.

rules

  • En un turno, un jugador toca una columna para dejar caer un "meteoro".
  • Los jugadores se turnan para colocar meteoros hasta que cada jugador obtenga cuatro de sus meteoros en una fila, columna o diagonal.
  • Cuando hay cuatro meteoros del mismo color seguidas, ese jugador gana!

🎮 Modalidades de Juego.

video_main.mov

El juego cuenta con dos tipos de modalidades como son:

  • 1️⃣ Offline: Que a la vez se componente de:

    • 👽 Two Players
    • 🤖 vs Bot
  • 2️⃣ Online: De la misma forma se compone de:

    • 🌎 Play Online
    • 🤝 Play with friends

1️⃣ Offline.

En está modalidad toda la actividad del juego se lleva a cabo en el mismo dispotivo, gracias al uso de service workers, el juego puede funcionar offline, además de ser un PWA

👽 Two Players

En esta modalidad la partida se llevará a cabo en el mismo dispositivo.

🤖 vs Bot

video_bot.mov

En esta modalidad se competirá vs un bot, es una modalidad que también sirve como práctica, a la vez se cuenta con tres modos de dificultad.

2️⃣ Online.

Está modalidad requiere conexión a internet, ya que se hará uso de websockets, se tienen las siguientes opciones:

🌎 Play Online

online

Esta modalidad nos permitirá inciar una partida con cualquier jugador que este conectado, se podría intepretar como una partida aleatoria, ya que se creará una sala con aquella persona que este disponible en ese momento, en esta partida además se encuenta con la opción de tener un "chat", para así darle un toque social al juego, cada uno usuario tiene 15 segundos para realizar su movimiento, si no lo hace en este lapso de tiempo se hará un lanzamiento aleatorio.

🤝 Play with friends

friends

Es una extensión de la modalidad anterior, pero en este caso se creará una sala privada, es decir, sólo aquellos usuarios que tengan el código de la sala podrán jugar la partida, se aplican las mismas funcionalidades de la modalidad anterior, contando con el mismo tiempo de lanzamiento y la capacidad de interactuar por medio de emojis.

En dispositivos móviles (y en algunos browsers en desktop) el usuario podrá usar la opción de share nativa, para compartir la url de la sala.

🏃‍♂️ Ejecución.

Este proyecto es un fork del proyecto original creado para está categoría, en este caso se requiere de NodeJS.

Instalación de dependencias.

npm i

Ejecución del proyecto

npm run start:dev

En este caso se el proyecto correrá en http:https://localhost:3000/

Nota:

Se recomiendo renombrar la carpeta public_uncompressed a public y ésta última ponerle otro nombre, para así ver los archivos sin compresión.

📦 Compresión de archivos.

Se utilizarán los siguientes herramientas para comprimir los archivos:

🔈 Sonidos.

Para los sonidos se uzó la librería ZzFX, la cual es una de las recomendadas entre los recursos de la competencia

👨🏻‍💻 Autor