Now the dust has settled – a SCAVS postmortem

This postmortem contains major spoilers for SCAVS, so it would be better to play the game first… then return. You have been warned!

OK, let’s start with an apology. Yeah, sorry for the secret identity thing!

After making Detritus last year, I had a rough idea for a sequel. Not a direct follow-up, but set in the same universe and dealing with similar themes. The name SCAVS was intended as a derogatory term, suggesting a class system that flows from the controlling ‘System’, down through the privileged ‘Operators’, and finally to the rest of humanity (the fools who’ve allowed all this to happen to themselves).

But where Detritus started fairly light and got darker, this would start dark and get lighter. Whatever happened along the way, it HAD to have a more optimistic resolution.

As things progressed, I realised the game was moving too far from the original to really be considered a sequel. In fact, I wanted it to stand or fail on its own. So I made up a pseudonym. Part of a final reveal was that a character’s first name was ‘David’, and a central mechanic involved the hunter becoming the hunted. So… ‘David Hunter’. Yeah, that’ll do.

I fully expected to be unmasked early in the competition – I mean, the title screens for Detritus and SCAVS are very similar!

Given the number of excellent games in this year’s competition, coming first was a genuine surprise. I’m incredibly grateful to everyone who played, voted for or reviewed it. And whilst I can’t tell you why it won, I can tell you it wasn’t down to the author’s name!

Inspirations

Three main ideas formed the foundations of the game.

1. The basic idea – character select

You know how some video games start by letting you choose a character from a set of predefined archetypes? Warrior, Mage, Rogue… or maybe ‘Space Marine’ and ‘Engineer’.

You expect to play as that character. But what if they start talking to you – what if they have their own agenda, completely separate from yours? And what if it turns out they have some sort of animosity with the other characters from the selection screen? Turns out they’re not blank avatars at all.

The character-selection screen encourages you to think of your ‘Scav’ as just ‘lives’ in a video game. ‘System’ treats them as expendable tools, and there’s little reason for the player to think otherwise. The intention was that, as you got to know them, this attitude might start to change.

The original plan was to have three different characters, all with interlinked stories. I realised fairly early on that this was potentially a big overreach, so reduced it to two. I thought I was being SO clever culling the scope early – still not quite comprehending the state-tracking nightmare that two separate, interconnected playthroughs would later involve! I also wanted there to be no hints whatsoever about this in the blurb or introduction. Eventually, I caved a little on that.

2. The map

In an earlier game of mine, Echoes, there was a map that appeared in a popup window. Months after release, someone suggested it would be cool if an X appeared on the map and actually updated based on the player’s location.

I figured that should be doable. Getting it working responsively, particularly on mobile, took a LOT of messing around with CSS. But once it worked, I realised I had something I could potentially build a game around – some day.

3. Lander 23

The final piece came from ‘Lander 23’ – an immersive theatre production by Punchdrunk, billed as a ‘real-life video game’: LANDER 23 by Punchdrunk | Immersive Gaming Experience

The basic premise: four people enter a sprawling maze-like environment (built inside a massive warehouse). Two are ‘Drivers’, monitoring their onscreen map and issuing instructions, while two are ‘Fields’, physically exploring the environment, collecting resources and avoiding patrolling guards. Communication is entirely through audio. After 30 minutes, they swap roles.

Sounds familiar? It works really well and is great fun, but the one thing I felt was missing was any kind of narrative. So this is my homage.

Conversations and rapport

In Detritus, there were several branching conversations with an AI character. It’s tricky to make these work naturally in Twine. I think maybe Ink has a much better narrative scripting language? I wanted something more like that.


A flow chart showing just one of the conversations. Can you see why I got myself a bit confused?


I’m sure other people have developed more elegant solutions, but I ended up building my own conversation system. And where Detritus was built on and around the object/recycling mechanic, this game was built on the conversation mechanic. Each conversation exists within a single passage, with branching and looping responses, conditional choices, variables, and of course, a ‘rapport’ value. I chose rapport rather than trust because it has slightly different connotations.

