Spilt Milk Studio on: solving issues of scale in Lazarus


Lazarus-Screenshot light explosion

Spilt Milk Studios are currently working with Improbable’s SpatialOS to create Lazarus, a top-down multiplayer shooter set in a universe that can be developed, built up and then resets every week. Andrew Smith, Spilt Milk’s Creative Director, is back with a new developer diary.

By enabling persistence and a massive-scale gameworld, SpatialOS brings up loads of interesting issues of scale. We have a huge open world – so how do you design levels, quests or bosses when any player of any skill level with any equipment can come along (often in large groups) and encounter any content in the gameworld whenever they want to? We have to somehow embrace both the good and bad sides of the chaos that massive scale brings, but it’s a tough challenge.

Lazarus-Screenshot light explosion

In an attempt to make the game appeal to a certain kind of gamer, to keep system requirements down and to make our jobs as a tiny indie dev simpler, we elected to make a top-down game, but even this creates some issues when talking about scale. Scale in a 2D top-down game where you have a limited view of the game world at any one time is very hard to present to the player in an interesting way. With a 3rd person game like Worlds Adrift on the other hand, you can easily look in a single direction, see that it’s an enormous world, take note of specific interesting things within it and then plan what course you’ll take to cross it. Consequently, it’s easier to prepare or get excited about the challenges that you can see that the game world is offering. But the ways that a player interacts with a world of scale in 2D are harder to communicate because they are in a broader stroke.

By enabling persistence and a massive-scale gameworld, SpatialOS brings up loads of interesting issues of scale.

If Lazarus was a “god game” or similar, then the impact of the playerbase and its achievements within the world’s scale would be really easy to spot. Your interactions and core mechanics revolve around much grander scale than navigating from point A to point B with a series of jumps; you’d be raising islands from the ground and creating mountains, or zooming out far enough to see everything you and everyone else have created. But in Lazarus – a game about being a kick-ass space ace pilot saving the universe one dogfight at a time – the player is simply an agent within an enormous world. This just means that on first contact with the game (and potentially for a large percentage of your playtime) your actions and those of other players are harder to spot.

Playtest-shot Lazarus

Conducting the ceremony

One way you can give player actions a greater sense of weight in a world is through traditional game design devices, for example the concept of ceremony. Ceremony is a core element of all games and is most commonly associated with, say, the explosion of particles the player sees on hitting a bad guy. But it really also covers every single player interaction from the simple but satisfying animation as you click on a button in Clash Royale, to the fancy movement, animation and SFX when Super Mario jumps. Even though it’s so fundamental to Lazarus, we have still been forced to innovate in numerous ways when designing the kind of experience that we want our game to be.

For example, every time a player shoots an asteroid it splits, depositing some of its stored resources into the world. Depending on what the player then chooses to do, those resources might be collected and spent on an upgrade. This means that a Xenotaph stores these resources, which in turn leads to it levelling up and trying to mate, which in turn leads to the birth of a new Xenotaph, the spread of resources back into the world and a new gravitational field which affects all remaining asteroid. This is a whole new world compared to the problem of simply showing a player what the jump button does.

When you apply this thinking to everything in the game, you start to see how complex a problem it is to not only show these processes happening, but to present them in the context of the elements that must be lined up to trigger them. Some things will have to be left for players to figure out (mysteries can be fun) but some mechanics will have to have their ceremony very carefully presented.

Scale and player numbers

It’s a very commonly accepted attitude that most games would be fun with multiple players, especially if those people are your friends. Now beyond digging into the specifics, the correct aspects and the assumptions within this idea, we should ask what kind of framework you need to support and maximise those players. You still need to point those players at the mechanics that are most interesting and that are fed back into the whole system. This will properly ensure that every player is getting the most out of the presence of other players in the game – not just the accidental or tertiary benefits that would naturally ripple out of most multiplayer systems.

A lot of very popular games manage this through direct Player versus Player (PvP) competition, but that’s not going to work all that well for the base layer in a game about humanity’s last stand. We’re trying to build a world that would be interesting to watch even if there were no players – an interesting system inside of which and alongside which you play. The whole world should react to the player, not just those select parts we’ve designed as responsive.

With Lazarus, our aim is that players are simply more unpredictable and more-powerful agents – not some kind of mysterious entity around which the whole world of the game is created and unpackaged. We’re not making a linear theme park-esque game, we’re trying to make a new kind of experience – something that still provides excitement for the player who finds it, and in fact helps them find it. Ceremony and UX (User Experience) are always key, but we’re going to be writing systems that look for completely dynamic and unscripted events, and then point the player towards them in the hope that things get exponentially more exciting as a direct and unpredictable result.

Lazarus screenshot

Trolls will be trolls

The behaviour of people in online games is endlessly interesting, and it’s something that from the ground up we’re able to influence. If we don’t let players kill each other then a certain set will find other ways to troll. If we don’t have a scoreboard, then another subset of the playerbase will find other ways of being ranked ‘best’. We’d be mad not to provide the anchor for them to tether their enjoyment to, but we also need to look wider and more generally for ways to tie that in and loop it back into the game’s systems so that the players who do choose to follow a bunch of missions, still feel the changes and impact of an active and wide-ranging player base.

The whole world should react to the player, not just those select parts we’ve designed as responsive.

The players as a whole are pitched against the environment, the ecosystem, and they’ll naturally fare better by teaming up. Players will absolutely want to get into clans together, but will it end there? Should we spend development time looking at how to take that to the next step because of the scale? Do we simply have more, or bigger, clans? Or do we introduce mechanics that push people towards teaming up but leave the manner in which they do so up to them? This kind of stuff is early in development and we’re taking tentative steps – we have in-game chat, and of course the usual stuff like a subreddit, a Discord channel and an active Steam page – but we’ll only really figure this stuff out by experimenting on and with the playerbase.

And of course, what if the game becomes super popular and we see more players than we expected? Will the game world get swamped, or will the systems we’ve built to support all these players naturally compensate? Or do we just expand the world itself to match our ideal ‘encounter density’? This would be quite a simple thing to do given the tech, but that temptation may be the wrong thing to give in to. The variety of map changes that occur after weekly/wipes in Lazarus will be a key feature of the appeal of the game over the long, and obsessing over having a perfectly sized world may well lead us down a route that prevents us from using the scale to its fullest potential.

Lazarus screenshot with in-game chat

Breakin’ the lore

One of the touchstones of Lazarus is “rebirth” and we’re doing our damnedest to ensure this core element of the game’s narrative and design is filtered through everything in the game. Of course you cannot have rebirth without death. We’re trying to temper the sheer chaos and unpredictability of full persistence and scale by using weekly wipes and by designing the game and its lore around these, hopefully players will embrace them. Why is this? Well, you can’t tell your friends a cool story that emerged out of natural play if it doesn’t have a clear beginning, middle and end.

By trying to give the game a rhythm in its overarching meta, we hope players will adapt and embrace this in everything. Without this rhythm, even the short term investments of planning and effort that culminate in the game rewarding you as a player are impossible to frame in a satisfying manner, and our retention will suffer hugely.

This inherent challenge is what’s so fun and interesting about developing for SpatialOS – the game and system balance will never be perfect, but the scale itself offers up such scope for change, drama and excitement that there comes a point where it’s all just part of the fun.

Join our community forums to discuss this article.

More solutions. More possibilities.

Explore all IMS solutions