Website powered by

Unity 2.5D Turn-Based RPG Project - Kalm

Here’s a look behind the scenes of my ongoing JRPG project, Kalm — a 2.5D adventure built in Unity and inspired by my favourite Final Fantasy titles (VII, VIII, and X).

(Play the game here)
https://amario92.itch.io/kalm

After a mysterious comet crashes into the Kalm Lands, strange energy begins seeping through the earth.
Guided by fate, Zavian sets out to uncover its secrets — joined by Yuna, a close friend and an archer with secrets of her own.

This project started after I completed the Unity 2.5D Turn-Based Combat course from GameDev.tv, and quickly evolved into something much bigger.

I wanted to take what I learned and push it further — expanding both the visuals and gameplay systems to create something of my own.
The names and locations throughout Kalm subtly reference the Final Fantasy games that inspired its world.
Some of the character names draw inspiration from Sufi, Arabic and Persian culture.

🎮 Expanded Features:

- Custom Shader Graph screen transitions (shutters, fade)
- First playable area: Kalm Lands → Kalm Village
- JRPG-style location title animations and cinematic intro crawl
- More immersive UI work when entering zones.
- Original characters and dialogue, including an early story event with Zavian and Yuna
- Dialogue panels with options
- Character art for UI dialogue boxes (AI made)
- Environmental VFX and god rays tied to story events
- Persistent data and seamless overworld–battle transitions
- Area-based music triggers and unique SFX for each character (Extended audio logic: ensuring music resumes correctly after battle/scene transitions)
- Game over screen
- Prologue scene
- Main Menu scene
- Pause Menu
- Inspired story

and more!

It's still early days, but I'm pleased with the progress so far.
Act II – Shadows of the Forest

The next section of the game is in development!
The tone shifts significantly — darker atmosphere, heavier story beats, and more exploration.

Retro RPG Menu Sounds - leohpaz (OpenGameArt.org)
Game Over Music by Cleyton Kauffman - https://soundcloud.com/cleytonkauffman (OpenGameArt.org)
Title Screen Music - Philémon Weber (Helmet)
Main Menu Sounds / Battle Intro Sound - KillaMaaki (OpenGameArt.org)
Featuring Music by Matthew Pablo - RPG Battle Theme - "The Last Encounter" (OpenGameArt.org)
Prologue Music - "Time Has Come" - JRPG Chronicles: Golden Age Music Pack (OpenGameArt.org) - Mushra Games
Kalm Lands Music - "Map Exploration" - Mushra Games

Update 2.0

Update 2.0

Trailer for Part 2!

Pause menu

The effects you see are supposed to be tied to the game. Early on in the Kalm Lands area, you can see similar particles that are tied to the story.

I looked at gameuidatabase for inspiration, as it had a lot of JRPG UI banners.

Battle transition made via shader graph

This video showcases the dialogue system at work with some options.

Creating the main character's idle animation

Creating the main character's idle animation

The project started with a simple plain.

The project started with a simple plain.

It's always good to see how far the project has come. Screenshots like this really give you an idea of how primitive or basic the world is from the start.

It's always good to see how far the project has come. Screenshots like this really give you an idea of how primitive or basic the world is from the start.

Starting the terrain using the terrain builder. I used various tools to increase height.

Starting the terrain using the terrain builder. I used various tools to increase height.

Using the shaping tools, I made a valley for the level.

Using the shaping tools, I made a valley for the level.

Painting textures using the material that was provided from the course.

Painting textures using the material that was provided from the course.

Creating a walkway for the character.

Creating a walkway for the character.

In game

In game

In game with added textures and small hills.

In game with added textures and small hills.

Setting up grass triggers for battles.

Setting up grass triggers for battles.

Adding more terrain and textures to the level.

Adding more terrain and textures to the level.

Using the framework I learned at that point during the course, I created another terrain which was beyond the course.

Using the framework I learned at that point during the course, I created another terrain which was beyond the course.

Adding terrain textures to the cliffs for the battle area.

Adding terrain textures to the cliffs for the battle area.

Shaping the terrain for the battle area.

Shaping the terrain for the battle area.

Post processing look for the battle area.

Post processing look for the battle area.

Before the post processing!

Before the post processing!

Adding placeholder names in the battle UI

Adding placeholder names in the battle UI

Bottom text UI is a cool addition to the battle scene.

Bottom text UI is a cool addition to the battle scene.

Adding UI and the font.

Adding UI and the font.

Creating the party battle visuals.

Creating the party battle visuals.

Making two box colliders for the house prefab.

Making two box colliders for the house prefab.

