Luni
Programming & Game Design

Engineering #1: Luni's Isometric World

Navigation, pathfinding, and depth sorting were among the first challenges I tackled when Luni began in December 2024. Here's how those early experiments helped shape the game's foundation.

By Andrei Alexandru3 min read
Engineering #1: Luni's Isometric World

A character walking around a rock or passing behind a tree in a video game probably doesn't seem particularly complicated.
But when I started working on Luni in December 2024, making that happen in a 2D isometric world was one of the first challenges I wanted to tackle.
And, in a way, it was also a personal test.

The Technical Foundation

Before going too far into building the world, I wanted to answer a simple question: could I make a 2D isometric environment behave the way I imagined?
For me, that meant solving three essential problems: navigation, pathfinding, and depth sorting. I felt that if I could make these systems work together, I would have the confidence to move forward with the rest of the game. For the game I wanted to create, I considered this one of the biggest technical obstacles to overcome. There are other technical challenges I have in mind for Luni, but those belong to another chapter.

Three Challenges, One World

The goal was fairly simple to describe: I wanted characters to move naturally through an isometric environment, navigate around obstacles, and interact visually with the world around them. But there were several things to consider.

  • Navigation determines how characters move through the environment.

  • Pathfinding allows them to find their way toward a destination while avoiding obstacles.

  • Depth sorting creates the illusion of depth by making characters and objects appear in the correct order. When Orin walks behind a tree, the tree should cover him. When he moves in front of it, the opposite should happen.

Individually, these concepts are relatively straightforward to understand. Getting them to work together consistently in a 2D isometric world was another matter.

I spent roughly the first two to three months experimenting with C# prototypes in Unity, testing different approaches and gradually building a foundation I was happy with.
As development progressed, I slowly expanded these systems, introducing different elevation levels, slopes, animated obstacles, and other elements that brought new challenges of their own.
Each addition meant revisiting and adapting parts of the existing systems to make everything work together.

Almost Two Years Later

Since those first experiments, Luni has changed considerably. Much of the time has gone into developing gameplay systems, creating and refining artwork, exploring the visual direction, designing environments, and gradually bringing the world to life.
The early prototypes have given way to a much more complete game, with a visual identity that has evolved through plenty of experimentation.
There is still work ahead, but the world you see today is much closer to what I originally imagined.

And those early systems are still part of its foundations.

A Small Glimpse of Luni's 2D Isometric World

Orin navigating through Luni's 2D isometric world, moving around obstacles.
Orin in the isometric world