Sponsored By

Game Design Deep Dive: Controlling two things at once in Soft Body

"The act of controlling two snakes at once seems like a impossible task the first time you experience it – like your brain is resisting what you want it to do." - Zeke Virant, creator of Soft Body

Game Developer, Staff

December 5, 2016

16 Min Read

Deep Dive is an ongoing Gamasutra series with the goal of shedding light on specific design, art, or technical features within a video game, in order to show how seemingly simple, fundamental design decisions aren't really that simple at all.

Check out earlier installments, including  using a real human skull for the audio of Inside, and the challenge of creating a VR FPS in Space Pirate Trainer

Who: Zeke Virant, Developer

Hello, I’m Zeke Virant, and I’m the developer of Soft Body (PS4/PC). In addition to action games, I've worked on a few narrative and art games. I like collaborating and have regularly worked with Stephen Lawrence Clark on a few projects such as Palace of the Organizer, one of the games in his Rooftop Cop collection.

Before games, I worked as a musician and created a broad range of musical and dramatic works. I still love working with music and trying to figure out the best way to organize and structure music for games.

What: Controlling Two Things at the Same Time

Soft Body is a difficult, meditative action game where you control two beautiful, gooey snakes at the same time. In the game, you paint the world with your body, and as you do so, the world changes around you and reveals new obstacles and challenges. Although the action can be quite tense, the mood and aesthetic is (mostly) contemplative and calm. And while the game is beholden to shmups and twin-stick shooters, it also incorporates non-traditional action game elements like painting, small puzzles, and artistic flourishes such as interactive musical vignettes. 

Soft Body has two modes with distinct rule sets: Soft Game and Hard Game. In this article, I will primarily focus on the design of game's split-mind control scheme, that is, the act of controlling two independent avatars at the same time. While split-mind controls play a role in Soft Game mode, they are the core of Hard Game mode's design. 

 

HARD GAME: you control two snakes, one with each joystick on a gamepad. The Left Snake (yellow) can paint walls. The Right Snake (blue) can pop enemies and push balls on a rail. If either snake is damaged, you fail the level.     

In Hard Game mode, people play through the game level-by-level while controlling two snakes at the same time (each joystick on a gamepad controls a single snake). To complete a level, each snake must complete all of their objectives without being damaged by obstacles, enemies, or projectiles. If one of the snakes is damaged, the level is failed and the player must restart from the beginning of the level. In other words, the player must keep both snakes alive to complete the level. 

To further complicate things, many of the snakes’ abilities are asymmetrical. For example, only the snake controlled with the left analog stick (left snake) can paint walls, and only the right snake can push balls on a rail and destroy enemies.

Why: Making Seemingly Impossible Mental Tasks into an Engaging Game

Controlling two things at the same time is difficult. Although I stumbled onto the idea at the beginning of development, it took me a year to fully embrace it. For one, the mechanic was intimidating. The act of controlling two snakes at once seems like a mentally impossible task the first time you experience it – like your brain is actively resisting what you want it to do. Things that seem like they should be simple – things like moving the snakes in different directions or maintaining some distance between them – are actually challenging and strange. Due to the tricky nature of the task (or despite it), I ended up working out nine different control schemes before I was able to settle on two distinct modes. 

L — snake controlled by left analog stick
R — snake controlled by right analog stick

Prototype 1

L & R — left snake and right snake can move freely all the time

This prototype was thrown together very fast. Most of my attention was spent on tuning the avatar's movement and animation which I wrote about here.

Prototype 2

R | L — right snake is confined to the left half of the screen, left snake is confined to the right side

This was initially conceived as a funny prototype, and I showed it to a few people as a joke (haha, it’s hard to do). 

Prototype 3

L  — left snake only 

Only one avatar. If this avatar collides with a projectile, it is death; it can paint walls, push balls on the rail, and pop enemies.

Introduction of the game's three objectives:PAINT — paint walls by moving the snake close to them, also removes enemy armorPUSH — push a ball on a rail by getting close to itPOP — pop enemies by colliding with them

Prototype 4

L[R] — right snake is reintroduced but as an optional avatar; left snake is unchanged

LEFT SNAKE — The main avatar. If this avatar collides with a projectile or lethal obstacle, the level is failed.RIGHT SNAKE — By default, this avatar is attached to the Left Snake. However, the Right Snake can be detached from the Left Snake by pushing the right joystick in a direction. When the right joystick returns to the center, the Right Snake immediately teleports back to the Left Snake and reattaches to it. Right Snake cannot be killed; it will teleport back and reattach if it collides with a lethal obstacle or projectile, i.e. stunned.

LEFT SNAKE — can paint walls, can push balls on the rail, pop enemies, remove enemy armor, level is failed if snake is popped by projectiles or obstaclesRIGHT SNAKE — can go through walls, can pop enemies, can push ball on rails, Right Snake returns to the Left Snake if damaged

Prototype 5

L -> [R] — right snake is now an optional power-upThe Right Snake is a power-up that must be acquired before it can be used.

