On the subject of time travel

Discussions about UT99
Post Reply
JackGriffin
Godlike
Posts: 3774
Joined: Fri Jan 14, 2011 1:53 pm
Personal rank: -Retired-

On the subject of time travel

Post by JackGriffin »

One of the ideas Bob and I bounced around was the idea of a true time travel element embedded into the map. Implementation was that if you found a particular time travel artifact you could activate it and time would roll backwards 60 seconds. I'm curious about the feasibility of this as a concept.

The rest is scripty engine discussion. If you want to check out, now is a good time.

So a server side demo keeps a running log of actor locations. This 'plays' in order and a demo is rendered. Is it possible to use this process to reverse the flow of time and move actors backwards through the log? You could literally replay the last 60 seconds backwards and get a sort of replay. Since the demo file tracks everything you could reset scoring, everything. Do you see where I'm going with this? Has anyone ever figured out how demos are stored and if they can be harvested for specific data?
So long, and thanks for all the fish
Xenwarrior5
Novice
Posts: 5
Joined: Mon Oct 01, 2018 5:33 am

Re: On the subject of time travel

Post by Xenwarrior5 »

Wow.

Kicks my ass.

I've never messed around with server code for ut99, but that sounds crazy awesome. If someone DID find a way to make the rewind artifact, what do you think would happen if you rewound by 60 seconds, when the match has been going on for 59 or less? Would it crash?
JackGriffin
Godlike
Posts: 3774
Joined: Fri Jan 14, 2011 1:53 pm
Personal rank: -Retired-

Re: On the subject of time travel

Post by JackGriffin »

I can't really answer that. My guess is it just would go to the map start again since there would be no more data to 'rewind'. This is easily avoided by just not spawning the artifact until sufficient time has passed in the game.

I could build this now by simply logging player positions, frag count, ammo, etc. every 30 seconds then when someone used the artifact the game would instantly rewind (with some visual effects). However I really wanted to do this so people could visually watch the game walk backwards and then restart.

This all may just be a silly discussion but time and gravity are the two things no one has really ever messed with successfully. That means I want to do that.
So long, and thanks for all the fish
Terraniux
Masterful
Posts: 717
Joined: Mon Jan 05, 2009 8:08 pm
Personal rank: Banished member

Re: On the subject of time travel

Post by Terraniux »

I like this idea! Yes, keep this a warm fire :D
This member can only post when permitted.
User avatar
Feralidragon
Godlike
Posts: 5489
Joined: Wed Feb 27, 2008 6:24 pm
Personal rank: Work In Progress
Location: Liandri

Re: On the subject of time travel

Post by Feralidragon »

Purely in the realm of possibility, this is possible to do to an extent, as for the most part you only have to record a few key properties from actors over time (once a second for example), so you're able to either change them back or respawn them and set those properties.

However, you cannot do it for 100% of the things, because this would imply to save the entire game state once per second, something which I only imagine to be possible at all at the native level, and even then with quite some work.
And even if you could, it would be highly inefficient, since this would translate to be using almost as much memory for each state as for the entirety of the game for every second (not quite as much of course, but it would be the worst case scenario).

In order for this to be efficient, it would need to be done in a similar way on how demo recording works, or even replication (both of which follow the same rules, apparently), and just record event calls and changed properties over time, and simulate a lot of the stuff like physics (instead of saving each location).
However, this is not very easy to do unless the engine is exceptionally well crafted in this regard, which doesn't seem to be the case even in UE4, given that Fortnite has a replay feature which seems to work in pretty much the same way UT demo recording works in UE1 (just a bit better), and it has quite some problems, especially when you select a random point in time (like the day-night cycle being messed up at times).

In practice, what I actually mean with all of this is that, you have to pick and choose on what exactly you want this feature to work on.
If it's the players only, it's very easy, if it includes things like projectiles, is slightly more complicated especially since projectiles can have very different behaviors and may cause issues if tempered with, unless you create a Projectile class and make the game use your own projectiles for everything.

Furthermore, on the subject of playing with time, I have actually been thinking, for several years already, in implementing "something", like a time bomb, which would slow down time for everyone by you and your teammates.
This could achieved by making the player faster in the same proportion the time got slower, theoretically anyway.
User avatar
'Zac
Experienced
Posts: 111
Joined: Tue Jul 29, 2014 9:35 pm
Personal rank: Who knows.
Location: NC

Re: On the subject of time travel

Post by 'Zac »

I once pondered about this idea. The thing is how do you keep track of past locations and such of a player and events? My idea was to look at how the UT demos play out, they capture 'simple' data to be saved into a .demo file that can be played out decently enough to be replayed. Though, i think it could be hard performance wise, especially server side.

Though, I am interested what ya can do!
Prophunt for UT99!!!
Image
Github
User avatar
EvilGrins
Godlike
Posts: 9668
Joined: Thu Jun 30, 2011 8:12 pm
Personal rank: God of Fudge
Location: Palo Alto, CA
Contact:

Re: On the subject of time travel

Post by EvilGrins »

Let's say you're about 20 minutes into a game and you activate something that takes you back to the 1st minute... does that mean those you didn't kill back then you now can?

Gonna give the scoreboard a heart attack.
http://unreal-games.livejournal.com/
Image
medor wrote:Replace Skaarj with EvilGrins :mrgreen:
Smilies · viewtopic.php?f=8&t=13758
JackGriffin
Godlike
Posts: 3774
Joined: Fri Jan 14, 2011 1:53 pm
Personal rank: -Retired-

Re: On the subject of time travel

Post by JackGriffin »

That's silly EG. 60 seconds would be a LOT to rewind. My guess is that 30 seconds is closer to what would be interesting. Ten minutes is too much wasted effort on the player's part. I don't want to ruin games.

I posted this on Discord but I'll ask here too. Does anyone have experience with altering the game clock on the fly? Can you add time back to it without creating pandemonium?
So long, and thanks for all the fish
User avatar
PrinceOfFunky
Godlike
Posts: 1200
Joined: Mon Aug 31, 2015 10:31 pm

Re: On the subject of time travel

Post by PrinceOfFunky »

Feralidragon wrote:I have actually been thinking, for several years already, in implementing "something", like a time bomb, which would slow down time for everyone by you and your teammates.
This could achieved by making the player faster in the same proportion the time got slower, theoretically anyway.
That would be difficult for a player to speed up its reflexes too, you could instead divide the velocity for 2 at every tick for every actor except for the player and its teammates, but there would still be the problem of the direct hits of certain weapons like the enforcer, unless you make it use bullets like in the matrix mod.

We are not talking about actual time travelling, nothing would happen if you go back of 10 seconds when the match started since 5 seconds cause the " timeline" has to start from somewhere, it's all programmed.
Other than simulations, you couldn't get to a previous state without saving it first even natively, some functions(math) don't have their inverse(e.g. random function).

This is pretty much what demorec does: https://www.gamedev.net/forums/topic/61 ... me-series/
"Your stuff is known to be buggy and unfinished/not properly tested"
Post Reply