Patch Notes Archive

Home » Updates » Patch Notes Feed » Myriavora » Coming Soon: Emergency Mode

Patch notes are imported from steam. There may be errors. This mostly exists so I can stay on top of them to update the features in our tags and scoring categories (which I do manually), but since many of you liked the idea of staying up to date with all the games in one place I'm working on making this data automated (right now I manually hit it every couple days) with better info and linking in with the game views.

There will be more data and proper atribution here (original author, steam link, original post date, etc) real soon, I promise. This is just like a technical test to see if they're coming in ok at all.

Myriavora » Coming Soon: Emergency Mode

Myriavora launched on Monday, July 5th, 2021 and there has been a content update every Monday since. But there won’t be one today. The reason for that is rather weird and requires some explanation, but the short story is: I’m working on a new feature that I call Emergency Mode and I’ll need a few weeks to properly implement and test it. There won’t be any regular updates until it’s done.

For the long story, we’ll first need to take a look at Myriavora’s world map.

This screenshot is from my replay on the Infestation: Best Journey leaderboard. The replay comprises all 68 camps that are currently in the game. They cover roughly two thirds of the world map, so if I keep adding camps at this rate, I’ll end up at about 100 camps in the final version.

I play this journey on the hardest difficulty level (Hero), and so far it resulted in a total score of just over 500 million. I didn’t try very hard to achieve good scores most of the time, and with so many camps yet to come I estimate an experienced player to typically reach a total score of around 1 billion once the game is complete. Battles are generated procedurally, so with some luck and dedication, 2 billion might be achievable.

This got me worried! You see, Steamworks leaderboards use a 32 bit signed integer field to store scores, so the maximum value is just over 2 billion (2^31−1 or 2,147,483,647 to be exact). That’s way too close. If you’d manage to exceed that limit, your score would roll over and become negative.

Now, let me be perfectly clear that this is only an issue for the Infestation scenario. In Doomsday, you ever only get to fight at most seven battles, no matter how many camps there are. Yes, due to the much higher journey perks you tend to get much higher scores in the course of these seven battles, but I don’t think you can get even close to 2 billion. My current Doomday high score is about 450 million, and that’s after dozens of tries. I’m sure a talented and determined player can beat that score but certainly not double, let alone quadruple it.

So, how did this become a problem in the Infestation scenario? Why didn’t I realize there’s an issue sooner? Well, actually I did. The game has been storing scores internally as 64 bit integers for years now. Those have limits in the quintillions and there’s no way to exceed that whatsoever. This is not a new technology by any stretch of the imagination, so when I brought Myriavora to Steam, I fully expected the leaderboards to support 64 bit integers as well, but much to my disappointment they don’t.

I had no choice but to make some adjustments. For example, early versions of my game had a score multiplier that increased every few waves. I had to ditch it. I also edited the score tables for all spider types. But most importantly, I introduced a sleep mechanic to the Infestation scenario with the intention to only offer leaderboards for Best Battle and Best Day. And those boards will indeed never have a problem with the score limit due to their much smaller scope.

Unfortunately, I later decided to add the Best Journey board anyway. This was way before launch day, when the game only had twelve camps and I didn’t have a clear idea of how many would be in the final version. I thought, if need be, I would simply make the world map generator limit the number of camps accessible per journey. It doesn’t matter how many camps there are in the game if you can only access a random selection of, say, 50 of them at any given journey, right?

Well, yes, that would have worked. However, once early access had started, I quickly realized that adding new camps on a regular basis is going to annoy at least some players when there’s no easy way to access the new content. So I made the decision to let the world map generator automatically import new camps into existing journeys. Which totally makes sense, it’s just that it contradicts the idea of limiting the number of accessible camps. But at that point, this idea wasn’t on my mind anymore, it was just a low priority item on my to-do list. Inevitably, I forgot about it. Until now.

So, what to do? Well, here are some ideas that I contemplated but, ultimately, rejected.

  • Limit the number of accessible camps anyway?
    No, that’s way too annoying, at least during early access. Once I have a solution that does work in early access, I won’t need this one anymore.
  • Remove the Best Journey leaderboard?
    That would be easy, but a leaderboard for journeys is a very reasonable feature. I would hate to kill it. Especially for such a stupid reason.
  • Cap the journey score at 2 billion?
    Another easy solution, but it would go against everything a leaderboard is for in the first place. Sooner or later people would start to pile up at the cap. No. Just no.
  • Store an IEEE floating point value in the leaderboard?
    Floating point values have much higher limits than integers. And it would work with the leaderboards because the bit representation of IEEE floating point values can be ordered exactly the same way as integer values. The leaderboards wouldn’t even know the scores are floating point values and still sort correctly.
    It’s a fantastic idea with one major flaw: floating point values have limited precision. Which is to say, if you beat another player’s score by only a few points, you may get the same floating point value and end up below that other player’s entry. Even if that happened rarely, it would be infuriating. That’s just not acceptable.

Ok then. How am I going to solve the problem? Well, the basic idea is that after a certain number of fights (probably 68 to maintain compatibility with potentially existing replays) spiders all over the world start a large-scale invasion. There will be more and harder waves at all remaining camps, which makes them automatically switch to a new emergency mode. This will introduce two new elements to combat:

  • a time limit
    As soon as combat starts, a perimeter shield will begin to charge. It will activate after 15 minutes and prevent any more spiders from entering the camp. Once you’ve killed all spiders that are already inside the camp, the fight is over. Of course, if you manage to defeat all waves before time runs out, the fight will end as well.
  • access to special emergency skills
    These skills will convert your score to useful stuff like health, power, or super points. You’ll be required to equip at least one of them in each wave, which means you’ll always end up with no score as it gets converted to something else.

Since emergency battles will always end with no score, they provide a way for me to limit the number of camps that can contribute to your total score without preventing you from exploring all camps. The perimeter shield / time limit wouldn’t strictly be neccessary, but I think it’s a cool addition and fits the theme.

In fact, I think this would also be a cool feature to be used strategically. I’m considering to allow players to manually activate emergency mode for individual camps, for example to help overcome very difficult battles.

However, all of this is subject to change. There’re a lot of things to consider, like replay compatibility or whether it’s going to enable exploits. Planning, implementation, and testing are going to take a couple of weeks. I hope to be able to release the next update at the end of March or beginning of April.

Any ideas, thoughts, or suggestions would be more than welcome, just drop a comment below!