Crossroads are a magical place in slavic folklore, where all places and directions meet. Amulets, talismans, unclean spirits and even the devil himself may be encountered. It’s a place where all directions meet, and all time fades away.
Slavic folktales are often about a character traveling far away through unknown lands to try to fulfill an impossible quest. Yaga is no different, and Ivan will find himself entering dangerous forests or enchanting swamps (or is it the other way around?). Being an oral tradition, folktales are often improvised and changed by the narrator, so what the hero meets in each place might be different from tale to tale. Which is why the levels in Yaga are procedurally generated, and this post will go into some technical details about how we achieve that.
Our level generation process is a mix between what we’ve seen in Binding of Isaac and Moon Hunters. We freely
stole borrowed techniques used in those games, but adapted them to our needs and narrative structure.
Goals & Quests
When writing the level generation, we wanted to achieve several goals:
- Most combat encounters should have a purpose besides just fighting
- Encourage exploration of each level
- Have a natural, organic layout
- Allow us to implement lock & key mechanics in some of the encounters
The life of a villager is hard and full of work. Will Ivan’s action add to their hardships, or make their lives a bit easier?
Not long ago we began working on concepts for Likho, a boss character that is supposed to attack from both melee and long range.
The initial idea for the range attack was based on shooting a beam from the eye and since the character is partially blind, it sounded cool to link this attack to her main disability.
A small bug led to spawning a swarm of hammers flying around Ivan. We’re likely going to turn this into a feature soon 🙂
Hello everyone, Flaviu here! I wanted to spend a few minutes to talk about how we came up with the art style for Yaga.
For every game I’ve worked on, the beginning has proven to be an extremely fun but challenging task, because you start off with a blank canvas (still scary to this day), some very broad limitations and your own imagination. But seeing everything come together step by step is very rewarding. And the limitations amount to having clear guidelines, which saves a lot of time and headaches along the way.
The process we used was simple: me and Andi would try out a bunch of things, then the whole team would get together and discuss. We’d talk about our choices, get feedback and then go back to draw some more. I wanted a more stylized approach, while Andi wanted something with a bit more polish and detail. This made the whole thing a bit difficult at times, but was a blessing in the long run as we would each come up with very different ideas and kept pushing each other’s vision.
What’s new in Yaga? Speech bubbles and provocative requests!