Abilities unchanged.

Prototype 6

L* -> [R^] — left snake (named Soft Body) cannot pop enemies without first acquiring the right snake power-up (named Ghost Body)

The two Snakes are starting to become more asymmetrical. The Left Snake can only paint. Only the Right Snake can pop enemies and push balls on a rail. The Left Snake must get the Ghost Body power-up in order to complete most levels.

LEFT SNAKE — can paint walls and remove enemy armor, level is failed if snake is damaged by projectiles or obstaclesRIGHT SNAKE — can go through walls, can pop enemies, can push ball on rails, Right Snake returns to the Left Snake if damaged

Prototype 7 (final Soft Game mechanics)

L* -> [R^(…)] — a cooldown timer mechanic implemented 

(Cooldown) The Right Snake (Ghost Body) does not immediately return to the left snake if the joystick is not being pushed. 

(Stun) If the Right Snake takes damage by colliding with a lethal obstacle or projectile, it returns to Left Snake and must wait 1 second before being able to detach. This was added to prevent people from spamming the ability. 

Stun and reattaching cooldowns added to Right Snake but otherwise abilities unchanged.

Prototype 8 (unused Co-op mechanics)

L* —Player 1, left snakeR^ — Player 2, right snake 

Both move freely, unless stunnedIf a snake is damaged, it is stunned in place and cannot be controlled. If other player collides with the stunned snake, it will be rescued and regain control.

The level is failed if both snakes are stunned.

LEFT SNAKE — it can paint walls and remove enemy armorRIGHT SNAKE —can pop enemies and push balls on rail; unlike the right snake (Ghost Body) in "Soft Game," this snake cannot go through walls

Prototype 9 (final Hard Game mechanics)

L* & R^ — left snake and right snake can move freely all the timeThe level is failed if a projectile, enemy, or lethal obstacle damages either snake. 

LEFT SNAKE — it can paint walls and remove enemy armorRIGHT SNAKE —can pop enemies and push balls on rail; unlike the Right Snake (Ghost Body) in "Soft Game," this snake cannot go through walls

 

Soft Game mode

The Ghost Body was the first good implementation of a 2nd snake. Introduced in Prototype #4 and gradually refined until Prototype #7, it is a power-up that can be used as an additional avatar. By default, the Ghost Body is attached to the main avatar, the Soft Body. In other words, the Ghost Body sits on top of the Soft Body and is controlled by the same stick as the Soft Body (left stick) until it is detached by moving the right stick in a direction. The Ghost Body will automatically reattach to the Soft Body if it isn't being used.

The Ghost Body can be controlled after the Soft Body (snake controlled with left joystick) collides with it. By default, it is attached to the Soft Body, but it can be detached and controlled by moving the right joystick. It will automatically reattach.

With Soft Game, I want people to experiment with the split-mind controls largely at their own pace. For one, there are very few instances where detaching the Ghost Body is necessary to complete a level. And since the Ghost Body is attached to Soft Body by default, the split-mind controls are an optional element of the Soft Game mode. Split-mind movement can be used constantly or be ignored; people can choose what works for them. Lastly, there isn't a high cost for experimenting with the controls. Besides a brief stun effect after being damaged, the Ghost Body is practically invincible.

Hard Game mode