Across the two characters, there are 67 separate conversations, some with just a few choices, others (like the chart above) offering a lot of options and routes through it. Many will contain variations that players will never see, as options shown will change based on a variety of things (which also makes it a total pain to test!).

The idea was that talking to the Scavenger shouldn’t just be something you did to uncover more plot. ‘Rapport’ was another, competing resource you were building, although one that System had absolutely no interest in measuring. The conversation system probably ended up being the most complicated part of the whole project.

Storms and systems

Maybe it’s cliché, but I wanted the planet to be a character in its own right, and the dust-storms were always part of the plan. Originally, they were completely random, with variable warnings, duration and severity. While a storm is active, the Scavenger takes damage and can’t see or describe their surroundings.

But they’re not actually as dangerous as they first appear. With enough warning, the player can find shelter and wait them out. And that’s where the important stuff happens. The storms force the Scavenger to hunker down and open up a little. Those quieter, more personal conversations gradually became the backbone of the narrative.

The storms are obstacles that slow the pace and stop the player from completing their mission, but they’re actually creating the opportunities to discover what the game is really about. Something originally designed as a random environmental hazard had become the main storytelling mechanism.

The creature was another independent system, actively hunting the player and guarding the objective. Early versions even allowed storms to hit while the creature was hunting, but that became more annoying than exciting (now it’s either one or the other).

In Act 1, players have been encouraged to seek out ‘shelter points’. These can be reused as ‘hiding places’ in Act 2. Entering one will mean the creature goes from ‘hunting’ mode to ‘searching’ – giving you some room to escape. The game will only autosave at a safe shelter point – so it’s always possible to continue from an autosave.

Originally, I planned to have the creature follow the map routes (like a ghost in Pac-Man!) but… that got complicated, and I didn’t get very far with a solution. So, when in doubt, cheat! First, I considered having it burrow underground, like something from Tremors. But then how does it cross mountains or chasms? OK. The damned thing can fly. Problem solved.

Building the world

Every location has at least a first-visit description and a shorter version for subsequent visits. But things quickly became more complicated. Which direction did the player approach from? Which nearby locations had they visited? Had either Scavenger interacted with something here previously? Was the creature hunting? Was a storm active?

Some descriptions ended up with so many conditional fragments, occasionally changing halfway through a sentence, that it’s a wonder they sound coherent at all.

I eventually created two separate versions of the world, one for Karth and one for Jyn. This made the writing easier to separate, but probably made state-tracking twice as complicated as it needed to be.

The planet itself also went through several iterations. An early idea was to have it teeming with life, something like the amazing animated series Scavengers Reign. But that didn’t really fit the themes of desolation, revenge, death and hubris. So it became a dead world, its life consigned to history. ‘Everything turns to dust’.

The map needed to support exploration, multiple routes, discoverable shortcuts and areas accessible to only one character. There also had to be a guarded choke point before the final objective. Because players would eventually get a visual map showing their exact location, I felt I could afford to make the world a bit ‘messier’ than your average IF game map. Paths could twist and curve around natural features rather than following a neat grid.

I wanted the finished image to look semi ‘realistic’, but also tell a story of its own. Ideally, players would spot something and think, ‘Oh, what’s that? Let’s head over there!’


The original route plan

map-build

The evolution of the map, from rough sketch to final image

The problem with dialogue

I am not first and foremost a ‘writer’ (or a coder for that matter), and given the choice, I’d probably avoid writing dialogue completely! So obviously I decided to make a game with NO third-person narration whatsoever, where every description, action and emotional moment had to be communicated through dialogue. WTF was I thinking!?

One mistake I made during planning was writing much of the plot in third person. You can be much more descriptive and dramatic that way. So then attempting to translate it all into dialogue was… problematic. Some of that over-descriptiveness survived, and several reviewers quite fairly pointed that out. I’ve attempted to tone some of that down since.

The UI

You’re playing as an ‘Operator’, somewhere far away, looking down on the planet via your console. That’s what the title screen is meant to convey anyway. Because the player isn’t the one in danger, I wanted there to be plenty to manage. Map overlays, information screens, incoming messages – along with everything your Scavenger was telling you.

