Portfolio

Juego · FPS 3D

Overrun

Un shooter de oleadas que corre en una pestaña

La demo es una recreación del sistema, con datos inventados: el original es del cliente y no se publica. No hay que registrarse.

Pantalla de Overrun

El contexto

Un juego es la única cosa de este portfolio que no se puede explicar con una captura: o responde al mouse sin retraso o no existe. Overrun está para mostrar que lo que corre en el navegador ya no es una limitación —hay un bucle a sesenta cuadros, colisiones, enemigos que buscan al jugador y un final— y que se puede llegar ahí sin descargar nada: ni un modelo 3D, ni una textura, ni un archivo de audio.

Qué hace el sistema

  • Motor propio sobre three.js: bucle a 60 cuadros, colisiones contra el mapa resueltas eje por eje, rampas y plataformas, y disparo por rayo con impacto en el mismo cuadro
  • Tres armas que ganan en lugares distintos —la pistola nunca se queda sin balas, el subfusil es para la manada, la escopeta mata de un tiro a un metro y no hace nada a diez—, con su modelo en la mano, balanceo al caminar, patada al disparar y animación de recarga
  • Los enemigos sueltan botín: munición, botiquines y módulos que suben de nivel el arma que se está usando. Cuatro niveles por arma, y cada uno cambia la forma del modelo —freno de boca, cargador largo, mira— para que la mejora se vea y no sea sólo un número
  • Tres enemigos que piden tres cosas: moverse, administrar munición y usar la cobertura
  • Nueve oleadas escritas a mano y después una fórmula: la dificultad sube por composición y no multiplicando la vida, que es lo que se siente injusto
  • Una mejora elegida entre tres al azar después de cada oleada, con tope por mejora, para que dos partidas no sean la misma
  • Todo el sonido está sintetizado con osciladores y ruido blanco: cero archivos de audio, y arranca en silencio
  • El estado del juego no vive en React: el HUD se escribe directo en el DOM, porque un render por cuadro arrastra el juego