Juego 3D de robots hechos de bloques de madera (tipo Jenga) con un dado como piloto. Hecho con Three.js y cannon-es, sin instalar nada.
npm install # solo la primera vez
npm start- En este ordenador: http://localhost:8080
- En otra PC de tu Wi-Fi: http://IP-DE-ESTE-MAC:8080 (el servidor muestra la IP al arrancar)
- Desde otra red (internet): en otra terminal
npm run tunnely comparte el linkhttps://….trycloudflare.comque aparece.
En el menú: Jugar en red → uno crea la partida (elige Rojo o Azul y el mapa) y el otro se une con el código de 4 letras. El que crea la partida calcula la física; el otro recibe el estado 30 veces por segundo. Al terminar, Revancha vuelve a elegir robots (o crear uno nuevo en el Taller) sin salir de la sala, tantas veces como queráis; el marcador se va sumando.
- Cámara y mira: haz clic en la mesa y el ratón pasa a mover la cámara; la mira es el centro de la pantalla (Esc suelta el ratón).
- Disparar: clic. Si apuntas al aire, el bloque sale directo a toda potencia hacia donde miras.
- Guerra total: cada disparo es una ráfaga de 3 bloques; la mira y la barra de munición muestran la recarga.
- Moverse: W/S adelante y atrás, A/D de lado, ← → giran el robot (la cámara no gira con él). ↑ ↓ cambian el arco.
src/: el código, dividido por partes (se juntan en orden):1-head.html: estilos, menú y pantallas2-world.js: render, texturas y física básica3-scene.js: bloques, robots, ventilador y miniaturas3b-maps.js: mapas (mesa, obstáculos, luz)4-game.js: partida por turnos, mira de precisión y caminar4b-picker.js: elegir robots y mapa4c-builder.js: Taller para diseñar robots5-ai.js: rival de la computadora5b-war.js: modo Guerra total (sin turnos)5c-net.js: multijugador en red (salas, sincronización)6-loop.js: cámara, controles y bucle principal
server.js: servidor (sirve el juego y conecta a los jugadores por WebSocket).build.sh: junta todo enindex.html(la versión que se publica) ypreview.html(para probar en local).
Después de cambiar algo en src/, ejecuta ./build.sh.
Los robots guardados en el Taller viven en el navegador (localStorage).