It's all about Ulti

31/07/2023 13:48
Ulti is a very popular card game in Hungary. So naturally, when we were thinking about what type of mini game we could add to Behind the Beyond, Ulti was an obvious choice. From the very rough first version, it is now mostly complete, with a gorgeous and comprehensive tutorial that will also be completely voiced.
In case you are wondering about the illustrations on the cards...

Ulti is played with what's called Hungarian suited, or German suited cards. Those traditionally depict heroes and scenes of the story of Willian Tell, folk hero of Switzerland. You know, the guy who shot an apple on his own son's head with an arrow. I decided to change the illustrations to show a more fitting story: the epic poem János vitéz (John the Valiant) written by Sándor Petőfi. All cards, except the kings, show scenes from János vitéz. According to game lore, the official card decks in Behind the Beyond are always showing the actual king (or queen) of the country. When a new ruler is crowned, they commission a new deck, with the face of the monarch on those cards. The kings in this deck are the actual King of Behind the Beyond, painted in the year he was crowned (so this is the young king, he's older in the game).

difficulties of implementation

The first difficulty I faced with ulti is that is f*ing complicated.

Once you understand the whole thing, it's not too difficult, it's just a lot to take in. Every time I thought ok, now I finally understand everything I found an edge case where the rules turned upside down for seemingly no reason whatsoever. I have an analytical mind, I like it if things make sense. So when I asked someone 'hey, why is this rule different when we play the game this way?' and they answered 'because that's how it is', that just didn't do. So after a lot of thinking I managed to build a model of ulti that made sense to me.

So the next bit is, I have to teach this game to others. Now that's a tough nut!

My in-laws have been trying to get me into playing this game for years but somehow I couldn't make sense of the rules. The things is, Ulti actually has 7 slightly different types of games. The whole thing starts with potentially several rounds of bidding, and at that point you have to be comfortable with all seven game types and have a good understanding of the potential of the cards in your hand. For someone who just learned the rules and has zero experience playing, this is borderline impossible. So I though, instead of throwing people in on the deep end, let's skip the bidding first, and just learn and practice each type of game on its own. Once the players are comfortable with each game, then we can introduce bidding and everything else.

Normally, I am all about invisible tutorials, but this a card game. You have to know the rules, there's no exception. I opted for a visual tutorial as well, because in a lot of cases, seeing the rules in action makes them a lot easier to understand. However, I didn't want to trap the players in a lengthy explanation, so the tutorial lines are skippable one by one (just like the normal conversations in the game). I also put in some checkpoints where I ask the player if everything was clear so far, giving them the option to repeat the last bit, and also the option to quit the tutorial altogether. Sounds reasonable, right? It's all fun and games, but now I have 110 small animations for the complete ulti tutorial, haha... So far I haven't noticed any performance issues with it, so fingers crossed...

The innkeep's daughter

We love Ulti so much that we've written an entire side quest for it! And it involves the innkeep's daughter who now has a name: Zsuzsi (zhoo-zhi). Without spoilers, Zsuzsi is a big fan of Ulti, so players will learn most of the rules from her. Sadly, the voice actor from the demo could not continue recording for us, so we had to recast her. But worry not, because Rachel did an amazing job at her first recording session with us!
And thanks to Rachel, we can now let you take a peek at the first bit of the Ulti tutorials!

I had to cheat a little with the lipsync too. Basically, the lipsync system I implemented works like subtitles, but with animations. We have a number of phonemes (or mouth shapes if you like) defined in a list, and for each phoneme we have an animation to change the shape of the character's mouth. We use Papagayo-NG, a lipsyncing program, to break down the lines of text into phonemes and then align those phonemes to the audio. Papagayo does the breakdown using a dictionary. That means they have a huge list somewhere that says e.g. the word 'hello' breaks down to H-E-L-L-O. That's how it knows what phonemes to use for the text I feed it. It's all fine, except... well... I don't agree with some of their breakdowns, but most are acceptable. Although, there is a bit in Zsuzsi's tutorial where she says 'That's called: a trick.' When I was doing the lipsync for that line, it became obvious that this will not work. The breakdown for trick is T-R-I-K, but if you listen to Rachel, she says CH-R-I-K. And that's not me judging her pronunciation! I would say the same (or worse, lol). It just looks wrong with the T phoneme. To fix this, I changed the text to 'chick' to trick Papagayo into using CH. So according to the lipsync, she actually says 'That's called: a chick.' There. Now you know.