Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
October 22, 2018
arrowPress Releases
  • Editor-In-Chief:
    Kris Graft
  • Editor:
    Alex Wawro
  • Contributors:
    Chris Kerr
    Alissa McAloon
    Emma Kidwell
    Bryant Francis
    Katherine Cross
  • Advertising:
    Libby Kruse






If you enjoy reading this site, you might also want to check out these UBM Tech sites:


Game Design Deep Dive: Forza Horizon 3's online co-op multiplayer

November 16, 2016 | By Grant Orban

November 16, 2016 | By Grant Orban
Comments
    2 comments
More: Console/PC, Programming, Design, Video, Deep Dive



Game Design Deep Dive is an ongoing Gamasutra series with the goal of shedding light on specific design features or mechanics 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 the action-based RPG battles in Undertaleusing a real human skull for the audio of Inside, and the challenge of creating a VR FPS in Space Pirate Trainer

Who: Grant Orban, game designer at Playground Games

I am a game designer who has worked at Playground Games for over five years. When I joined Playground, the studio was fairly small and still working on building up a team to create Forza Horizon. Since then, it’s been amazing to see the company grow from having a small UK presence to being recognized internationally as a top-grade triple-A studio.

I originally joined Playground as a design assistant, having just graduated from Aston University with a degree in computer science. This position was created specifically to take someone with no industry experience, teach them the fundamentals of game design, and enable them to become a fully-fledged game designer. It must have worked, because I’m still going today!

What: A frictionless co-op campaign experience

For those unfamiliar with the Forza Horizon 3 campaign structure, I will briefly describe it in the paragraph below. If you have played Forza Horizon 3, then feel free to skip the next paragraph.

The Forza Horizon 3 campaign sets the player up as the boss of the Horizon Festival -- a festival celebrating cars, music, and beautiful scenery. The player is tasked with setting up and competing in a range of events -- for example, races and stunts. By completing these activities, the player will attract fans to their Festival. At certain fan thresholds, the player can upgrade their festival to set up more events, choose a location in which to open a new festival site and take part in "showcase events," where they might race against things like a train or a fleet of powerboats. Eventually, the player will be asked to put on the greatest showcase of all time, which acts as our finale (although the player will only have seen a small percentage of our total content at this point).

Our goal was to enable four players to play the campaign co-operatively, as simply and with as little friction as possible. Whenever we started talking about our campaign mode early in our pre-production phase, we made sure to ask the question, “How will the player do that in co-op?”

We took all of the features we had planned and made sure they were co-op friendly. During this part of the project, we established some key goals for co-op to make it as frictionless as possible:

  • Any four players who have unlocked multiplayer should be able to play together and their progress should always count
  • Car ownership should never be a barrier to entering events with others in co-op
  • Players should never be punished for playing with those significantly better or worse them

We took all the features that we had planned and asked ourselves, “What will cause friction between players trying to play together?” After assessing our current design, we noted the following major issues which worked directly against our goals:

  • Players can be tens or even hundreds of hours apart in terms of campaign progress
  • Similarly, players may own just a handful of cars or hundreds. As events are often restricted based on car type and the leader of the session gets to set up those restrictions, this can throw up many situations where players don't have an eligible car to enter an event
  • We predicted that players of differing skill levels would want to race together, but those with less skill might constantly finish in lower positions
  • Players could play without mics or any form of communication, but our co-op system has one player leading the session and leading the other players through gameplay

For each issue, we brainstormed a range of solutions and pinpointed the one which reduced friction between players and the game mode the most. Sometimes, this meant reversing some of our thinking about the rules we had set out for the rest of the game.

We’ll briefly go through each design problem and the solution that we arrived at:

1. Players can be tens or even hundreds of hours apart in terms of campaign progress

In Forza Horizon 3 you can choose to open festivals in different parts of the world in any order. By spending more time in an area, you earn fans, upgrade your festivals and then unlock more events. If you join another player’s world, it’s highly likely you’ll complete events that you haven’t unlocked back in your own game and after an hour or so, unlock a great deal of content.

