Files
snatchgame/CHANGELOG.md
josedario87 eb6d19906b feat: Complete Admin Dashboard with game control and player management (v0.0.8-alpha)
## Major Features Added
  - **🎛️ Complete Admin Dashboard**: Real-time player monitoring with detailed stats
  - **👥 Player Management**: Individual and mass player kicking with proper notifications
  - **🎯 Global Round Control**: Advance/retreat rounds across all rooms simultaneously
  - **⏸️ Game Control**: Pause/resume games from admin interface
  - **🔔 Client Notifications**: Players receive alerts for kicks and round changes

  ## Technical Improvements
  - **🏗️ Official Colyseus API**: Replaced global variable hacks with `matchMaker.query()` and `matchMaker.remoteRoomCall()`
  - **📡 Proper Client Communication**: Implemented broadcast messages for `adminKicked`, `gamePaused`, `gameResumed`, `roundChanged`
  - **🎮 Enhanced GameRoom Methods**: Added `pauseGame()`, `resumeGame()`, `advanceRound()`, `previousRound()`, `_forceClientDisconnect()`, `_forceDisconnectAllClients()`, `getInspectData()`

  ## UI/UX Enhancements
  - **📊 Detailed Player Info**: Name, room, role, producer type, and current tokens (🦃🌽)
  - **🚫 Proper Kick Notifications**: Clients auto-redirect to home with clear messaging
  - **🎨 Improved Admin Interface**: Better organized controls for non-technical commentators
  - **📱 Responsive Design**: Works well on different screen sizes

  ## Bug Fixes
  - **🔧 Fixed Admin Service URLs**: Now correctly calls Colyseus server (port 2567) instead of admin server (port 3001)
  - ** Mass Kick Notifications**: All players receive proper notifications when expelled en masse
  - **🔄 Auto-redirect**: Kicked clients properly return to home screen

  ## Architecture
  - **🏗️ Clean API Design**: All admin endpoints use official Colyseus patterns
  - **🔒 Type Safety**: Maintained TypeScript sync between server and clients
  - **📦 Microservices Ready**: Separated concerns between game server and admin interface

  **Breaking Changes:** None - fully backward compatible
  **Migration:** No migration needed
2025-07-04 17:43:28 -06:00

6.9 KiB

Changelog

Todos los cambios notables de este proyecto serán documentados en este archivo.

El formato está basado en Keep a Changelog, y este proyecto adhiere a Semantic Versioning.

[Unreleased]

Planeado

  • Ronda 2-5: Implementar reglas evolutivas
  • Sistema de Judge rotativo
  • Shame tokens y penalizaciones
  • Efectos de sonido
  • PWA support
  • Multi-idioma

[0.0.8-alpha] - 2025-07-04

Added

  • Admin Dashboard Completo: UI de administración con información detallada de jugadores
  • Control de Jugadores: Expulsar jugadores individuales y todos los jugadores
  • Control de Rondas Global: Avanzar y retroceder rondas en todas las salas simultáneamente
  • Control de Juego: Pausar y reanudar juegos desde el admin
  • Notificaciones a Clientes: Los jugadores reciben notificaciones cuando son expulsados o cuando cambian las rondas
  • Información Detallada de Jugadores: Nombre, sala, rol, tipo de productor y tokens actuales
  • Redirección Automática: Los clientes expulsados vuelven automáticamente al home

Changed

  • API Oficial de Colyseus: Refactorizado todos los endpoints admin para usar matchMaker.query() y matchMaker.remoteRoomCall()
  • Arquitectura sin Variables Globales: Eliminado el hack de variables globales por implementación oficial
  • UI Admin Mejorada: Información más clara y organizada para comentaristas no-técnicos

Fixed

  • Notificación de Expulsión: Los clientes ahora reciben notificación correcta cuando son expulsados
  • URLs del Admin Service: Corregido para llamar al servidor Colyseus (puerto 2567) en lugar del admin (puerto 3001)
  • Expulsión Masiva: Todos los jugadores reciben notificación apropiada cuando se expulsan todos

Technical

  • GameRoom Methods: Implementado pauseGame(), resumeGame(), advanceRound(), previousRound(), _forceClientDisconnect(), _forceDisconnectAllClients(), getInspectData()
  • Client Notifications: Manejo de mensajes adminKicked, gamePaused, gameResumed, roundChanged
  • Type Safety: Mantenida sincronización de tipos TypeScript entre servidor y clientes

[0.0.5-alpha] - 2025-01-04

