Making a game that allows time travel is no mean feat, especially when you allow multiple realities and multiple timelines to exist in the same visual, and sometimes temporal space. That's what Capy Games has done with Super Time Force
, which created a nest of curious paradoxes for the team to solve. As Capy technical director Kenneth Yeung told a crowd at GDC's independent game summit, "I got 99 problems and time is 100 of them."
"We wanted to make something simple, easy, a fun action game," said Yeung. "But in reality, when you're dealing with time, you're dealing with something that's complex and paradox-filled." And yet somehow they needed to make this mess feel simple and fun.
The main difficulty was building systems to deal with these sorts of time paradoxes. "What we realized was you can have a solid engine and idea, but without these solid systems in place, your game will for sure break down," he said. With their first prototype, "We realized the mechanics sort of collapsed under all these paradoxes that break the game down," he added.
"So we broke it down into three things," says Yeung. "One, causality violation. Two, butterfly effect management. And three, the quantum measurement problem."
By causality violation, he means the game violates the fundamental one way relationship between cause and effect. Instead, they have quantum entanglement - where two particles are set up in such a way that if you change one, the other changes, no matter where it is in the universe. "I's counterintuitive, but that's how reality works," he says. "We came up with the idea of entity entanglement. Two entities can become entangled from certain important timeline events that are happening."
Essentially, entities are tangled with key events.. Then all those events are stored from all past timelines, and their outcomes are forcibly re-inserted into the current timeline. Basically, if you killed an enemy and got a powerup in an earlier timeline, that still happens even if you kill the enemy sooner in a newer timeline. It helps to make the game "feel correct."
The butterfly effect describes when a small change in the initial state of a system can result in a large change in the final state of that system. "When you change something earlier on, the effects will cascade, resulting in a really large change later on," says Yeung. "We can alter the past. When you alter the past, you cause everything in the future to play out differently. 99% of the time it's going to be detrimental."
Capy managed this with level entropy. "We take the same idea you find in the second law of thermodynamics, but we redefine what equilibrium means. For us that means the state where all allies are alive, and enemies are dead," he says. "All levels must progress toward this equilibrium."
So for Capy, "any modifications to the timeline must never cause past enemies to be better off, or cause allies to be worse off," he says. They monitor all events happening across all timelines - they have to know the entropy of all of them, and disallow any events which would decrease level entropy in a past timeline. In game terms, they don't let people get "accidentally" killed by player action from newer timelines, such as destroying a platform an older timeline character jumped on for example. The platform can be destroyed, but if it existed in the past, the action will still take place for the character in the past timeline.
Lastly, there's the quantum measurement problem. There's that old saw, if a tree falls in a forest does it make a sound? No, according to quantum mechanics. "Particles do not exist in a definite state until they're measured by an observer," says Yeung. Similar to the Schrodinger's cat problem. If the box isn't open, is there indeed a cat inside?
The problem in Super Time Force
is players and their bullets can exist anywhere and at any time, which means everything in the world must be persistently active, which means unintentional interactions will happen everywhere. Because of this you lose the ability to control the flow of a level. Players will interact with things they haven't seen yet, for example.
"Our solution was to treat entities like quantum particles," he says. "It means that entities are only allowed to interact if they have an observer, in the same way particles only decide on their state if they have an observer."
They came up with what they call the Schrodinger system. This system calculates the sum of all regions of the world observable by any player (where they're looking), stores all these regions for every moment in time, and only allows entities deemed observable at any given time.
This means, for example, that enemies or platforms you could shoot off screen don't get shot until the camera (and thus your character) can see them.
In the end, Yeung says making a time manipulation game fun is quite difficult. One of the things you have to wrap your brain around is that counter-intuitiveness can sometimes feel right. Ultimately, he says, "feel is more important than being logical."