Game Design Deep Dive: Managing randomization, frustration in Everspace
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 maintaining player tension levels in Nex Machina, achieving seamless branching in Watch Dogs 2’s Invasion of Privacy missions, and creating the intricate level design of Dishonored 2's Clockwork Mansion.
My name is Hans-Christian Kühl, and I am a senior game designer and programmer at Rockfish Games in Hamburg, Germany. Together with about a dozen talented colleagues, I have been working on Everspace for over two and half years. It’s the studio’s debut title and was released on PC as Early Access and on Xbox One as a Game Preview in September 2016, followed by the full release on May 26, 2017.
I’ve been developing games for 13 years now. It all started at Fishlabs Entertainment (now Deep Silver Fishlabs) with 3D mobile games on Sony Ericsson and Nokia feature phones, where I was mainly responsible for Galaxy on Fire I and II, as well as Deep 3D: Submarine Odyssey. I then ported the Galaxy on Fire series to iOS, worked on the two add-ons, and helped with porting the games to MacOS and Windows.
In 2014, Michael Schade and Christian Lohr, the former founders and managing partners of Fishlabs Entertainment, started Rockfish Games as a new indie studio to create high-quality PC and console games with a premium business model. Some co-workers and I took the opportunity to join them and work on a space game which has now become Everspace.
Because of our love of space and sci-fi, and our previous personal track record with the Galaxy on Fire series, it soon became clear that we wanted to create another space game. We knew we couldn‘t afford to create the epic sandbox space opera like Freelancer that everyone dreams of (we still do), so we had to come up with something new. Something smaller and more focused.
Because challenging, rather unforgiving games have recently enjoyed a renaissance, we came up with the idea of creating an action-focused space game where the player dies a lot, set in a randomly created environment to offer a different experience each time they start anew.
We play a lot of games, and some of them offered inspiration for aspects of the game design, most prominently:
- Freelancer: Every one of us loved the easy mouse and keyboard controls and absolutely wanted Everspace to have similar controls.
- FTL: This game’s basic framework was something we wanted to have as well. Press start, choose a ship, upgrade during the run, and reach the last sector.
- Rogue Legacy: Collect money, die, then spend the money on permanent upgrades that will make all following runs easier. This is a brilliant way to make up for the disappointment of dying during a run.
We combined these features with fast-paced 6-DOF (6 degrees of freedom) combat mechanics and a personal sci-fi story which slowly unfolds as the player advances through the sectors. Finding and crafting new equipment and resources is done on-the-fly, so the further the player gets in a run, the more powerful they will become. At least until they die and lose everything except found blueprints and credits. The main loop is: Select a ship – Try to reach sector 7 – Die or succeed – Upgrade and unlock new ships and perks – Start again.
When designing Everspace, we had to be careful not to get carried away with trying to add too many features and instead focused on just a few aspects and then put more depth into them. I picked two aspects that I think are worth mentioning because we put a lot of thought into them. So this is not an overview of everything that makes up Everspace, but a couple of its key game design elements and how we implemented them.
On dampening frustration: Looking at the Game Over screen is a frustrating part of playing any game, especially if the game is so hard that you die a lot. We added several things that work against that feeling of frustration so players will say “Bad luck, my mistake. Let’s try this again!” instead of “This is unfair, and I’ve lost everything. I’ve wasted an hour of my life for nothing!”
Reward for dying: The moment the player dies, they see a screen listing the gains of the last run, including credits and permanent unlocks like colors, enhancements, or blueprints. Then they can spend the collected credits on upgrades that make them stronger by improving their stats and unlocking new gameplay possibilities.
This is the most important feature to reduce frustration, and in the best case leads immediately to the next run. During production, the title said “Congratulations, you are dead!” We shortened it to “KIA” for release, but we really do mean the former.
Don’t take your time: The longer you play, the more frustrated you’ll be if you die, so we wanted to keep the runs short. We initially targeted one hour for a completed run, which we overshot by 30 minutes for an average run, but it still feels pretty good (and experienced late-game players can finish a run in under ten minutes).
The most visible method of minimizing a run’s duration is the arrival of alien forces to drive the player out of the location if they linger for too long. If the player continues to dawdle, a colossal warship will eventually arrive as the final bit of persuasion. Some players have complained because they want to explore everything, rather than being hunted. But we really have done it for their own good. Also, players can now earn in-game ways to delay or even prevent the arrival of reinforcements.
We also wanted to ensure that players don’t have to spend too much time in menus. That’s why Everspace does not have a traditional inventory. Equipment items must be placed in a slot, salvaged, or used immediately. When players find equipment, it takes only a few seconds to swap, use, or salvage it, and then continue their flight.
Play fair: When watching streamers playing the game, we often see that there is a certain degree of understanding when their ship gets destroyed. Sometimes they’ve pressed the wrong button and turbo-boosted into an asteroid, or forgotten to repair their ship or regenerate energy before engaging in a fight, and often they’ve just risked too much. So no one really complains about the game being unfair, and that’s a good thing! Though there can be times when the RNG (random number generator) will give you a very hard time by spawning the hardest enemies and situations all in one location. In almost all cases, however, the problem can be overcome with skill, strategy, and patience.
On randomization: Like any classic rogue-like game, players will start a new run numerous times, so we had to make sure they do not get bored by presenting something fresh every time. I want to note that “fresh” does not necessarily mean “new,” but rather “different.” We are a small team and can only create so many new assets and features before players start to encounter the same things again. We had to come up with a plan to utilize our assets in the best way possible to achieve the best effect.
Creating the sectors: Everspace enables players to progress a little further on each run because both their skill and their ship’s stats improve every time they play. This correlates directly with how we designed the sectors, and with how we generate each new run. The higher the sector number, the more the difficulty increases in several ways:
- Locations (the actual gameplay areas) have a risk rating. The higher the sector number, the more locations or jump points it has and the greater the chance that a location will be more difficult and yield more credits and resources. Variations in the number and position of locations results in different intersecting paths, some potentially longer or more difficult than others.
- The player will encounter more diverse and more difficult enemies as they move forward, requiring the player to become stronger both between runs and during the run itself by finding or crafting better equipment.
- Natural hazards occur more often in later sectors, with increasingly challenging hazard types possible.
- With each new sector reached, the list of structures that can be encountered (Outlaw outposts, derelict stations, wrecks, asteroids, etc.) grows.
Creating the locations: A location is an area where the actual gameplay takes place. Though it’s a 3D space, it’s not a perfect sphere, but rather a cylinder with a diameter of 10 kilometers and height of about 3 kilometers. So it’s basically a flat plane with some room for objects to spawn slightly above and below it. Because we do not have a mini-map, this helps tremendously in finding one’s way.
Each location has a certain number of points it can spend on the POIs (Points of Interest) it can spawn, depending on the selected difficulty level and the current sector number. A POI can be an alien patrol, a freighter wreck, an Outlaw station, a huge hollow asteroid, a mining outpost, etc. Each POI has a score that represents its difficulty and its probability of appearing in a given sector, so many location scenarios are possible: a balanced location with a little bit of everything, or maybe just a few large Outlaw outposts, or perhaps a relatively quiet mining facility with resource freighters and some surprise attacks. Combine that with the randomized appearance and placement of planets, stars, asteroids, plasma fields, black holes, mini-missions, and loot containers, and you get a fresh location each time you play.
This all sounds like a good way to create a virtually unlimited number of exciting playgrounds, and it is, but there are also downsides:
- If you don’t work with a lot of restrictions, strange things will happen. We had asteroids blocking doorways or stationary warships spawning inside of jump gates, making it impossible to get away. We had two of the same type of Outlaw station spawn right next to each other. We had black holes spawn right next to a mining outpost, dragging all NPCs into it immediately. We also had (and sometimes still have) missile turrets that pose no threat because they will always hit an asteroid which spawned directly in front of them.
- If you work with a lot of restrictions, strange things won’t happen. With all the restrictions in place, we still have a lot of variance between locations, but we rarely see any real surprises. There are no locations with just two freighters in it, no locations which are full of asteroids and nothing else, and no locations with a dozen black holes or a battle between fifty NPCs.
The price of control is uniformity here. Apply more restrictions, and you will get more reliable, but also less interesting outcomes. Custom scenarios with special rules that come up now and then would have been a nice addition, but this idea did not make it into the game.
Creating the NPCs: We intentionally excluded all non-player characters from any randomization except for the loot they drop and the length of freighters. So you can be sure that Outlaw Scouts will spot you at a 2.8km range, shoot at you with Gatling guns, and have more hull than shield hit points. This is important because it allows memorization of each unit’s behavior. The first encounter may be surprisingly hard, but the more players observe their enemies, develop their skills, and learn how to best use their equipment, the more seasoned and capable they will become. Randomized enemies would only dilute this “Git Gud” experience.
Everspace is a game that combines old-school skill-based dogfighting with modern rogue-like (or more fittingly “rogue-lite”) elements. Not going for the all-embracing epic space opera and being limited to a small team helped us focus on the most important features: Live-Die-Repeat game loop, easy controls, and impressive graphics (because I heard they were pretty good).
Exploring the power of randomization has taught me a lot, and I can see its usefulness for multiple upcoming projects. Also, keeping players happy after the Game Over screen and motivating them to try again worked surprisingly well. I’m curious to see how other games will handle this and which combinations of established game design aspects we will see in the future.