2D Top-Down RPG • WIP (Tools/Prototype)
Engine: Unity 2022 LTS • Language: C# • Role: Solo Developer • Art: Custom player sprite + licensed tileset
Overview
Early work-in-progress top-down RPG. I assembled a playable sample scene, wired up 8-direction movement with animation parameters, and began a pixel-art pipeline for the player sprite while integrating a purchased tileset. Goal: validate controls/readability and a clean art workflow before deeper systems.
Footage
Image Gallery
What I built (programmer focus)
Player movement & animation state
- Reads raw input (WASD/Arrow) into a 2D vector, moves in
FixedUpdate, and drives the Animator withHorizontal,Vertical, andSpeedparameters. - Idle vs walk transitions by
Speed(squared magnitude) so the blend tree stays stable on cardinals/diagonals.
// PlayerMovement.cs — input, movement, and animator parameters (excerpt)
public float moveSpeed = 5f;
private Vector2 movement;
private Animator animator;
void Update() {
movement.x = Input.GetAxisRaw("Horizontal");
movement.y = Input.GetAxisRaw("Vertical");
UpdateAnimation();
}
void FixedUpdate() {
Vector3 delta = new Vector3(movement.x, movement.y, 0f) * moveSpeed * Time.fixedDeltaTime;
transform.position += delta;
}
void UpdateAnimation() {
if (movement.x != 0 || movement.y != 0) {
animator.SetFloat("Horizontal", movement.x);
animator.SetFloat("Vertical", movement.y);
animator.SetFloat("Speed", movement.sqrMagnitude);
} else {
animator.SetFloat("Speed", 0);
}
} Art workflow (pixel)
- Custom player sprite authored at a fixed pixel density; tileset is licensed/credited and assembled in Unity Tilemap.
- Consistent palette/outline so the character reads against purchased tiles.
WIP scope & next steps
- Polish blend tree (8-dir + idle facings), add run/crouch variants.
- Tilemap collision + interact system (talk, pickup, open).
- Camera framing + screen-space UI mock (quests/inventory).
Note: Active WIP prototype; systems and art will evolve.