Making the first town 'Kalm Village'

Making the first town 'Kalm Village'

Painting and elevating the stairs was quite difficult. I added a box collider to make the transistion for the player smoother.

Painting and elevating the stairs was quite difficult. I added a box collider to make the transistion for the player smoother.

Pre post processing

Pre post processing

Post processing for the win!

Post processing for the win!

Adding a prompt for the player to press.

Adding a prompt for the player to press.

Adding in dialogue using a dialogue programme that I found in the Unity Store. It was completely free and was really simple to use.

Adding in dialogue using a dialogue programme that I found in the Unity Store. It was completely free and was really simple to use.

Adding in choices for the dialogue was something I was looking into from the start of the project.

Adding in choices for the dialogue was something I was looking into from the start of the project.

Adding points of interest via the dialogue system.

Adding points of interest via the dialogue system.

Making the pause menu was quite fun thanks to a YouTube tutorial. One of my favourite parts of this project.

Making the pause menu was quite fun thanks to a YouTube tutorial. One of my favourite parts of this project.

Updated pause menu

Updated pause menu

This overworld area banner caused so many issues. The animation was broken and it took me days to figure out why it wasn't transitioning across the screen properly.

This overworld area banner caused so many issues. The animation was broken and it took me days to figure out why it wasn't transitioning across the screen properly.

I tweaked the main menu and settings to my liking. This was a ready to use MainMenu asset that saved a lot of time.

I tweaked the main menu and settings to my liking. This was a ready to use MainMenu asset that saved a lot of time.

I added special effects, changed the font, added the game name with a small colour animation and then finally, adding some music.

I added special effects, changed the font, added the game name with a small colour animation and then finally, adding some music.

At first I decided to try out the 'Star Wars' syle scrolling text but then opted to go for this style instead.

At first I decided to try out the 'Star Wars' syle scrolling text but then opted to go for this style instead.

Forbidden Forest

Forbidden Forest

Forbidden Forest
The abandoned fog....

Forbidden Forest
The abandoned fog....

Forbidden Forest
To think it started with just a duplicate scene (the first scene)

Forbidden Forest
To think it started with just a duplicate scene (the first scene)

Forbidden Forest
The layout is actually inspired by Kilika Forest from FFX.

Forbidden Forest
The layout is actually inspired by Kilika Forest from FFX.

Forbidden Forest
Early screenshots

Forbidden Forest
Early screenshots

Forbidden Forest
Early screenshots

Forbidden Forest
Early screenshots

Forbidden Forest
The back cliffs remind me of the San Siro!

Forbidden Forest
The back cliffs remind me of the San Siro!

Forbidden Forest
Early screenshots

Forbidden Forest
Early screenshots

Forbidden Forest
Playing around with the bridges.

Forbidden Forest
Playing around with the bridges.

Forbidden Forest top down view

Forbidden Forest top down view

Forbidden Forest side view

Forbidden Forest side view

Forbidden Forest

Forbidden Forest

Forbidden Forest
particles...way too many particles!
This dialogue is supposed to be when there are more than 2 characters.

Forbidden Forest
particles...way too many particles!
This dialogue is supposed to be when there are more than 2 characters.

Forbidden Forest with Loki the new character.

Forbidden Forest with Loki the new character.

Forbidden Forest side area

Forbidden Forest side area

Forbidden Forest
Entrance to the pond

Forbidden Forest
Entrance to the pond

Forbidden Forest.
I'm still unsure whether to flood the whole area and make it a little river.

Forbidden Forest.
I'm still unsure whether to flood the whole area and make it a little river.

Forbidden Forest.
Originally, I wanted a pond area that emitted a lot of particles.

Forbidden Forest.
Originally, I wanted a pond area that emitted a lot of particles.

This is when I added stat changes to be visually shown in the results page.

This is when I added stat changes to be visually shown in the results page.

I started looking at ways the player can get battle feedback.

I started looking at ways the player can get battle feedback.

Non level results page

Non level results page

At first, I had a white halo ring around the enemies, but then I opted for the classic FF glove look.

At first, I had a white halo ring around the enemies, but then I opted for the classic FF glove look.

Issues...so many issues!

Issues...so many issues!

It took a while to get this issue sorted. Having the information, icon, etc to be positioned correctly on load.

It took a while to get this issue sorted. Having the information, icon, etc to be positioned correctly on load.

Near final look at the results screen

Near final look at the results screen

I wanted to change the camera angle and UI for the boss battle to make it feel different to regular battle scenes.

I wanted to change the camera angle and UI for the boss battle to make it feel different to regular battle scenes.