Crear un personaje que se sienta bien al controlar
El personaje debe responder inmediatamente, moverse con una velocidad estable, detenerse correctamente y representar visualmente la dirección hacia la que está mirando.
El player es el centro de toda la experiencia. Antes de construir el mundo necesitamos un personaje que pueda moverse, detenerse, orientarse, colisionar y cambiar de animación correctamente dentro de un juego top-down.
El objetivo no es crear todavía un personaje con todas las habilidades del juego final. Queremos construir una base técnica estable que podamos ampliar durante las siguientes fases.
El personaje debe responder inmediatamente, moverse con una velocidad estable, detenerse correctamente y representar visualmente la dirección hacia la que está mirando.
No construiremos herramientas, combate, inventario, recolección, diálogos ni construcción durante esta fase.
Antes de programar debemos saber cómo queremos que se comporte el personaje. Estas respuestas se convertirán después en decisiones técnicas.
La perspectiva determina las animaciones, las colisiones, la dirección y la forma de explorar el escenario.
Debemos elegir controles simples que funcionen con teclado y que después puedan adaptarse a un mando.
Un juego top-down normalmente necesita desplazamiento libre, aunque visualmente utilice cuatro direcciones.
Debemos decidir si el personaje se detiene inmediatamente o conserva una pequeña inercia.
La dirección del personaje será importante cuando agreguemos herramientas e interacción.
Necesitamos una condición clara para evitar seguir agregando funciones indefinidamente.
El personaje no es solamente una imagen. Está compuesto por diferentes partes que trabajan juntas para producir una experiencia jugable.
Recibe las instrucciones del jugador: arriba, abajo, izquierda y derecha.
Convierte la dirección recibida en velocidad y desplaza al CharacterBody2D.
Evita que el personaje atraviese paredes, árboles, rocas y otros obstáculos.
Guarda hacia dónde mira el personaje aunque se encuentre detenido.
Selecciona la animación correcta según el movimiento, la dirección y el estado.
Organiza comportamientos como estar quieto, caminar, usar una herramienta o recibir daño.
Cada nodo debe tener una responsabilidad clara. No debemos colocar todos los sistemas directamente dentro del nodo principal sin organización.
Esta es la estructura inicial recomendada para la escena Player.tscn. Puede ampliarse después, pero contiene únicamente los nodos necesarios para esta fase.
Controla el movimiento general y representa físicamente al personaje.
Muestra y reproduce las animaciones correspondientes.
Define la zona física que puede chocar contra el escenario.
Decide si el personaje está quieto, caminando o realizando otra acción.
Guardará la posición hacia la que el personaje interactúa en fases posteriores.
El movimiento debe sentirse predecible. Los controles deben comportarse igual sin importar la dirección en la que camine el personaje.
Moverse en diagonal no debe hacer que el personaje avance más rápido. La dirección debe normalizarse.
CharacterBody2D resolverá las colisiones y permitirá deslizarse junto a paredes.
Utilizaremos una propiedad exportada para probar diferentes velocidades sin modificar constantemente el código.
Primero calculamos cómo se mueve el personaje. Después decidimos cómo debe representarse visualmente.
Aunque el personaje pueda moverse diagonalmente, durante el primer prototipo utilizaremos cuatro direcciones visuales para mantener el alcance controlado.
El personaje muestra la espalda.
El personaje mira hacia la cámara.
Perfil orientado hacia la izquierda.
Perfil orientado hacia la derecha.
La colisión no debe cubrir todo el sprite. En un juego top-down normalmente representa los pies y la zona que toca el suelo.
Esto permite que la parte superior del sprite pueda pasar visualmente delante de objetos como arbustos o decoraciones.
Una colisión demasiado grande hace que el personaje parezca chocar con objetos antes de tocarlos.
Una cápsula o círculo suele comportarse mejor que una forma rectangular al pasar cerca de esquinas.
Esto ayudará después a ordenar correctamente los personajes y objetos por profundidad.
Durante esta fase solo necesitaremos dos estados. Sin embargo, construiremos la estructura pensando en futuras acciones.
Un estado representa lo que el personaje está haciendo en un momento determinado. El player no debería intentar estar quieto, caminar y usar una herramienta al mismo tiempo.
El player será ampliado en otras fases. Ahora debemos evitar convertir esta etapa en el desarrollo completo del personaje.
No construiremos todo al mismo tiempo. Cada misión debe funcionar antes de comenzar la siguiente.
Crear las acciones move_up, move_down, move_left y move_right.
Construir la estructura inicial usando CharacterBody2D como nodo principal.
Leer el input, normalizar la dirección, calcular la velocidad y utilizar move_and_slide().
Colocar una forma pequeña en la zona de los pies y probarla contra paredes.
Mantener la última dirección incluso cuando el jugador deja de moverse.
Crear y reproducir las animaciones correspondientes a cada dirección.
Separar los comportamientos básicos dentro de una máquina de estados sencilla.
Probar movimiento, diagonales, paredes, esquinas, dirección y cambios de animación.
La fase termina cuando el player puede utilizarse como la base real del juego. No debe depender de trucos temporales ni presentar errores visibles durante las pruebas.
Al terminar esta fase tendremos un personaje top-down que responde correctamente, se orienta, se anima y colisiona con el escenario. Esta será la base sobre la que construiremos la cámara, la interacción, las herramientas y todos los sistemas futuros de IslandCrafter.