Spellbreak’s bots are a bad solution to a real problem

(topic: )

Spellbreak has bots in it for two distinct reasons.

Onboarding

The first reason is onboarding new players.

Isn’t that what a tutorial is for? Well, yeah, but tutorials only go so far. Outside of giving a very brief overview of the core controls—things like “Press space to jump and hold it to levitate”, and “Click these buttons to shoot and cast spells”, and “Press this button to pick stuff up”—they aren’t gonna do much. Every extra step in the tutorial is an added risk you’ll overwhelm the player to the point of boredom. If you’re lucky, they just quit the tutorial when this happens. But they could also quit the game entirely and never try it again.

The developers know this, so the tutorial is just the first step of easing a new player into the game.

The second step is the player hops into their first game, but it’s sneakily filled entirely with bots. The player gets to run through the whole game, getting a feel for every stage of it, from the airdrop into the initial, large circle, all the way to the final, tiny circle. They’ll get a grip on how moving around the map, looting, and fighting works, and they’ll experience a whole variety of elemental interactions. These are things you can’t convey effectively with a tutorial, so for onboarding players, bots are a clever solution.

This use of bots is not what the title is referring to.

Queue times

The second reason bots are in Spellbreak, and what the title refers to, is queue times.

The battle royale mode needs 42 players to start. That might not seem like a lot for a game without skill-based matchmaking, but if we’re on a server with a smaller population, at non-peak hours, split between multiple modes, multiple consoles, and multiple active games, then 42 suddenly looks like a pretty big number. In these situations, if players had to wait until the lobby fills, some might give up, and then other players see the lobby size go down and they give up too. With this snowball effect, there’s a very real risk the lobby might never fill at all.

So regardless of how the queue is handled, there’s gonna be times where we need to start a game with less than 42 players. In that situation, we should just fill in the missing players with bots, right?

To answer that, we need to think about what effect bots have on the game.

Effect of bots on the game

And… that’s it. They don’t even make good target practice because they barely move.

Now, while these effects are arguably negative on the whole, they’re mostly insignificant.

The problem isn’t really the bots. It’s that they don’t solve the real problem.

The real problem that needs solving

The map is designed for 42 players. It takes 12 minutes and 30 seconds to get to the final circle, which is expected to have 2–6 players in it. This is about 4 halvings of the players, or 1 halving every 3 minutes. In other words, it’s expected that you’ll have a decisive fight around every 3 minutes. Given that fights can sometimes take that long, this could mean having almost no downtime at all, which is awesome.

(Note that 42 players works for Spellbreak because of its unusually high time-to-kill, despite 100 players being more common for the genre.)

But if you only have 21 players, the first initial circle mostly doesn’t have any player interaction because it’s simply too big. After that initial circle, though, the game does largely work the same as a full lobby, with a halving about every 3 minutes. The only difference is everyone has much more loot and we don’t get many level 1 fights.

The main issue is it takes 4 minutes and 30 seconds for that first circle to close. That’s a huge problem, effectively adding 4 minutes and 30 seconds of queue time to every game. Rather than solving the queue time problems, we just made them worse.

Another solution

If we consider the real problem, there’s a simpler solution.

With fewer than 42 players, start the game with a smaller circle, and close the circle faster. This makes the game’s pace as consistent as possible across all lobby sizes.

An added benefit of this solution is that, because they’re shorter, there’ll be fewer active games splitting up the player base, so we’d end up with slightly bigger lobbies too.

There’s one tiny quirk to watch out for. With half as many players, you don’t want to double the game speed. Rather, you take away 1 halving worth of game time. Otherwise, you’d have a 21 player game reach the final circle in only 6 minutes, which would be far too quick.

There are other solutions available, such as restricting the game modes to squads only and enforcing strict crossplay, but those come at a cost. Making the map size and game speed more appropriate when there are fewer players is almost strictly better than not doing so.

Example figures

With 1 halving every 3 minutes, the total time to final circle for a game with n players should be 3 log2(n) + c. If 42 players takes 12:30, then 3 log2(42) + c = 12.5 ∴ c =~ −3.7. Initial size is n/42.

Practically speaking, we need to bin the values of n, since we can’t exactly take time away from the circles evenly. (Or can we?)

“2:30/2:00” means the circle counts down for 2:30, then takes 2:00 to close. I made categories of time changes in steps of 1:30, then set the upper bound of players to the value of n that’s closest to that time, e.g. 3 log2(n) − 3.7 = 11 ∴ n =~ 30.

Players Initial size Time to final circle Lv1 Lv2 Lv3 Lv4 Final
31–42 100% 12:30 2:30/2:00 1:30/1:00 1:30/1:00 1:00/1:00 0:30/0:30
22–30 70% 11:00 2:10/1:50 1:20/0:50 1:20/0:50 0:50/0:50 0:30/0:30
16–21 50% 9:30 1:50/1:40 1:10/0:40 1:10/0:40 0:40/0:40 0:30/0:30
11–15 35% 8:00 1:30/1:30 1:00/0:30 1:00/0:30 0:30/0:30 0:30/0:30
7–10 25% 6:30 1:00/1:00 0:45/0:30 0:45/0:30 0:30/0:30 0:30/0:30

(I’m ignoring the ~20 seconds from when players have landed but the first circle isn’t counting down yet. So 6:30 time to final circle is really 6:50.)

Personal experience

This is what queues look like on PC on the Aus server. Times are in AEST.

Date/Time Solos Duos Squads
2020-10-01 ~21:00 13/4m 19/4m 29/2m
2020-10-02 ~00:00 9/4m 9/4m 32/4m
2020-10-02 ~09:00 7/10m 9/50m 7/10m
2020-10-02 ~12:00 11/4m 9/4m 13/4m
2020-10-02 ~15:00 14/4m 11/6m 14/6m
2020-10-02 ~18:00 11/4m 14/2m 18/2m
2020-10-02 ~21:00 13/8m 15/2m 29/4m

(“13/4m” means the lobby fired with 13 players after 4 minutes. To get the full time, I waited until a game fired, then requeued into the new, empty lobby so I can time from the start.)

Those ~11 player games can work, but right now there’s so much dead time waiting for the circle to get smaller. Take this example of a solos game with 11 players played at 10x speed. Once the circle closes in, the game flows perfectly, but note the 6 minutes of barren wasteland beforehand. This might seem okay if you do well (I had a good time in this game), but half the players in any game lose that first fight, and then it’s back to the queue followed by another 4–6 minutes of barren wasteland. Cutting that part out would be a huge improvement.

It would be nice if the game were more popular and we didn’t have to worry about this, but to get there we first have to make it work for those of us who currently want to play.

tl;dr

Bots don’t solve the problem of small lobbies. Make the initial circle smaller and speed the game up when needed instead.