ORIGEN Y ATRIBUCIÓN
Estoy siguiendo el curso de Unity 2D RPG de AlexDev en Udemy para aprender las bases del desarrollo de RPGs en Unity. Una vez termine el curso, utilizaré el conocimiento adquirido y los assets reutilizables — combinados con recursos de itch.io — para construir Fallen Valkyrie como un juego propio y original. Mis conocimientos estan orientados a juegos como los que ya he publicado en itchio, un juego de naves de habilidad en 2D y un simulador en 3D de gestion de cocina en la que preparas platos de sushi. Ademas tengo pendientes de publicar otro shooter de naves 2D y un juego tipo arkanoid. Fallen Valkyrie es mi primer intento de hacer un RPG, y estoy emocionada por el proceso de aprendizaje que esto implica.
Todo el crédito y respeto para AlexDev por el excelente material de enseñanza. Este devlog existe para documentar el proceso con honestidad: de alumna a creadora.
📚 CURSO: ALEXDEV — UNITY 2D RPG (UDEMY)¿DÓNDE ESTAMOS?
LO QUE HAY HECHO HASTA AQUÍ
HASTA HOY · 05/03/2026
Llevo un tiempo robando horas al día para avanzar en este proyecto. De momento tengo bastante trabajo hecho en la lógica de la protagonista: movimiento completo, máquina de estados, salto, dash, deslizamiento por paredes y ataque. También tengo casi terminado el tilemap del primer nivel y estoy cerrando los ajustes del primer enemigo: un esqueleto.
DIARIO DE DESARROLLO
Las pequeñas victorias cuentan. Cada línea de código es un paso.
DETECCIÓN Y ATAQUE DEL ENEMIGO
Hoy he implementado la detección del jugador por parte del enemigo esqueleto y el sistema de ataque en rango. El esqueleto ahora detecta cuándo el jugador entra en su radio de visión, lo persigue y, si está dentro del rango de ataque, lanza su secuencia de golpe con animación completa.
La lógica está construida sobre la máquina de estados existente: se añadió un estado CHASE y un estado ATTACK que se activan por distancia. El daño al jugador queda conectado al frame exacto del swing de la animación de ataque.
AGRESIVIDAD Y RETIRADA: EL ESQUELETO SE ADAPTA
Hoy el esqueleto ha dejado de ser un muñeco de práctica. He implementado dos nuevos comportamientos que hacen la IA mucho más dinámica: en cuanto detecta al jugador, el enemigo aumenta su velocidad de movimiento para interceptarle con más agresividad. Ya no camina hacia ti, carga.
El segundo cambio es el más interesante: cuando la distancia al jugador cae por debajo de un umbral mínimo, el esqueleto activa un estado de retirada y retrocede para recuperar espacio. Esto crea un ciclo de combate real — el enemigo avanza, ataca, se aleja si estás demasiado encima y vuelve a cargar. El loop de pelea ya tiene ritmo.
COMBATE, VIDA Y MUERTE: EL ESQUELETO CAE
Gran sesión de combate hoy. El esqueleto ahora acelera en cuanto detecta al jugador — el cambio de velocidad de persecución a velocidad de carga es instantáneo y se nota, deja claro que te ha visto y viene a por ti. Con eso el loop de detección/persecución que ya tenía queda mucho más vivo.
También he cerrado el ciclo de combate completo: puntos de vida en el enemigo, efectos visuales en cada golpe recibido (flash + knockback) para que el impacto se sienta, y por fin la animación de muerte del esqueleto cuando su vida llega a cero. Ver caer al primer enemigo con su propia animación en vez de desaparecer sin más ha sido el momento más satisfactorio del proyecto hasta ahora.
EL DRAGÓN AZUL: UN NUEVO TIPO DE AMENAZA
Después de cerrar el ciclo de combate del esqueleto, tocaba subir el listón: el esqueleto era el enemigo de introducción, así que ahora estoy metida de lleno en el poderoso dragón azul, un enemigo con mucha más presencia y que va a exigir su propia máquina de estados desde cero.
De momento el trabajo se ha centrado en montar el esqueleto base: importar el sprite y sus animaciones, dejarlo detectando al jugador y probando el layout del combate en la escena de test. Es un enemigo grande y quiero que se note en pantalla, así que todavía estoy ajustando escala, hitbox y timing de las animaciones para que la lectura del combate sea clara antes de empezar con su set de ataques.