Gamasutra - Game Design Deep Dive: Frenetic Local Multiplayer in Emergency Water Landing
Gamasutra - Game Design Deep Dive: Frenetic Local Multiplayer in Emergency Water Landing
Gamasutra - Game Design Deep Dive: Frenetic Local Multiplayer in Emergency Water Landing
ALL CONSOLE/PC SMARTPHONE/TABLET INDEPENDENT VR/AR SOCIAL/ONLINE
Game Design Deep Dive:
Member Login
Email:
Password:
Frenetic local multiplayer in
Forgot Password? Sign Up
Emergency Water Landing
May 31, 2019 | By Johnathon Moss and Timothy Neville
May 31, 2019
Players can also pick up and launch floating debris at opponents either to steal their passengers, or
Horizon: Zero Dawn strategically prevent them from scoring. The game plays in fast paced 3 minute rounds, with player rafts
Design Analysis deploying as the plane comes crashing down into the water. The player who has rescued the most
Want to Boost Your passengers is the winner.
Game’s ROI? Tap Into
Your Community Our primary design goal was to have the gameplay feel fast paced and frenetic, with simple controls so
Composer Winifred that anyone could pick it up quickly and bring out their competitive spirit. We had grown up playing
Phillips answers Reddit's games like Mario Party and Bomberman 64, and wanted EWL to deliver a similar experience, with players
questions in viral Ask gathered around the TV shouting at each other and getting competitive.
MeAnything about
video game music
We wanted the visuals to reflect a flight safety card with it’s crisp outlines and flat shaded colors, so the
Video Game Deep Cuts: initial prototype began with a basic toon outline shader, and scene camera angled down from high above,
Observing A Playdate
with a crashed plane in the center, and the player controlled rafts all on screen at the same time.
With Some Cool Ghosts
Kliuless #36: The Tech
Cold War
Press Releases
May 31, 2019
Games Press
Pyre, Transistor, and
Bastion Get Super
Giant...
A Fusion of Art and
Video
Game: She and The
Light...
Mail.ru Group Reveals
New
Global Gaming Brand
MY...
TROVER SAVES THE
UNIVERSE
FROM FAMED RICK
AND...
The Princess, the Stray
Cat, and Matters of
the...
View All RSS This "safety cardesque" camera angle was the first constraint on how the gameplay was developed. On
the one hand it was a positive constraint, as it allowed us to write a simple camera controller that stayed
About relatively static, only needing to pan and zoom to ensure all players were visible on screen. On the other
hand, it meant we had to limit the play area quite tightly around the plane so the camera didn’t zoom too
EditorInChief:
far out making everything appear tiny amid a literal ocean of water.
Kris Graft
Editor: The obvious first step was to add barriers to keep players contained, so we added floating rope buoys
Alex Wawro
around the perimeter, courtesy of Unity’s Hinge Joints, which were easy to setup and provide a nice sense
Contributors: of flex and rebound when players run into them. Now that we had players were contained, we had to work
Chris Kerr
out how to keep them moving around the space without feeling too claustrophobic.
Alissa McAloon
Emma Kidwell
Bryant Francis We had played around with the idea of the plane breaking apart on impact at the start of the game which
Katherine Cross allowed plenty of space to maneuver around, but that meant an abundance of passengers all at once, and
Advertising: during play testing it ended up as a total free for all, with players swarming on passengers like piranhas.
[email protected] It scored well in the LOL department, but we wanted to encourage more strategy and create situations
where players would give chase, fighting tooth and nail to rescue those passengers.
Contact Gamasutra
So we decided to keep the plane intact throughout the round, until the final stages when it cracks apart,
Report a Problem
spilling out passengers as it sinks into the ocean. This led our attention to how each round was paced,
and we began playing around with the rate at which passengers were “dispensed” from the plane. We
Submit News
wanted the right amount of scarcity to cause players to have to fight over passengers and get creative in
Comment Guidelines their maneuvers, while ensuring there were always some passengers evacuating from the plane.
Blogging Guidelines To achieve this, we created an object pooling system that would instantiate a certain amount of
passengers per player at the start of the round, and dispense them at random intervals between 13
How We Work
seconds, at a random door or window exit of the plane. As a passenger gets rescued, it goes back into the
Advertise with Gamasutra
object pool and is added to the respawn queue, unless the plane breaks apart in which case it will spawn
all passengers up to the maximum, inside of the aircraft cabin, and no further passengers are spawned. I
Download Media Kit think we ended up with about 20 passengers per player + a static number of pilots and crew.
To keep players moving around the plane, we then looked at the rescue boat and how it’s path affected
players activity. In early prototypes it simply moved around the area in a clockwise fashion based on a
small number of waypoints. This became very predictable for players, and their encounters with each
other always tended to be a similar distance from plane, leading to a lack of variability in how they moved
Gama Network around the map.
If you enjoy reading this site,
you might also want to check To resolve this, we created a simple node based pathing system and setup several interesting paths for
out these UBM Tech sites: the rescue boat at varying distance from the plane. The rescue boat will move along a path in a random
direction, and once completed will randomly select another path and switch to it. We did intend on having
Game Career Guide the paths randomly generate at runtime, but the variability we achieved was enough that we could direct
our attention to more import areas of the game.
Indie Games
Another factor in how players would interact with each other and the world was in the predator’s
behaviour. We added predators, such as the great white shark, very early in development and played
around a lot with their behaviour to make them feel alive and a part of the environment. Our goal was to
have the predators keep players on their toes without appearing to specifically target player rafts in a way
that felt contrived.
Under the hood they use Unity’s Navmesh Agent system for path finding and navigation, along with
physics overlap sphere to find passengers and player rafts. Initially predators had no preference between
eating passengers and attacking rafts, so they ended up staying quite close to the plane to ensure a quick
meal. We wanted predators to be in a position to interrupt players as they were on their way to the
rescue boat with a haul of passengers, so we added a dynamic waypoint system to the predator AI.
The predator AI is quite a simple implementation, with the predator going between a patrol state, pursuit
state and attack state, with a cool down timer after the attack state. Following an attack state, the system
creates a waypoint between the plane and the rescue boat, with a randomized distance and offset, which
causes the predators to move away from the plane, toward the rescue boat. To add variety we added a
unique predator for each level, with the Orca whale in the arctic level being the most effective at
interjecting on players rescue plans.
The final piece of the puzzle was the passengers and the part they play in the core gameplay loop. To
keep with the fast paced rhythm of the game, passengers are instantly placed in player rafts when
collided with, rather than requiring a button press or animation sequence to play out. When a player raft
is rammed into by an opponent, passengers are ejected in the opposite direction of impact, meaning their
trajectory is toward the player who did the ramming.
With regard to saving passengers and scoring points when launching them into the rescue boat, we spent
some time and iteration to get this feeling good. In early prototypes, all passengers in the raft were
launched out at once, with the goal being to keep action fast paced. Though we iterated on this several
times, players found it hard to aim and would often miss the rescue boat entirely, as they couldn’t reliably
anticipate the trajectory of the passengers ahead of time.
One alternative idea for the saving passengers mechanic, was to have the player raft move alongside the
rescue boat and slowly offload their passengers. We had hoped this would create a sense of tension as
they tried to save their passengers, while giving other players the opportunity to interrupt them scoring.
It turned out to be more of an annoyance however, making it difficult for anyone to score when multiple
rafts were attempting to offload their passengers, while also ramming each other at close range.
We instead reverted to players launching passengers into the rescue boat, but instead, one at a time per
trigger press giving it an almost machine gun like quality. This gave players a sense of the trajectory of
their passengers, encouraging them to launch from a distance, without the risk of launching all their
passengers on a bad vector. In combination with each raft’s boost ability, players can execute some
exciting forward planning, boosting just out of the path of an opponent to score over the top of another.
Result: Frantic and fastpaced local multiplayer action
Overall, we ended up quite happy with the result and how the game plays. Especially when there are four
competitive players gathered around the TV. We feel the game achieves the frantic fast paced action we
set out to accomplish. There’s always plenty of laughter and the game really brings out the competitive
nature in players.
For our next project, we would definitely make more time available for play testing. Although we did do
some limited play testing with mostly friends and family, we feel the game would of benefited from
receiving more feedback and iteration to help achieve a more polished outcome. When you’re a small
team responsible for all art, animations, sounds, music, design and programming it’s easy for such an
important aspect to become neglected.
We also had a lot more content we would like to of added to the game before launch for example,
additional levels, AI opponents, more games modes. However, we decided it was more important to find a
balance between content and shipping the game on time.
Related Jobs
innogames —
Hamburg, Germany
[05.31.19] Harmonix Music
Frontend Developer Systems — Boston,
(Haxe) Elvenar Massachusetts,
United States
[05.30.19]
Senior Server Engineer
Hyper Hippo Games
— Kelowna, British
Legends of Learning Columbia, Canada
— Washington, DC, [05.29.19]
District of Columbia, Software Developer
United States Unity
[05.30.19]
Game UI Programmer
(Relocation to DC
available)
[View All Jobs]
Top Stories
Comments