Dos en la misma sala
MushRog quedó online. Una persona hospeda la sala desde el menú, hasta tres entran por IP, y todos pelean contra la misma Salamandra. Cuando alguien hace una Sobrecarga, los demás ven la explosión y su nombre en la esquina de la pantalla.
Por qué
La fase 1 existe para responder una pregunta: ¿la simulación de combate que hicimos offline aguanta convertirse en autoridad de servidor sin cambiar? Aguantó. El código que decide daño, reacción, cambio y esquiva es exactamente el mismo, y solo cambió quién lo llama.
Cómo funciona
El servidor corre la simulación a 20 ticks por segundo. Los jugadores mandan solo intención (caminar para allá, usar la skill 2, cambiar), y el servidor comprueba alcance, cooldown y maná y devuelve el estado de la sala y los eventos de ese tick. El cliente no simula nada online: guarda un espejo del estado y dibuja, interpolando posiciones entre un tick y otro para que no se vea trabado.
Se puede hospedar y jugar en el mismo proceso, o levantar un servidor sin pantalla para que los demás entren. El menú tiene las tres opciones: solo, hospedar, entrar.
El jefe gana vida según entra gente: 1,7 veces para dos, 2,4 para tres, 3 para cuatro. La sala se reinicia sola unos segundos después de una victoria o una derrota.
Para probar, pusimos dos bots sin pantalla en el servidor, caminando, soltando Faísca y comprobando que uno ve al otro. Esta prueba corre junto con las demás en cada cambio.
Todavía falta login, creación de personaje y la ciudad. Por ahora cada quien entra con el equipo estándar de Mago y Guerrero.
Siguiente paso
Login y creación de personaje, para que cada quien entre con su propio equipo.
Cambios
- feat(client,net): online rooms for up to 4 players
Menu with solo, host-and-play and join. Listen host plays as p1; the room resets a few seconds after win or wipe; boss HP scales with the number of players. Client mirrors server state, interpolates between snapshots, renders every team with name and HP, and animates casts from a new cast event. tools/net_test.sh runs a dedicated server with two headless bots. Version 0.0.2.