This was partly about immersion, but also about reinforcing the player’s position in the hierarchy. You’re sitting safely at a console, tracking resources and issuing instructions to someone who’s risking their life. System provides helpful updates, but it’s not happy when you engage with the subjects. Because if the humans start communicating, maybe they’ll realise that they’re all part of the experiment?

Several early reviews suggested that some of the map layer management was more irritating than immersive, so I simplified things a bit during the comp, and that seemed to help. But there are plenty of UI elements to make life easier too. A subtle colour change of the links to show which have already been visited was a fairly late addition (I only discovered how to do that about a week or two before the comp!). And adding directional arrows was as much for me as anyone else (does anyone keep getting their ‘East’ and ‘West’ mixed up – or is that just me?).

A few people suggested they wanted to see the map visible all the time. My hesitation was that this removed some of the ‘management’ aspect I’d originally wanted. And how to integrate this without the ‘bad’ kind of visual overload AND ensure the whole thing still worked on mobile? The post-comp version now has an optional side-panel with a ‘minimap’ that expands out on wider screens. Some key info is also shown below it. Mobile players still get the popup version, and desktop players can simply turn this panel off for a simpler layout if they prefer.


UI

the new responsive side-panel

Pacing and the three-act structure

One thing I’ve always found interesting with IF is pacing. Linear media has got the big natural advantage there. And as soon as you introduce puzzles, pacing becomes even tougher to manage. So puzzles were sacrificed at the altar of pace. This is the first game I’ve made without puzzles in it (another reason I’m surprised it did so well).

SCAVS has a very deliberate three-act structure – with clear dividing lines between them, where the goals and mechanics change.

Act 1 – this is the game as advertised. Explore, collect Helium-3, get out. System tells you what matters, the interface reinforces it. Resources, health, location, mission objectives. There’s even a quota to meet, giving the player a perfectly reasonable (and achievable) goal to focus on.

Except those annoying storms keep interrupting, slowing the pace and forcing conversations that don’t seem relevant to the mission. I was interested in whether players would follow System’s instructions and treat their Scavenger as a disposable resource, or become more invested in the person doing all the work (even if they didn’t really care about them).

Despite suggestions that doing System’s bidding was maybe not ideal, some players concentrated on their resource quota, got to the evac point and were happy to see a ‘mission complete’ message at the end. Fair enough.

Act 2 – after building up some ‘rapport’ (genuine or not) with the Scavenger you chose, you’re rudely forced to restart with the other one. Depending on your initial choice, you may even have a healthy distrust of your new Scav. I’m not saying this goes as far as ‘The Last of Us Part II’ - but you get the idea. The player experiences a moment of… ‘Ugh, do I really have to start over?’

But this isn’t a second playthrough. You’re now seeing the same world, from a different perspective. The character you’d previously dismissed has their own history, their own motivations. I originally wanted this part to last longer – there is a whole game-worth of second character conversations after all – but in the interests of pace, very soon the story changes direction. The goal changes, the mechanics shift, and the pace increases.

Act 3 – brings the characters together for a confrontation, where ‘rapport’ becomes more important. Originally, very low rapport could make progress impossible. But that felt too punishing – I didn’t want someone who’d invested an hour or two to find themselves locked out of the resolution. In the final version, lower rapport just means more conversation hoops to jump through (and higher chance of failure).

The ‘reveal’ stories – and yes, there are two completely different ‘reveal’ stories depending on who you chose – were fun to balance: where to place that original story so the player hasn’t forgotten it. And it had to feel odd enough that it was remembered, but inconsequential enough that it didn’t shout: “plot point”!

Then came the ending. This stumped me for ages. I had all sorts of things planned: the creature, the Eye, the emotional resolution, a dramatic escape, and several possible combinations of who survived (depending on choices made, rapport gained). The problem was that the emotional climax had already happened. The story had kinda run out of road.

Eventually, I cut something like 60% of the planned final sequence, removed several ending variations, and concentrated on momentum. The final result is much shorter and, I think, much better for it.

There are still four endings – or at least, ending variations. The first is the ‘mission accomplished’ ending mentioned earlier, for those just focusing on the mission. The second is the ‘Evac’ ending, where both Scavengers survive, but everything returns to the way it was. System is happy.

