Home    LittleBigPlanet 2 - 3 - Vita - Karting    LittleBigPlanet 2    [LBP2] Help!
#1

Reversing Time

Archive: 7 posts


This isn't really an idea I plan on seriously investigating any time soon, but it seemed like an interesting problem to try and think about.

How would you go about making a mechanic that let the player "reverse the flow of time," like you see in Prince of Persia or even moreso, in Braid?

The best way I can think to do it is have a counter rigged to a positional sequencer. Every time you begin an "action" (which you could define as moving, stopping, jumping, falling, grabbing, or any other actions you would want to include in the level), the counter and therefore the sequencer increments. At each location on the sequencer is a timer for each action, that checks to see if you're performing the action and then starts filling if so. Then, when you push the rewind button, the timer will begin emptying and will do an action opposite of the one you did previously. So if it recorded that you walked right for two seconds, it will instead make you walk left for two seconds. When the timer fully depletes, it causes the sequencer's counter to decrement, moving you back to the previous moment.

A few problems seem apparent to me. The first and most obvious is, eventually you're going to run out of positions on the sequencer to record actions with. If you just use a straight-up counter then you can only record up to 100 actions, and even if you use more complex logic to send signals with numeric values smaller than 1, you're inevitably going to come up against a finite number of actions. This isn't really a problem, in and of itself; for instance, going back to Braid, I think that game only records your last 30 minutes, and you can't rewind to before that point. Where the issue is, is how do you free up used up space on the sequencer? Obviously you want to get rid of earlier actions first. Resetting the timers wouldn't be anything difficult. But once you've done that, how do you slide every timer value backwards one sequencer position, to free up the most recent slot for the next action? You could have every timer able to send out an analog signal to the one behind it, but if it's on the sequencer you won't be able to actually send the signal without flinging the sequencer through every point, and even when you did, you would have to either make it so you're sending the exact amount of recorded time, or you're going to have to upscale the signal to the correct recorded time. It seems like you'd be building up a ton of delay in something that would have to happen, if not instantaneously then so quickly that the player can't detect it.

The other problem that occurs to me is gravity. it wouldn't be hard to record the amount of time that Sackboy is in the air. But how do you make him fall in reverse? You'd have to have a mover that starts off fast and gradually gets slower at the same rate that sackboy originally sped up when falling. Actually, maybe that wouldn't be so hard. You'd just need to work out the terminal velocity for sackboy with whatever gravitational settings you'd use, and make an upwards mover set to speed scale that has the same maximum velocity. The timer length would have to be set to the time it takes to reach terminal velocity, so that the amount of time it records a freefall would be equal to the percentage of the terminal velocity that sackboy was moving at when he landed. LBP does have a concept of terminal velocity, right? I imagine it would have to.

So, okay, maybe that's not a problem so much. The sequencer thing seems like a tricky problem though! And with an idea this crazy I'm sure there's lots of other more subtle problems to solve. If anyone could help solve the sequencer problem or point out other issues you might have to deal with then I'd be all ears! I dunno I'm neck-deep in this other idea right now, but it might not be a bad idea to get two projects going at once, so I can work on one when I start getting bored or frustrated with the other.
2011-02-23 05:37:00

Author:
Speed Racer
Posts: 156


The logic behind this is unfathomed in fact I'm not sure it's possible. However, anything is worth trying.2011-02-23 06:17:00

Author:
fireblitz95
Posts: 2018


Oh yeah, no, actually making levels with this would be a nightmare

I think it'd be cool as all heck to pull off though

The other time-effects in braid seem like they'd be easier to copy. The one where your horizontal position determines your temporal position might not be too friendly to duplicate, but the recorded copy and the time-slowing ring seem like they'd be fairly simple to do.
2011-02-23 06:28:00

Author:
Speed Racer
Posts: 156


Hmm... OK, bear with me... Brainstorm... It isn't possible due to thermo (I think)

If you emit a block for every movement, and on every block there is movement that is an opposite reaction all the blocks are stacked in order. When the player presses the rewind button something goes over the blocks to activate the movement. Then the block falls down or resets after the rewind is done. And to solve the thermo problem, the emitted rocks have life times.

ORRRRRRR

Have a bot emit a holo with a tag every like 1 second. When the player presses rewind button, the follower on the bot actives and follows the tags. You can have the holos destroy themselves after the player has activated the reverse and the bot has been over the holo for .1 seconds or something.

UHHHHHHhhhhhh....

It sounds a little far fetched, but sounds interesting.
2011-02-23 06:43:00

Author:
Devious_Oatmeal
Posts: 1799


the trail of tags to follow would definitely be simpler, but because of that it also restricts what you can do with the idea.. The only problem with it is that you wouldn't get a correct simulation of the speed that you were moving, and there wouldn't be any accounting for time spend standing around, backtracking, or grabbing things/activating switches in some way

If you only ever moved in the same direction while time is moving "forward" then the idea would work. It seems a little too limiting otherwise though.

Why do you say my sequencer idea is impossible due to thermo? It's pure logic so it seems like it would be far less thermo-intensive than either of your ideas, even if it would be a large amount of logic.
2011-02-23 07:15:00

Author:
Speed Racer
Posts: 156


Oh. No I meant my first idea would be impossible due to thermo. lol.

I realize the limitations my idea had. Well think about it. If the player stood in one spot for 3 seconds, the emitter would emit 3 holos. And the space between the holos could represent spead. Similar to AutoCad's frame adder thing. Like it fills in the spaces.

This time travel idea is very possible..... but the tools might not be able to handle it. Logic doesn't take up thermo, but it takes actual RAM or something to process all the logic. It tends to have "holes" in it as well.

BTW, how fast did you want the rewind process be?

Sometimes my words be strangers to persons.
2011-02-23 07:27:00

Author:
Devious_Oatmeal
Posts: 1799


For the sake of simplicity the rewind should probably be the same speed as the forward

I get that it would emit three pieces of holo, but wouldn't all three of them get destroyed at the same time when you go back through them?

If you run up against the actual limitations of the hardware then you could always just reduce the number of actions that can be recorded and invite the player to Deal W/ It.
2011-02-23 18:51:00

Author:
Speed Racer
Posts: 156


LBPCentral Archive Statistics
Posts: 1077139    Threads: 69970    Members: 9661    Archive-Date: 2019-01-19

Datenschutz
Aus dem Archiv wurden alle persönlichen Daten wie Name, Anschrift, Email etc. - aber auch sämtliche Inhalte wie z.B. persönliche Nachrichten - entfernt.
Die Nutzung dieser Webseite erfolgt ohne Speicherung personenbezogener Daten. Es werden keinerlei Cookies, Logs, 3rd-Party-Plugins etc. verwendet.