Time Travel Ideas?

Greetings to all who stumble upon this post. I am developing a game and one of the characters features a time travel ability. To clarify, this would be a simple teleporting to a specific time in the past, present, or future. I was looking for possible suggested methods on how to achieve this effect. My first thought would be to allow a client side freeze and re - animate the players in the game to do their recent actions. That isnt a solid method, but just an idea. I am open to any methods you all have used in the past to create such effects. Any and every detail of guidance you could give is appreciated.

7 Likes

One way that I can think of is logging the player’s recent positions and then just teleporting them back to these positions if the character activates their time travel ability.

1 Like

I see, and would this perhaps be in a module or…

If there is a single player in the game, this would made it much easier to do, but if there are multiple people, it’s probably going to be extremely difficult to pull off.

I suggest using Region3’s and using the time reverse in a specific area but the whole server could be okay too. The issue is getting the previous position, it seems really difficult to get that.

EDIT: Especially considering what if a player dies, that isn’t an animation and you’d have to get the position of each part and make it back to where it was before.

I would create a seperate map for the past with a slightly grayscale effect, where changes automatically update to the normal map

Just thinking on the fly here. But if I was doing this, I’d have a script with a table that logs all the players positions and refreshes every second, or half a second, or 10 seconds, whatever you want. And then you can run through it and send the corresponding player back to that location

So, I keep getting the feeling I would have to log positions, which is possible, but the issue is getting it A.) To smoothly reverse the actions of the players and
B.) Not allowing that effect to bc cause lagg.

Also creating a separate map @Zephyr_42 could you elaborate. As in a whole new game with the same map, or a copy of the map within the same game? I dont really wanna reduce responsiveness within the game because of one player’s ability.

It would be on the client, each player would have two maps. One is the main map (on the server) and one is their “past” map (on the client, not visible to anyone else)

Well like @fastkingyaya said, this would probably be extremely difficult for a game with multiple players. I don’t think you’d be able to easily make it a ‘smooth’ transition, so to speak. I’d create a workaround that gives pretty much your desired results, but takes a shortcut. I don’t think you’re going to be able to trace their steps entirely with all the animations and steps of the player without causing a lot of lag.

Are there any other ideas you guys might have to do a similar effect. For example, maybe I could make the player with this ability target one player, and make that player do something specific since time travel is so broad. Any, ideas on small abilities I could give to the user of time travel?

this is another suggestion unrelated to my first:

make the player invisible to other players and increase the player’s walkspeed/jump power a lot. basically this will feel like the player stopped time, without having to actually freeze any of the players. the player is free to move wherever during this time, and attacking a player will “send them back to normal time” (make them visible to other players and revert their walkspeed/jump power again)

1 Like

That is a good idea! I might try something like that

I don’t know if this would be of much help since I have no experience will this, but you could do you make a parable for each player of their position every 2 seconds for example. And when you what to “time travel back” you can use PathFindingService to walk to the last recorded position. You could then apply a different animation to get the walking backwards effect. Feel free to reply to me with questions.

1 Like

Maybe you can freeze the whole server except for the player for a certain amount of seconds, similar to what exploiters do. Also similar to the WebToon Comic, Dice, you can make other time travelers not be frozen if they activate they’re ability.

1 Like

I would go about it making the player invisible to everyone and making it look like everyone else is still to the player. Then let the player do things while everyone looks still, when they go back have everything the character did be inputed.

1 Like

One of my initial ideas was to sort of make a client side freeze, of the server, for a short amount of time and then allow that person to do damage to the “frozen” players on the client and update the damage to the server once time “unfreezes”. This would inter give sort of a speedster or quicksilver effect. I think I will however make the player invisible to the server and using the freeze idea.

1 Like

I don’t think reanimating a player’s movement history would be a very good idea… you wouldn’t be able to interact with anyone who isn’t actually in that position in time.

Just show only the players who are actually in the same time position as you. Making a day/night effect based on the time would help.

this would be better for the person stopping time but it’d be weird as a player if I randomly took damage out of nowhere when i’m walking around

Well I was thinking that it would require the player to appear once they have damaged someone and it could possible notify the victim. My only worry is that this type of power would become abusable in a game play setting