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.
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.
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)
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.
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.
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.
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.
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