The CitizenCon live stream is a mass of continuous video which makes it difficult to pull out specific panels, so on Sunday morning, I jumped over at The N00bifier’s channel for a recording of the “Building a Universe” presentation.
I keep saying this, but I feel that it’s a chronically overlooked point in why Star Citizen’s production is taking so long: it’s a seriously complicated product, folks. When people look at the game at arm’s length, it’s easy to dismiss it as “a spaceship MMO” like EVE or Elite Dangerous, neither of which took as long as Star Citizen has been taking to create. When you get closer to the warp and weft of the project, though, and start getting a look under the hood, reality becomes more apparent. In some cases, they are creating systems “good enough”, and are then going back to the drawing board once they know that they can do better. In other cases, they are taking time to do the right thing from the very start, and regardless of the case, the results can be pretty spectacular.
Persistent universe manager Tony Z. walked the crowd through a tool that his team had been building in “stealth” mode for a while, called Quantum. A quantum is a minimal amount of an entity that is involved in an interaction. In this case, that interaction is the simulation of activity in the Star Citizen’s persistent universe where the player is not that quantum. In shorthand parlance, it’s about background simulation.
The Problem With Traditional Dynamics
Based on the talk, traditional dynamic systems only look dynamic from in front of the curtain. For example, when we receive a communication out of the blue that a freighter is asking for help in fending off pirates, we are meant to get the impression that this is a “dynamic event” — we didn’t do anything to trigger the encounter, but we can take advantage of it or we can ignore it. Often times it doesn’t matter whether we respond or not (aside from getting paid for it) because we know it’s a simulated event created to “give us something to do”, but otherwise has no ramifications on the greater universe. Behind the curtain, the reality is that the devs have seeded a database with building blocks — freighters, pirates, and a probability curve of this encounter happening. It’s a lot less glamorous than what we are looking for in the heat of battle, but I believe that no one is under the illusion that these encounters are anything more than just “content” busy work.
In this screenshot example, the probability of encountering a freighter has reached 100% based on where the player happened to be at a particular time. However, the probability of encountering a pirate is its very own curve which has nothing to do with a freighter. We could just meet the freighter, wave, and be on our way, or we could meet the freighter and also the pirates. This is one way that some games might implement a dynamic event.
A more realistic, stronger model is to link these probabilities.
Here, we aren’t just calculating the probability of meeting the freighter or the pirate, but both as part of a single event. We could have this as a third probability in the database, alongside the single freighter and single pirate encounters. Whether it’s a freighter, pirate, or freighter and pirate event, these are just pre-built encounters that happened to proc based on various factors that developers have hand-coded as algorithms in the database, and have no actual gameplay weight after they’re complete.
Due to the scope of a game like Star Citizen, the fact that devs have to create these scenarios by hand, or even create the building blocks of these encounters by hand, means that they can’t possibly create enough across the expanse of a single solar system (never mind an entire universe) to the extent that these encounters will feel fresh and truly organic in as many times as we’d have to encounter them to make them worthwhile. After a time, these algorithms become recognizable, and while they can still be acceptable by the players, they aren’t really…real. And if there’s one thing that Star Citizen is aiming for, it’s for making things feel “real” (even painfully so…like getting out of bed every login).
Quantum and Simulation
So Tony Z and his team set about approaching this aspect from a different direction. Rather than just creating a system that would give players something to do, could they really create a self-sustaining system that didn’t just generate missions, but which could have actual effects on the wider universe?
This is where the Quantum system comes into play. It’s an advanced background simulation that generates NPCs as data (not as actual in-game entities, although they can be represented to the player as such when needed). Each NPC is created with traits: things they want, things they need, and extents to how far they are willing to go to obtain their goals. Some might be flying straight and narrow, and are averse to conflict. These NPCs will avoid shipping lanes which aren’t heavily patrolled, and won’t engage in illegal activities. On the other hand, there are NPCs who know that risk equals reward, and will take shortcuts through dangerous territory and might even dip into the black market if the prices are more attractive. As conditions arise that “attract” NPCs of certain persuasions, the Quantum system will generate them at a jump gate. From there, the NPC will “follow their nose” through the system in order to accomplish what they need to accomplish in order to realize their goals.
The Quantum tool shown during the panel started with a Stanton system empty of NPCs. Then they added an Aluminum mine to a moon, and suddenly NPCs started streaming in to harvest it until they had all filled their ships, at which point the NPCs vanished. With nowhere to take the Aluminium, the activity stopped. Then, they added a refinery to another moon, and suddenly the pipeline continued: full ships moved from the mining point to the refinery point, new ships moved into the system to start harvesting again, and empty ships returned for a new load. Next, a factory producing power plants came on line, and activity bounced between mining, delivering to refineries, delivering to factories, and back to mining. Finally, a shop was added, and…you get the picture.
As levers were pulled and dials…dialed…more resources were brought in, more refineries and factories and shops came online.
Eventually, once enough nodes had been provided for the NPCs to exploit, the real-time traffic map (and it was real-time, as this tool could also enumerate players and where they were at any time) looked like this:
This is a map made up entirely of NPC quantum making decisions based on their individual traits for where to go and when, what to get and why, and how valuable or dangerous the loop is to them. The graphs on the side are more real-time data points showing the quantities of materials at a location, how much items are selling for (minerals, parts, or products), how many workers are needed to perform the task, how many are performing the task, and how much those workers are being paid. Yes, workers will move to another facility if someone else is paying better wages which, as you can imagine, could be disastrous for production if enough of them abandon one post for another. Values can be adjusted on the fly, like how much Laranite is required to manufacture a product, which would then be reflected in the traffic of the NPCs as well as the graphs showing upstream prices and downstream supply.
Then pirates and security forces were thrown into the mix. Pirates set up bases of operation alongside popular shipping lanes (they zoomed in to show a pirate carrier sitting out in empty space, where the pirates were launching from). As they will sit on the lane and use interdiction techniques to pull ships from QT, the map updated with icons showing how many civilian ships were being assaulted. When security forces were let loose, they gravitated towards known points of conflict, attacked pirates (generating more conflict icons), and could be seen patrolling certain segments.
When looking at prices in this environment, you could see the ramifications of unchecked pirate activity (risk-averse NPCs weren’t moving as much, and prices for everything skyrocketed) and when the cops started patrolling where conflict had been detected (normalization of prices, and more NPC movement).
One aspect of this, of course, is economic. What Tony Z and the team have done is to create a system where resources are present — no big deal, from a relative standpoint — and simulated NPCs who don’t just have “a role”, but who have traits that will cause them to “make decisions”. These NPCs have the capability to perform a lot of the actions that players can also take, like mining and harvesting, transport, refining, and buying and selling. If PCs never show up, NPCs can operate an economy all on their own. Eventually (not shown in this tool) the NPC ships that were the victims of pirate activity will need to be replaced, resulting in a need for parts like engines and power plants and shield generators which won’t just be summoned out of thin air as we might see in other games. These parts will have been purchased from the markets, supplied by factories, supplied by refineries, supplied from NPCs and PCs mining and harvesting raw materials.
The other aspect, of course, is that NPCs now have a “natural” reason to call for reinforcements. Maybe a PC will be minding her own business, flying from Cellin to ArcCorp, only to be pulled from QT by a pirate interdiction at which point she’ll find herself in the middle of a battle between UEE and pirate ships, with a fleet of transports in the middle. If she helps the cops, then maybe the shipments can get to their destination. If she helps the pirates, then maybe the freighter is destroyed, sending prices up for several items, and maybe she can capture the ship herself and sell the goods for her own profit.
Needless to say, as someone who has spent a lot of time looking at how to model even the most rudimentary supply and demand system for a space trading game, this was the most exciting thing I think I have seen during CitizenCon 2949. This is not a simple undertaking. It’s something that I think a lot of people might assume happens in any game with “dynamic encounters” or non-player-driven economics, or who doesn’t even really give it any thought at all. This is like a “player-driven economy” in spirit, as there are very specific loops for harvesting, refining, manufacturing, and selling, complete with risk-versus-reward calculations that can have far-reaching impacts on availability and pricing. Once we do throw the players into the mix, they can alter these simulations further by becoming a new quantum in the system.