Skip to content

Gameoversv/HCIGAME

Repository files navigation

HCIGAME — Centro de Control Vial

Un juego de gestión de tráfico urbano desarrollado con Phaser 3 y TypeScript. Tomas el rol de operador del Centro de Control Vial y debes coordinar semáforos, gestionar emergencias y mantener el flujo vehicular bajo presión creciente.


Tecnologías

Herramienta Versión
Phaser 3 3.80.1
TypeScript 5.4.x
Vite 5.2.x
Node.js ≥ 18

Instalación y desarrollo

# Clonar el repositorio
git clone https://github.com/Gameoversv/HCIGAME.git
cd HCIGAME

# Instalar dependencias
npm install

# Servidor de desarrollo (http://localhost:5173)
npm run dev

# Build de producción
npm run build

# Vista previa del build
npm run preview

Controles

Teclado (desktop)

Tecla Acción
TAB Cambiar intersección seleccionada
C Cambiar semáforo de la intersección activa
U Deshacer último cambio de semáforo
E Atender emergencia (ambulancia) en la intersección activa
1 Usar power-up Control Automático
2 Usar power-up Despejar Congestión
3 Usar power-up Escudo
Click Interactuar con botones del HUD

Táctil (móvil)

UI Acción
Tocar intersección Seleccionar intersección
Tocar intersección activa Cambiar semáforo
HUD (botones en pantalla) Activar power-ups y acciones disponibles

Modo AR

Elemento Acción
Botón Modo AR en menú Activa AR (WebXR si está disponible)
Reticle + Colocar Tablero Aquí Fija la mesa de juego en una superficie
Botón Salir AR Sale de AR y restaura modo normal
Fallback sin WebXR Usa cámara trasera + inclinación del dispositivo

Estructura del proyecto

src/
├── ar/
│   ├── ARManager.ts           # Modo AR (WebXR + fallback cámara/orientación)
│   └── webxr-types.d.ts       # Tipos mínimos para APIs WebXR
├── config/
│   └── LevelConfig.ts         # Definición de niveles, misiones y umbrales de estrellas
├── objects/
│   ├── Intersection.ts        # Intersección con carriles, vehículos y lógica de cruce
│   ├── TrafficLight.ts        # Visual del semáforo
│   └── Vehicle.ts             # Tipos de vehículos con seguimiento de distancia
├── scenes/
│   ├── MenuScene.ts           # Menú principal
│   ├── LevelSelectScene.ts    # Selección de nivel con estrellas y puntuaciones
│   ├── BriefingScene.ts       # Pantalla pre-ronda con misiones y mejoras activas
│   ├── GameScene.ts           # Escena principal de juego
│   ├── HUDScene.ts            # Interfaz: puntuación, misiones, power-ups, clima, combo
│   ├── GameOverScene.ts       # Resultados de la ronda con progresión (XP/créditos)
│   └── StoreScene.ts          # Tienda de mejoras permanentes
├── state/
│   └── GameState.ts           # Estado global de la partida
├── systems/
│   ├── TrafficManager.ts      # Dificultad adaptativa, hora pico, colisiones
│   ├── MissionTracker.ts      # Seguimiento y evaluación de misiones por ronda
│   ├── PowerUpManager.ts      # Gestión de power-ups y sus cargas
│   ├── ComboSystem.ts         # Multiplicador de combo por aciertos consecutivos
│   ├── WeatherSystem.ts       # Sistema de clima dinámico con efectos visuales
│   ├── SaveManager.ts         # Persistencia en localStorage por nivel
│   ├── ProgressionManager.ts  # XP, créditos, nivel del jugador y mejoras desbloqueables
│   └── RoundMissionFactory.ts # Generador de misiones aleatorias por ronda
├── game.ts                    # Factory central para crear/destruir Phaser.Game
└── ui/
    └── TutorialOverlay.ts     # Tutorial paso a paso para el Nivel 1

Niveles

# Nombre Intersecciones Dificultad Características
1 Turno de Mañana 1 Fácil Tutorial integrado, tráfico ligero
2 Hora Escolar 2 Media Ambulancias activas, VIPs frecuentes
3 Hora Pico 2 Difícil Hora pico activada, clima dinámico
4 Caos Urbano 2 Extremo Máxima densidad, intervalos de hora pico cortos

Cada nivel se completa al cumplir todas sus misiones de ronda. Al terminar se otorgan entre 0 y 3 estrellas según la puntuación final.


Tipos de misiones

Tipo Descripción
survive_time Sobrevivir N segundos sin colapso
safe_crossings Completar N cruces peatonales seguros
clear_ambulances Desviar N ambulancias de emergencia
no_accidents Mantener accidentes por debajo del límite
keep_congestion Mantener congestión promedio por debajo de N%
score_target Alcanzar N puntos
handle_rush_hour Sobrevivir N oleadas de hora pico

Tipos de vehículos

Vehículo Comportamiento
🚗 Auto Vehículo estándar
🚌 Bus Lento, ocupa más espacio
🏍 Moto Rápida, tamaño reducido
🚛 Camión Muy lento, tamaño grande
🚑 Ambulancia Prioridad máxima — requiere intervención del operador
⭐ VIP Aparece periódicamente, bonus/penalización por tiempo de espera

Sistema de progresión

El jugador acumula XP y Créditos al terminar cada ronda. Los créditos se gastan en la Tienda para desbloquear mejoras permanentes:

Mejora Efecto
VIP Protocol Tiempo extra de tolerancia para vehículos VIP
Ops Training Multiplica recompensas y ajusta penalizaciones
Field Kit Cargas adicionales de power-ups y mayor duración
Dispatch Hub Tiempos de ambulancia mejorados
Control Center Bonus de score inicial y mayor capacidad de undo
City Grants Multiplica XP ganado y añade créditos extra por ronda

Power-ups

Power-up Tecla Efecto
Control Automático 1 Cambia el semáforo de la intersección activa cada 2.5s automáticamente
Despejar Congestión 2 Elimina vehículos en espera de la intersección activa
Escudo 3 Bloquea la siguiente penalización (accidente o VIP perdido)

Sistema de clima (niveles 3 y 4)

El clima cambia dinámicamente durante la partida:

Clima Efecto
☀️ Despejado Sin modificadores
🌧 Lluvia Vehículos más lentos, mayor tasa de spawn
🌫 Niebla Velocidad reducida moderada
⛈ Tormenta Mayor penalización, velocidad mínima

Persistencia

El progreso se guarda automáticamente en localStorage:

  • Estrellas obtenidas por nivel
  • Mejor puntuación por nivel
  • XP y créditos acumulados
  • Mejoras desbloqueadas
  • Nivel del jugador

Modo Infinito

Accesible desde el menú principal. Usa la configuración del Nivel 4 sin objetivos de misión. El juego continúa hasta el colapso total del sistema. Ideal para superar récords personales de puntuación.

About

Un juego de gestión de tráfico urbano desarrollado con Phaser 3 y TypeScript. Tomas el rol de operador del Centro de Control Vial y debes coordinar semáforos, gestionar emergencias y mantener el flujo vehicular bajo presión creciente.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors