Slo-mo and super speed at the same time

Started by
3 comments, last by Dmytry 17 years, 11 months ago
I don't know if this is a Game Design or Game Programming issue, but anyway. Now remember the Matrix or for a more explicit example DBZ, how the main character would be moving so fast that everything is in slow-motion but the enemy/antagonist would see everything zooming past him/her? Yet these two differences in time dilation would be happening at the same time. So if I have player 1, this super fast character who can see everything in slow motion and player 2, a character not as fast (or not fast at all) seeing everything in normal speed how can i can sync the two up so everything is timed perfectly and there is no lag time or anything crazy. if confused i'll try to clear up.....

Beginner in Game Development?  Read here. And read here.

 

Advertisement
Basically, you can't. The only way you could do it is to slow down the other player but not give him the super-speed. Then it would appear slo-mo to player 2 and to player 1 everything but him would be slo-mo.
Ok you want one player to be super fast (super fast controller input) and play the game in slow mo (super slow visual output). And the others to see everything real time because their speed is normal, that would include seeing the fast player being, well, fast.


If you keep real time controller input on the fast player you get a problem. The fast guy can play things in slow-mo since the other players are giving enough input and he can cache it and play at a lower rate client side. But the slower ones can't predict what button is the fast player going to press in 3 seconds.

If they aren't supposed to interact (ie. fight, collide, etc) with each other, and won't, then they don't need to know what is exactly going on, the slow guy might just see speed lines and hear whizzles in the general direction where the fast guy should be. Fine, but you say they are fighting so I guess it doesn't help you.

The fast player is looking at this slow mo video that will need to catch up sometime. How you do that without jumping directly to the current time is up to you.

Now, doing exactly what you want without any lag or anything crazy would end up desynching the players, for one to be faster then he has to be actually faster or the other slower, with the problems that any of them would result on player control ("I can't control him, he is too fast!" "He is too slow"). You can speed up one a little and slow the other, so they don't hate it. That won't let you have insane speed differences though.


Now I guess you prefer to keep the most players without network problems, you can't slow the simulation of the slow guys so they will be playing the game a normal speed, server speed. It is just the problem of the fast player, if he wants to make use of his super speed he will have to live with the problems.

Since the server speed will be that of the slow players, then the fast player will have to provide input fast. A button (mouse scroll?) that lets the super fast player control his speed so he can accelerate while standing still and punching, or when moving in a straight line. That way he can still stay in control when he needs to move with precision, a Turbo button.

When in turbo, the screen plays in slow-mo but the input doesn't slow down, it stays real time, faster than normal because you are in turbo mode. Slower players receive your super quick movements realtime, that way the only one desynching is your screen.

If you drop the slow mo on the fast player then you get no problems really. If you don't you can help removing idle frames and playing at regular speed until you start giving input.
All participating humans who are supposed to move slow have to be accelerated to near the speed of light.
It should be really simple to understand: computer isn't no time machine,
(and gaming gear doesn't include near-speed-of-light drives or blackholes.[wink])

Basically, if two alive players interact with eachother in realtime, you can not make time run differently for them. Suppose i'm player A and you're player B.
I do something unpredicable. Just for example, i ask you what's square root of one million plus 234320 plus 1 and begin counting seconds 1,2,3,4,5,6,7,8,9,10...
You (say) find the answer in 10 seconds, and tell me. Computer can't make you appear to give answer to me in 5 seconds, no matter what, unless computer moves your answer back in time, or predicts your answer, or predict my question and gives it to you in advance so you have time, or slows down me and my watches.
Or i jump from behind the wall and start shooting, you turn around and respond in 1 second. To make it look like you respond in 0.5 seconds, computer would have to predict my action, predict your action, or move your action 0.5 seconds backward in time, or slow all my biological processes down.

If one is only looking at fast motions of others but do not himself interact, you can buffer motions. But there's stil some problems.

Say, initially, players A and B are in synch (interacted with eachother normally).
Fast player A does something for 20 seconds. Meanwhile, you record motions.
In last 5 seconds you start playback on player B's computer, playing out all 20 seconds of motion of player A. But there's problems what to fill 15 seconds of wait with. There's problem with interaction being impossible (see above.)

This topic is closed to new replies.

Advertisement