With Soft Game nearly complete, I wanted to see if there was a simple way to implement two-player co-op into the game (Prototype #8). However, I quickly discovered that playing as both players was more interesting than co-op; it felt like a logical extension of the split-mind design elements in Soft Game. After refining a few rules, Hard Game mode was implemented into the game (Prototype #9). 
Hard Game had large problems from the start. Although I knew that the challenge and immense amount of concentration required by Hard Game would deter some people, I felt that there were too many players trying to "cheese" the system. In other words, people were using strategies that didn't require much skill and were avoiding the interesting, challenging elements. Also, Soft Game's level designs didn't easily translate into good Hard Game levels. It quickly became clear that Soft Game's level design ideas weren't suited to take advantage of the Hard Game’s unique challenges; they weren’t doing a good job of teaching people either. In short, there were three problems: 

  • The game was allowing people to form bad habits.

  • The game was not teaching people how to control two things at the same time.

  • Levels were not emphasizing the game’s unique challenges.

At the time, many of the game's problems were largely "felt" before they were understood as bigger issues. It's easy to see it now, but in the beginning, these problems were tricky to diagnose. Were people not experienced enough before trying to tackle Hard Game? Was the game not emphasizing split-mind controls enough in Soft Game? Would these people even want to play a mode like Hard Game after completing Soft Game? 

Teaching Through Prevention

In the end, it was through playtesting that I was able to develop an analytical approach to designing Hard Game. After several months of observation, outlining the common tendencies and mistakes of new players was easy, and it provided a straightforward checklist for Hard Game's level designs. 
Common bad habits when controlling two bodies at the same time:

  • Ignoring one body (leaving it in a corner and out of harm’s way)

  • Move one body at a time

  • Moving bodies in the same direction

  • Not moving bodies when faced with obstacles (i.e. deer in the headlights)

As a result, more level designs focused on teaching people how to do simple movements: first, how to move the bodies in different directions simultaneously, and then with more specific challenges in mind. It was also the impetus for designing preventative obstacles that would challenge new players but also teach them specific ways of moving the snakes independently of one another. Preventing people from forming bad habits (like ignoring one body) was central to teaching people how to control the snakes.

Many of these preventative measures were implemented into the game as simple obstacles: for example, a rotating line that forces you to continuously move the snakes, lethal circles surrounding the snakes and require people to maintain a minimum distance between the two snakes, and so on. In Hard Game, challenge wasn't hard to find, but it became doubly effective and interesting when tied to a tutorial.

As an added bonus, I found that these obstacles were pushing my own limits. I wasn’t just happy to make new levels but genuinely excited to finally beat them!

Three simple levels. The snakes must remain in the circle. This requires people to pay attention to both snakes, move them at the same time, and to maintain some distance between them. Each variation is significantly more difficult.

Finally, I just want to note that I was surprised by how easily some of these preventative obstacles translated into challenging, fun levels. I am a little disappointed by how long it took for me to move past the use of lots of bullet hell projectiles. I think Soft Body would have be a better game without so many bullets. They look great, but in the end, the game’s best obstacles were more dynamic and reactive and not necessarily locked to a position like a fixed turret. Luckily, I can continue to work on this stuff. I recently added 7 new levels to game as part of a free Halloween update with lots of new obstacles and absolutely zero bullets. 

The evolution of a simple obstacle. A circle is attached to the Left Snake. If the either snake collides with the circle, the level is failed. This forces people to maintain a minimum distance between the snakes.This, of course, is made much trickier if the circle is also chasing the Right Snake.

Let's Think About Our Feelings: Emphasizing the Game's Unique Challenges

After a few months of failures, Hard Game was starting to work. In addition to tutorializing the game for new players, I spent a lot of time feeling out the game's difficulty and possibilities until I had a good idea of the game's unique challenges. But instead of trying to feel out the direction of the game, I continued to work more analytically and made a general list of these challenges. 

Challenges unique to controlling two bodies:

  • Crossing the snake (left snake on right side of right snake and vice versa)

  • Keeping the snakes far away from each other 

  • Keeping the snakes very close to each other

  • Physical (non-visual) sense of space (confidently moving two snakes without paying attention to the other)

  • Discerning asymmetrical obstacles

  • Cooperative challenge (rapidly switching focus on the snakes)

Before Hard Game, this kind of analytical approach to problem solving was not a big part of my design process. While I playtested regularly, for some reason I avoided the act of writing-out my design thinking. Apart from some occasional sketches for new stuff or a to-do list, my design process mostly revolved around trial-and-error, playtesting, and long periods of waiting and hoping stuff would work its way out via revelation or inspired intuition. Listing out the specifics of each challenge was a huge improvement. It pushed me to think harder about why something was difficult, but more importantly, it kept me on track and working even when I thought I was uninspired. 

I knew that something like crossing the snakes (1st bullet point above) was difficult. It was obvious the first time I did it. And even though people can cross their snakes at any time, without some sort of guidance, it feels overwhelming. 

I am okay with people feeling a little overwhelmed. In truth, I felt uncomfortable disguising Hard Game's innate difficulty. A lot of the Hard Game’s challenge is self-generated: the openness of the mechanics allows for people to easily get in over their head, and within the context of Hard Game, I think that's a good thing. 

A combination of unique challenges: keeping distance, discerning asymmetrical obstacles, constantly crossing the bodies, etc. 

One thing I did to try to minimize frustration and confusion is to create conceptually simple levels. Levels that clearly emphasize 1 or 2 challenges feel more approachable both to the player and to me as a designer. I know that if someone beat level 8, they'll obviously have what it takes to beat level 13 or at least be in a good position. At first, I was worried that I would be watering down Hard Game's raw design space with boring, easy levels, but the opposite was true. With a firmer grasp of why the game was difficult, levels were easier to balance, took less time to develop, and were more fun to play. 

A new level from the Halloween 2016 update: this level doesn't have any bullets.

Result

My favorite part of development was designing the Hard Game levels.

Before Hard Game, I had spent a lot of time going on and on about learning to control two things at the same time and learning to split your mind, but THIS WAS IT!  I was finally making this thing, and it was more fun and interesting than I had imagined. I think I was starting to understand why people might be skeptical of my split-mind pitch, so it was nice to swim around in these naked, lucid designs and soak in all that weird potential — it removed a lot of my doubts.

Getting to that point wasn't straightforward, but I think I can sum it up without losing too much insight: the more I tried to understand how people were interacting with the game and what was challenging, the easier it became to express the breadth of game's mechanics. When I spent the time to figure out why tasks were difficult, the game's split-mind controls became an asset instead of a design hurdle.

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like