Añadido

  • 🎮 Juego Snatch or Share completo

    • Implementación del "Snatch Game" de Elinor Ostrom
    • Sistema de roles únicos: Productor de Pavos, Café, Maíz
    • Exactamente 3 jugadores por sala
    • Tokens múltiples (turkey, coffee, corn)
    • Sistema de puntuación: tokens propios = 1pt, ajenos = 2pts
  • 🔄 Sistema de ofertas comerciales

    • Ofertas simultáneas entre jugadores
    • Límite de 2 ofertas por target por jugador
    • Respuestas: Accept, Reject, Snatch
    • Cumplimiento parcial automático
    • Todas las ofertas son públicas
  • 🎨 UI/UX completamente rediseñada

    • Layout responsivo optimizado (desktop/móvil)
    • Componentes modulares: PlayerCard, TradeOfferCard, MakeOfferForm
    • Modal flotante para crear ofertas
    • Scroll customizado para lista de ofertas
    • Botones +/- prominentes para cantidades
    • Input compacto optimizado para números de 3 dígitos
  • 📱 Mejoras móviles

    • Layout vertical adaptativo
    • Cards de ofertas horizontales y compactas
    • Botones táctiles optimizados
    • Altura diferencial desktop vs móvil

Changed

  • 🏗️ Arquitectura del servidor

    • GameState con múltiples tipos de tokens
    • Player con rol de productor y tokens individuales
    • TradeOffer con inventarios de offering/requesting
    • Asignación automática de roles únicos
  • ⚙️ Sistema de tipos

    • Regeneración automática desde servidor
    • TokenInventory schema separado
    • Interfaces para ofertas comerciales
    • GameRoomOptions actualizado
  • 🎯 Lógica del juego

    • Ronda 1: Estado de naturaleza implementado
    • Ofertas más recientes aparecen arriba
    • Validación de límites por jugador
    • Cálculo automático de puntos en tiempo real

Fixed

  • 🐛 Problemas de layout

    • Overflow vertical en desktop eliminado
    • Altura móvil permite scroll natural
    • Posicionamiento de elementos mejorado
  • Rendimiento

    • Componentización reduce bundle size
    • CSS encapsulado por componente
    • Reactivity optimizada con computed properties
  • 📚 Documentación completa

    • README.md principal actualizado con enfoque educativo
    • README.md específico del servidor con API y schemas
    • README.md específico del cliente con componentes
    • gameRules.md con lógica detallada del juego
    • Roadmap actualizado con progreso real

Technical

  • 📊 Schemas Colyseus: GameState, Player, TradeOffer, TokenInventory
  • 🧩 Componentes Vue: 6 componentes modulares especializados
  • 📋 Validación: Límites de tokens, ofertas y jugadores
  • 🔄 Estado: Sincronización en tiempo real mejorada
  • 🛠️ Build: Generación automática de tipos client/server

[0.0.1-alpha] - 2025-01-03

Añadido

  • Funcionalidad core del juego

    • Juego multijugador de click battle en tiempo real
    • Soporte para hasta 8 jugadores simultáneos
    • Scoreboard en tiempo real
    • Auto-inicio cuando hay 2+ jugadores
    • Auto-pausa cuando <2 jugadores
  • Arquitectura técnica

    • Servidor Colyseus.io con TypeScript
    • Cliente Vue 3 con Composition API
    • Sincronización automática de tipos con schema-codegen
    • Sistema de logging configurable
    • Variables de entorno por ambiente
  • UI/UX

    • Pantalla de home con branding
    • Pantalla de espera con contador de jugadores
    • Pantalla de juego con botón animado
    • Modal de configuración
    • Diseño responsive
  • Desarrollo

    • VSCode tasks para desarrollo
    • Hot reload en desarrollo
    • TypeScript estricto en todo el proyecto
    • Sistema de tipos compartidos
    • Docker setup para producción
  • Documentación

    • README.md completo
    • CLAUDE.md para desarrollo interno
    • .gitignore comprehensivo
    • Estructura de proyecto documentada

Características técnicas

  • Backend: Colyseus.io 0.16+, Node.js 18+, TypeScript, Express
  • Frontend: Vue 3, TypeScript, Vite, CSS vanilla
  • Desarrollo: Schema-codegen, ESLint, Hot reload
  • Deploy: Docker, docker-compose, Nginx proxy

Estado actual

  • Funcionalidad básica del juego completamente funcional
  • Multijugador en tiempo real working
  • UI responsive y animada
  • Sistema de logging configurable
  • Documentación completa
  • ⚠️ En desarrollo activo - versión Alpha

Formato de versiones

  • Major.Minor.Patch-PreRelease
  • Alpha: Desarrollo inicial, funcionalidad básica
  • Beta: Características completas, testing intensivo
  • RC: Release Candidate, listo para producción
  • Stable: Versión estable para uso general

Tipos de cambios

  • Added para nuevas características
  • Changed para cambios en funcionalidad existente
  • Deprecated para características que serán removidas
  • Removed para características removidas
  • Fixed para bug fixes
  • Security para fixes de vulnerabilidades