Ir al contenido

Juegos online

Totometeo

Juego online de pronósticos meteorológicos por ligas: los jugadores predicen el tiempo real y la puntuación sale automáticamente de los datos de Open-Meteo.

TipoJuegos online

El problema

Todo el mundo cree que sabe adivinar el tiempo. La idea de Totometeo era convertir eso en un juego por ligas, al estilo de la porra de fútbol TotoMondiale: los jugadores pronostican el tiempo de una ciudad a una hora concreta y los datos reales deciden quién puntúa. El juego tiene que funcionar solo: cerrar los pronósticos a tiempo, obtener el tiempo real, calcular los puntos y actualizar las clasificaciones, sin que nadie lo haga a mano.

Lo que construí

Construí Totometeo, un juego online de pronósticos meteorológicos con ligas públicas y privadas y puntuación automática a partir de datos meteorológicos reales.

  • Ligas — los jugadores crean ligas públicas o privadas e invitan a sus amigos con un código de 6 caracteres que excluye caracteres que se confunden fácilmente, como I, O, 0 y 1. Una liga general incluye a todos.
  • Jornadas y pronósticos — cada jornada contiene eventos meteorológicos con una ciudad, una hora y un plazo. Para cada evento, el jugador pronostica el estado del cielo, la temperatura, si lloverá o no, los milímetros de lluvia, la velocidad del viento y, de forma opcional, un evento poco frecuente como granizo o viento fuerte. Los pronósticos se pueden cambiar hasta el plazo; después quedan bloqueados.
  • Datos meteorológicos reales — tras el evento, la app lee los valores horarios de Open-Meteo y recurre al archivo histórico si faltan los datos de previsión. Los códigos meteorológicos de la WMO se asignan a las 7 condiciones del juego, y los eventos poco frecuentes se detectan a partir de los datos, por ejemplo viento de 50 km/h o más.
  • Motor de puntuación — 10 reglas de puntuación y 2 tolerancias, desde 5 puntos por acertar la condición exacta hasta una bonificación de 10 puntos por un evento poco frecuente. Cada puntuación se guarda con su desglose, para que el jugador vea exactamente de dónde salen sus puntos.
  • Automatización — una tarea programada cierra cada minuto los eventos vencidos; otra, cada 15 minutos, obtiene el tiempo real y puntúa hasta 25 eventos por ciclo.
  • Clasificaciones y administración — clasificaciones por liga, general e histórica, y un panel de administración para jornadas, eventos, consultas meteorológicas, puntuación, reglas, usuarios y ligas, con un registro de las acciones de los administradores.

Con qué está hecho

Node.js y Express con páginas EJS renderizadas en el servidor. MySQL o MariaDB mediante el ORM Prisma, con 10 modelos de datos. Sesiones con express-session y contraseñas cifradas con bcrypt. Tareas programadas con node-cron y procesos gestionados por PM2 detrás de Nginx. Los datos meteorológicos proceden de Open-Meteo, que no necesita clave de API.

Por qué se hizo así

Las reglas de puntuación están en la base de datos, no en el código. Los valores por defecto de la especificación del juego se cargan una sola vez durante la instalación, y después el administrador puede cambiar puntos y tolerancias desde el panel sin publicar una nueva versión. Como cada puntuación conserva su desglose, cualquier cambio en las reglas sigue siendo transparente para los jugadores.

¿Tienes una idea?
Hablemos.

Ya sea un sitio web, una app, un vídeo, una canción o algo más grande, estoy listo para ayudarte a hacerlo realidad.

Contáctame
  • Nápoles
  • Ideas
  • Proyectos
  • Personas
  • Siempre adelante