To ensure that the experience was smooth and easy to understand, we created a “Return to Game” flow. Whenever a player leaves a co-op session (or boots the game after being in one), they see a screen which fills them in on:

  • How many fans they earned
  • How many festivals they can upgrade or open

Finally, to deal with the fact that players might unlock events that they previously completed in a co-op session, we decided to mark the events as “completed” on our UI at the point of unlocking them. We also added VO to explain that the event was completed and there’s no need to repeat it (although the player is free to do so).

2. Players may own just a handful of cars and cannot enter events with friends

In Forza Horizon 3, we have over 350 cars and from very early on, one player’s garage may be completely different to another's. From a design point-of-view, this one was a little more straight-forward to solve, but did require a shift in how we thought about car ownership. We added a rental feature that lets any player in the session borrow the session leader’s car. As the leader is responsible for setting race restrictions, it means that every player in the session can enter any event that is set up.

The reason this required a shift in thinking is because this also applies to post-launch DLC cars. Theoretically, this means that players have access to cars they haven’t purchased. In this case, the vision of a frictionless co-op experience came first and we were able to implement this with no “ifs” or “buts.”

3. Players in co-op may be of different skill levels

We took this problem as an opportunity to create an experience where even if a player could beat just one Drivatar opponent, they’d contribute to the game. We turned every race in co-op into a “Team Race” by default. Players are placed on a team and race against the Drivatars that are placed on the opposite team. 100 points are awarded per opponent beaten, and a 50-point bonus is awarded for first place. This creates a situation where:

  • Highly skilled players can carry the team
  • Lower skilled players can still make a difference, even if they only beat one Drivatar

This solution not only creates a more skill-agnostic experience, but it also creates an intrinsically more co-operative game. Players now win or lose together! We even added small touches, such as naming the player team after the leader’s Gamertag and highlighting the team MVP during championships.

4. Players could play without mics or any form of communication

While not relating directly to our initial goals, this came up frequently during testing where players were not sat at desks next to each other. As players can join into a matchmaking game with other random players, it’s likely that they’ll end up in a game where the leader isn’t communicating their intentions. Meticulous players might take as long as a few minutes to set up a race or championship. To solve this, we decided we’d communicate any significant actions the leader took to all players in the session.

Whenever the leader sets a GPS route, the route is drawn for all players. When the leader is setting up an event, all players are notified. If the difficulty of the Drivatars in the session is changed, again, we notify. All of these small touches add up so that we reduce the frequency the player is sat in silence asking “what now?”

Why: Reaching a broad audience of players

With Forza Horizon 3, we really aim for a game where any players can play together. By addressing the above issues, we broke down the barriers which might prevent that. I can play with a friend no matter what language they speak, their video game experience and skill, their progress through the game or the cars they like to drive.

For me, this is what makes the many brainstorms and constant iteration absolutely worth it. The Horizon franchise is, in part, about bringing people together to celebrate cars, games, and music. With the effort the team has put into solving these potential issues, we’ve massively increased the ability for players to meet new people and share their adventure.

THANKS

Co-op campaign in Forza Horizon 3 is the result of the hard work of many people, but I want to specifically shout out to our online engineers Jim Allison and Stephen Edmonds, who approached every design change and challenge with a sense of tireless optimism!



Related Jobs

Plarium Michigan Studio LP
Plarium Michigan Studio LP — Portage, Michigan, United States
[10.22.18]

Senior Game Developer
Remedy Entertainment
Remedy Entertainment — Espoo, Finland
[10.22.18]

Senior Gameplay Programmer
YAGER Development GmbH
YAGER Development GmbH — Berlin, Germany
[10.22.18]

Lead Backend Engineer (f/m)
YAGER Development GmbH
YAGER Development GmbH — Berlin, Germany
[10.22.18]

Senior Dev Ops Engineer (f/m)









Loading Comments

loader image