- Worked on Elite: Dangerous for over two years, from production through to release and expansions. This includes overseeing a small team of designers working on the game’s procedural mission system. The game is currently available on PC and Xbox One.
- Lead designer on the procedural mission system from inception to the ever-improving system we have now, this includes helping to design the xml based state machine system used to author the missions. The mission system deals with a unique set of challenges that haven’t been seen before in games and is consistently getting better from release to release.
- Lead designer on the background simulation system from prototype to implementation where I work closely with the server team to identify and solve issues and edge cases on a huge scale.
- Involved in creating the community events that provides the game’s larger narrative. This includes designing the community goal system that allows thousands of players to have an influence on the world, and designing stories for players such as the reveal of a crashed alien ship via riddles.
I am currently working on Elite: Dangerous on both the PC and Xbox One. Elite: Dangerous is a huge space simulation game based in a one-to-one scale version of our own galaxy. Based on the original Elite, players are given the keys to their first spaceship and the freedom to do whatever they want. Their actions help to shape a living dynamic universe filled with both NPC factions and other players.
I was brought on to the project part way through it’s development specifically to look at high level design elements. This included designing and implementing the background simulation, procedural missions and community goals. The mission team currently stands at three people and I am responsible for prioritising and delegating both tasks and fixing bugs.
Procedural Mission System
The majority of my time spent on Elite: Dangerous has been working on the mission system. This includes both design of the mission system and implementation of the mission templates themselves. At the current time, the mission team includes three designers (including myself), two gameplay programmers, and a writer.
Missions in Elite have to be procedurally generated because of the vastness of the game and the number of concurrent players. This leads to a lot of unique challenges, because as a designer I can rarely rely on certain data being available. For example, the destination station in a system could be either very close, or very far from the player’s entry point into the system (the sun), often we are unable to rely on this information being available when we create the mission. This lack of reliable data means that missions need to be designed in such a way as to avoid bugs. In this particular example, we moved away from putting time limits on the missions but added in mission elements that offered a reward if the player could reach their destination in a certain amount of time. These additional challenges would only become available once the player reached the destination system and we had the information required to balance the mission. Issues such as this are common in a system that is required to work across thousands of different randomly generated systems meaning that the missions in Elite have very simple objectives and narratives. This is in keeping with the sandbox nature of Elite as a game.
As part of creating the missions for the game an editor needed to be created, and I was a part of this process from the very beginning. As it currently stands the mission system uses an XML-based state machine and variable generators. In some respects the editor works in a similar manner to a visual scripting language.
Moving forward I want to push the narrative side of missions in Elite, the concepts of persistent NPCs and chains of missions, which could both add real life to the game. Both of these elements can add additional consequences to the players’ actions that are missing with the simple systems that we have at present.
The combination of a huge procedural galaxy, a large player base, a unique multiplayer environment and a need to generate thousands of missions a day have provided unique challenges. I am extremely proud of the mission system in Elite as I believe we have conquered real challenges that haven’t been faced in many other games.
The Background Simulation
The background simulation is one of Elite: Dangerous’ most unique features, a simulation that needs to take in the actions of thousands of players across dozens of servers and turn them into a living, breathing galaxy. The simulation is based around the concept of faction, each representing a group of people looking for power within a system. Each of these factions have their own political views, assets and can be put into various states (such as famine, boom etc). The factions fight over a resource called “influence”, representing their control over a system’s population. Accumulating this influence can lead to wars and expansion into new systems. The system is designed to influence every facet of the game, with the different states that a faction can enter impacting what NPCs they spawn, commodities they buy and sell, and the missions that they offer. Players actions in the game directly affect the amount of influence a faction gains or loses, and what states they enter.
I’m the only designer who has worked on the background simu, working alongside the head of the game’s server team. Due to size of the open world and the amount of data used it can be incredibly challenging to identify issues within the system. I’m very happy that the background sim, although simplistic, is working well and that the community have really embraced it. A large number of players have chosen to ally themselves with factions in the game and use the background simulation to improve that faction’s standing in the game.
Community goals and events
Finally, I am part of a group of high-level developers who have input on the high-level story elements in the game. This includes all community goals, events and the overall direction of story in the game.
Community goals are story-based events that occur in Elite: Dangerous in which the community are given targets to reach. Upon reaching these targets they receive monetary rewards along with larger global and story-based rewards. The targets are based on certain action types: such as trading a good type, collecting bounties or fighting in wars. Because Elite: Dangerous has a PvP and instance based multiplayer structure this is a way for the whole community to work together across instances to interact with the games narrative without them having to be within the same instance.
Community events are less common but include any community interaction with the story of the game. The most recent example of these was the reveal of a crashed alien vessel (the first evidence of aliens in the game). I designed a logic puzzle and hid the clues in marketing materials and news posts within the game itself. The event was a real success, with thousands of players taking part and the community really enjoying both the mystery and the reveal.