← Volver a proyectos

Game design · WebGL · Voxel

Kingdom Wars

Un juego web de artillería táctica voxel por turnos donde la balística, el movimiento y la destrucción transforman el campo de batalla.

Un campo de batalla que cambia con cada disparo

Kingdom Wars es un juego web de artillería táctica voxel por turnos. Dos reinos separados por el Río Bruma se enfrentan mediante armas balísticas sobre un escenario que puede dañarse y cambiar durante la partida.

La idea combina la lectura inmediata de los clásicos del género con un sistema propio de reinos destructibles. Ángulo, potencia, deriva, viento y posición forman un conjunto de decisiones comprensible, mientras que cada impacto puede abrir una línea de tiro, retirar cobertura o alterar una ruta.

El vertical slice actual permite jugar una batalla completa contra una IA. Incluye tres guardianes por reino, turnos alternos, movimiento táctico, previsualización de trayectoria, tres armas con comportamientos distintos, daño radial, condiciones de victoria y estadísticas finales.

Destrucción como parte de la táctica

El terreno y las construcciones no son únicamente decoración. El mundo mantiene datos voxel autoritativos para daño y colisión, separados de su representación visual en Three.js. Cuando una explosión modifica el escenario, sólo se reconstruyen los chunks afectados.

El sistema trabaja con dos escalas: una cuadrícula amplia para el terreno y otra más detallada para castillos, puentes y edificios. Un kit medieval compone torres, murallas, puertas, almenas, casas, molinos, mercados, pozos y otros elementos reconocibles desde la cámara de juego.

Roca Real, Barril Ígneo y Fragmento Solar combinan daño, radio, munición y presentación propios. Fragmentos físicos, humo, fuego, luz y movimiento de cámara ayudan a que el efecto de cada impacto se entienda sin separar la información táctica del espectáculo visual.

Una arquitectura web para experimentar rápido

El juego utiliza TypeScript, React, Three.js y Vite. Three.js mantiene la escena, la cámara, la simulación, los proyectiles y el render voxel; React se encarga del shell, el HUD, los paneles y los modales mediante snapshots y acciones serializables.

Esta frontera permite comprobar las reglas de combate fuera del renderer y evita convertir objetos mutables de Three.js en estado de interfaz. Vitest, Testing Library y Playwright cubren dominio, UI y recorridos de navegador, mientras que varios perfiles de calidad ajustan sombras, oclusión ambiental, vegetación, partículas y resolución interna.

El audio también se genera en tiempo real mediante Web Audio. No depende de archivos musicales o de efectos externos para comunicar carga, disparos, impactos y transiciones de turno.

Estado actual y próximos pasos

Kingdom Wars está en desarrollo y su alcance verificable es todavía una vertical slice desktop-first. La experiencia actual se ha diseñado alrededor de un viewport de escritorio y controles de teclado y ratón; tablet, móvil y mandos no se presentan como soporte terminado.

La visión a largo plazo incorpora batallas breves con consecuencias, progresión entre eras y una civilización que evoluciona visual y mecánicamente. Esas capas todavía no forman parte del prototipo jugable. Tampoco existen aún campaña persistente, economía, construcción entre batallas ni un contrato completo de replay determinista.

El resultado actual permite evaluar la sensación central: apuntar, decidir cuánto arriesgar, disparar y observar cómo el escenario cambia la siguiente decisión.

Explorar el proyecto