Hi,
I was just wondering out of curiousity what has been done with the concept of time travelling for game design.
I know a lot of games that have time travel like gameplay. In some you can rewind time like Prince of Persia Sands of Time. In some you can slow time down like the bullet time effect in Max Payne. In some like Chronotron you can go back in time and create duplicates of yourself so you can solve intresting puzzles. And in almost every other video game out there what you do in the present will have an effect on the future.
So I was thinking what can be done with the concept time travel which hasn’t been done before. So I first started thinking in Portals where you can shoot a portal to the past through which you can travel through to a place and time in the past where you see a pre recorded version of yourself doing everyhtning that you done before. recording start at the beginning and ends when you go through a portal. In this way you can be doing many things at once.
But it still feels a bit like a Chronotron like game. So it got me thinking how can I realize both forward and backward time travel in gameplay and have fun with it. Now going back is easy but how to predict changes in the future by actions you make in the present. How far you can go with predicting the future course of the game is dependent mostly on the amount of choices you give to the player. The more choices the more fun the game the more difficult it becomes to predict behaviour and alternate futures.
So basically what I want to do is create a system that procedurally generates a world defined by the choices the player makes. A world in which you can travel both forward aswell as backward in time, where it actually means something in the future if you change something in the past.
I just want to know if anybody has experience with time travel concepts in there designs.
And does anybody have any suggestions how to realize a way to predict and generate a future world based on player action/choices.
tl;dr Your ideas about Time Travel in video games.
I think you’d have to come up with some rules for how time travel works in your world, or you will soon run in to the sort of paradoxes that get discussed to death.
What do you do when events in the current timeframe affect something the player already did? Whatever action they took may not be the same in the new circumstances. It might even be impossible.
One option would be to have some system for storing episodes in time and determining if they are affected by an action. The player could be warped back or forward to the point affected and forced to reconsider their choices. This may create interesting, unpredictable gameplay, with the player having to consider carefully the consequences of their actions. Or it could create horribly repetetive gameplay which the player feels out of control of.
Another option would be to keep the gameplay as the core timeline, and have others work as closed loops. So every action has to happen. If you render an action impossible then you fracture reality creating a new alternate dimension. So as the player moves through the game, things they did could be erased from the history books of their world, but they occur in an alternate reality (where presumably the subsequent action did not). This could lead to various possible game mechanics, like dimension hopping (allows you to ensure progression is never impossible - you know what you need is out there but the more convoluted your choices, the harder it is to find which dimension it will be in), or perhaps some sort of negative consequence of fracturing reality too much - again, encouraging the player to be mindful of their actions while not forcing them to be.
Interesting topic. Just musing.
Edit - I’m coming at it more from the angle of a story driven game with a fairly discrete set of possible actions, and characters. As the game gets bigger it would get a lot harder to keep track of all the permutations. So that just means it’s ideal indie material eh?
I’ve worked on a concept for a mainly physics based game that would allow you to manipulate an event at the beginning and then go forward in time, stop it, make adjustments and launch new objects at any place in time and space. And you would have to achieve a goal that you couldn’t hit without that pre-calculating of the physics interactions.
Physics is rather easy to predict in theory, real-time engines turned out to be difficult though, because of fps and accuracy relations.
Anything more complex then pure physics is in my opinion almost impossible to predict in any believable way.
Players want to have choices and not feel like there are preset paths anyway. One is kind of excluding the other.
But maybe a story that is already set and shown to the player. Like in butterfly effect. And you’re goal is to change it at specific points in time to change the ending. (save the world…)
As the idea of ‘butterfly effect’ suggests, any change in the past can have unexpected results that makes you have to change other variables and see how it plays out.
There are still a few possible concepts out there and I think some could be made into a game.
If I were to attempt some kind of time travel system in a game, here’s what I would start with:
Run the game rules at some fixed time step (every 10th or 20th of a second, or whatever is appropriate; like physics, but it probably doesn’t need to be nearly as fine-grained).
1a) By the way, keep this “calculate the next rules step” functionality totally separate from any rendering logic, and as lightweight as possible.
1b) Your rendering logic should always be interpolating between time steps, even in the “present”
After each time step, save the state delta (changes since the beginning of this step) for all the important rules objects in your game. I say the delta so that your memory doesn’t totally balloon.
If you later decide to travel back in time, just restore the state of your target point.
If you want to “change the past”, alter the state at the target point and then recalculate all time steps since then to determine what the present state should be. Since most objects will probably be unchanged, you could speed this up by only calculating your changed object, and anything it interacts with (and the latter only after the interaction starts).
Note that there are a lot of thorns to be dealt with in actually implementing something like that, but that would be my core algorithm.
If anyone is looking for an out of the box time travel solution, I wrote a component called Object Motion Tracker, which tracks an objects motion including rotation etc. It has a whole host of scripts including a time travel one. In theory it could be used with other systems as the component makes the data collected easy to access. As for travelling forward in time that is something I am working on, but it’s a tricky subject to tackle as there seems to be a number of ways to go, but making one that is generic based on a prediction using current speed etc might be the way I go. Self promotion I know, but it might help others quickly get a backwards travel solution! You can check it out here:
Hi Carpe Denius. Sorry if you are not happy with me promoting my work, it is not my intention to offend. These are genuine, relevant search results in the first 10 pages using the Unity search engine, promoting a product that Unity also makes money on which each sale. Also these are results that others would find looking for the very solution I have.
My posts will soon drop off the recent posts list and be forgotten until someone searches for them.
Digging up old topics to make duplicate posts is not really acceptable and is against the rules. It’s fine to mention your asset in a current thread, if it’s relevant.