The remaining two depend on whether you found the damaged lander and the macguffin needed to repair it (a reward for exploring beyond the critical path). Find both (with either character) and you’re presented with one last choice: side with System (and if there’s an ‘evil’ ending, this is it!), or accept ‘mission failure’ and risk your privileged position to help them escape.

Basically, if you didn’t see the words ‘TWO LIVES SAVED’, or find an ‘incoming message’ waiting for you on the title screen, then there’s an ending you didn’t see. I’d like to think that’s the better ending.

Two lives left

Possibly the biggest choice the player can make happens right at the start on the character select screen. I wanted this to be a genuine 50/50 decision, because the experience does differ depending on who you choose. The backstory unfolds differently, the switch in Act 2 feels different, and the confrontation in Act 3 changes quite a lot. The same events are interpreted differently depending on whose story you’ve heard first.

An unexpected problem was that virtually ALL early playtesters chose Jyn. I tried giving Karth more health to make him slightly more attractive as the first choice. This had the opposite effect! People figured the other person must have other skills to balance it out. I suspect many IF players naturally gravitate towards the ‘engineer’ over the ‘soldier’ archetype. The up-front character descriptions needed to be very minimal, but still went through many variations. I settled on the line ‘knows violence has a cost’ to imply that ‘Karth’ isn’t just a simple jar-head.

The Tempest

There are healthy doses of classic Sci-fi tropes scattered throughout the story. From Aliens to Dune; from Star Wars to Forbidden Planet (you know, the classic movie that inspired Shakespeare to write ‘The Tempest’). In fact, the original name reveal was going to be that Karth’s first name was ‘Prospero’ – but that’s way too obvious – and did I really want people comparing my writing to Shakespeare? Er, nope. The ‘Eye’ is referenced as 'the Tempest’ just the once, and his daughter’s name as ‘Miranda’ (and her family home in the city of ‘New Ariel’) were left in as little nods.

Playtesting

One downside of entering under an unknown pseudonym was that finding playtesters proved a little harder than usual. Fortunately, some very generous people helped out. Huge thanks to everyone who tested the game, including @John_Ayliff, @SomeOne2, @PatientRock, @Loressa – and @pieartsy for nudging people in my direction.

One early tester only got part way through, but offered this assessment:

“This feels like a choice-based IF that wants to be a parser IF. It’s possible that the audience who would most enjoy it won’t play it because they’re focusing on parser games, and the audience who mostly likes choice-based games won’t enjoy it.”

I think that’s actually a fair point. It also describes pretty much every game I’ve made.

Post-comp updates

I’ve made several improvements since the competition release, partly in response to reviews and feedback, partly because I’ve just had more time. I’ll continue supporting the game over the next month or so, so if anyone has suggestions or spots something that could be improved, please let me know.

Thanks again to the competition organisers, to the players and voters and especially to the reviewers – who I think don’t just provide interesting feedback, but help improve every IF author who is brave enough to share their creation for the scrutiny of others. I suspect that every entrant to the comp has learnt something from their experience – and will now apply that to their next work.

Which means next year will be even better. :wink:



You can play the post-comp release of SCAVS here:

16 Likes

There’s a whole thread!

6 Likes

What’s the Twine story format(?) you’ve screenshotted to show the conversations? That looks really neat.

Lol, I did go with the jar-head, though my rationale was maybe not the most humanistic. “Imma prolly kill the first one, who feels more disposable?”

Great insight into the dialogue system - something I just took for granted it worked so well!

It certainly FELT like a great ending! ← a statement equal parts admiration and humble brag

3 Likes

Glad to see I’m not alone then!

Well, to my eternal shame, I got so confused with the conversation flow that I asked System Claude to make a flow-chart from one of the conversations. After at first complaining there’s only so much you can do with a free account, it eventually made that diagram.

Don’t tell anyone, but I think Karth as the first choice is actually my preferred of the two. But we love our children equally right?

1 Like

Ah. :sweat_smile: I’m certainly glad of the explanation, but no longer have any interest in playing around with it for myself.

2 Likes

It’s very cool seeing how the map was generated!

1 Like