Devblog #05 : Cooperation… Cooperation everywhere

Hello everyone,

The end of the year is upon us, and it’s time for us to share some final updates.
This time around, we’ll discuss a key topic that has kept us busy over the past few months: cooperation!

It takes two to tango

After spending several weeks on the environment, it was time to test our current gameplay in a simple level!

Though we knew that some cooperation mechanics were missing, we already wanted to test out our level as it was.
As expected, the level was fun for a solo player, but things got trickier when a second player was added…

The movements and the mechanics worked well and the split screen “did its job”. More problematic, however, was the dynamic that arose between the two players, or rather, the absence of a dynamic, with the leader rushing on ahead and the other player trying to keep up as best they could.
This didn’t surprise us. A local co-op game is more than the sum of two parallel solo games. At least, that’s how we see it.

Worse still, the only actions you could undertake with your fellow player were to quickly move toward them or to slow each other down. Most of the team, especially Mathieu, found this quite fun, but Pierre just couldn’t take it.

When I play platformer games, what I enjoy most is moving around with the character and jumping here and there. In this case, when the other player used an action that slowed me down, I felt obstructed and limited. Everyone plays a video game in a way that reflects their personality, and it’s important to take this into consideration when adding features to a game !


The action’s negative or self-centered impact certainly didn’t contribute to the overall group synergy.
It was time for us to roll up our sleeves and to dive into the conception of a two-player game!

We took some time to brainstorm together. This allowed us to establish a solid basis with which to move forward.

After several hours of intense thinking, our approach seemed much more clear (not like on this chart!).

Our work for the next month was going to be divided across three themes: level design, gameplay, and how to manage our players’ failures.

Level design

The first theme to tackle was the environment. How could it be engineered to foster instinctive cooperative behavior among players?

Generally speaking, there are three main ways to establish cooperation within a level. To paraphrase Oliver Granlund from Hazelight (link), the three ways are:

  • parallel cooperation: you play your own simultaneous game with another person
  • step by step cooperation: it’s like a back and forth movement – basically, you do something that allows me to do something
  • simultaneous cooperation: we both have to act at the same time

We had already worked on parallel cooperation. But for the other two, we felt like we were lacking tools, such as:

  • regrouping points” to force players to complete certain sections together
  • separation points” to force players apart, temporarily

We built upon the characters’ current abilities and took them a step further with these new tools.

Simultaneous cooperation with a regrouping point

Step by step cooperation with a separation point

Parallel with teamwork and a regrouping point

We quickly noticed a shift in the players’ behavior. The new tools meant that they had to spend more time together, but especially that they wanted to spend more time together, in order to discover the rest of the adventure and the different challenges awaiting them.
In short, our work on the level design and the environment ensured that the players still enjoyed being together, even in quieter moments devoid of cooperative gameplay.

When thinking of these few simple elements, we were pleasantly surprised both by the variety of possibilities they offered, but also by the fun we had in incorporating them.
To top it off,  they allowed us to better manage the pace and segmentation of our level: discovering landscapes together, cooperative passages, facing challenges, and experiencing freedom in small open areas.

Gameplay and interactions

While busy with our levels, we were also thinking about missing elements that would make the players interact more and would make them stronger together. After all, shouldn’t the whole be greater than the sum of the parts?

This is where the second theme comes in: gameplay.
We wanted to use it to add a positive aspect to staying together, with players doing so not out of obligation, but because the proximity empowered them.

We worked on different concepts:

  • the idea of cooperative combos, where the players combine their power to create a stronger action
  • the “anti fail” mode, where the players can help each other out when one of them falls

Our ultimate goal throughout was for the characters to coordinate and establish complete contact with each other, achieving perfect synergy for a fleeting moment.

Combo
Step 1 – Sometimes a hug is all you need

The first thing we tested was climbing onto your teammate’s back and then activating a combo.

This test left us both surprised and amused, though one person remained unconvinced.
And because every story needs a “villain”, instead of Olivier (who is the developer in this particular story), we’ll cast Pierre in that role.

Oh, I hate it.” Pierre immediately felt a sense of unjust limitation, an unjustified stifling. “Get off of my back right now!” is not something we ever expected to hear in our offices.

Instead of letting ourselves be discouraged, we chose to focus on the positive. Even if Pierre’s current feeling was negative, at least these new suggestions had elicited strong emotional responses in all of us. Experiencing this during playtesting is no easy feat,so we figured we weren’t headed in such a bad direction, even if, let’s admit it, our players’ current positions were a bit ridiculous.

An additional problem was that this position represented a dead-end, even in this prototyping phase. 

Step 2 – You scratch my back and I’ll scratch yours

Olivier dove back into thinking mode. True to form, instead of coding, he started animating. This allowed him to study the starting positions, the possible actions, the transitions, etc.

This research led him to a new concept for the characters’ roles in this combo: having a rider and a carrier.

The action sequence is simple: the rider decides to latch onto the carrier and the carrier chooses the action to carry out (s/he aims and fires). The roles are balanced.

The combo then transforms into a shared action where each player is useful and necessary. It’s about more than just pushing a boulder together. Here, collaboration between the players is essential. They have to take the time to communicate and to define the role that each one is going to take on at a given moment.

To implement these new concepts, we started by creating some basic actions, like jumping high, jumping far, and hitting hard.

The ComboJump

For a big vertical move

The ComboDash

For a big horizontal move

The ComboHit

To hit hard

And the Cancel

The idea is to carry out all of these actions in agreement, but we know that there’s a troll lurking in every player. That’s why we added a defense mechanism for the carrier, who can refuse their role and propel the cheeky invader onto the ground.

This small defense mechanism ensured balance among the players.

And, what about Pierre, you might ask? Both his doubts and his stifled feeling evaporated. He was quite pleased with the result.
Of course, our work is far from perfect. The inputs aren’t easy to use yet, and more work remains to be done on the user interface, on the cameras, and on action readability. But it’s time to test all this work out across some new levels!

Managing Failure

Finally, another key question we couldn’t avoid was: “What happens when you fall off of a platform?”

In a solo game, we accept a wide variety of punishments when we die or “fail”: losing lives or equipment, or having to start a level all over again.
In a (local) co-op game, it’s more complicated. When one player fails, it affects the other as well. A disproportionate penalty will be extremely frustrating.

Rather than seeing this as a constraint, we used it as a way to heighten the feeling of cooperation by giving players the opportunity to fix their mistakes:

  • If you miss your jump, you enter a “bubble mode” that leaves you floating for a little while.
  • Then if your teammate is nearby, they can come and save you by drawing you closer to them.
  • If not, you keep on drifting, and automatically respawn at the last save point.

This means that death isn’t too dire when players stay together and achieve a good synergy. There’s a real benefit to sticking together during difficult moments.

As a bonus, this also means that the feeling of risk grows if you decide to set off on your own, which we think fits really well with the idea of exploring an unknown and possibly hostile environment.

What’s next?

All that’s left is to add all this to a new level in order to test out our concepts and to keep making our game evolve!

We still have so many things to try out: new gameplay loops, dynamic environments, exploration, and new worlds!
So lots to look forward to for next year, but until we can tell you more about that, the whole team wishes you happy holidays!

See you next year! 

N.B. All images are for illustration purposes only. They do not reflect the game’s final visuals or gameplay.