Matrix-Style Bullet Time for Realtime Online Games
gcnaddict writes "Creating a slowdown in time on one end of an online game while maintaining normal speed on another was once one of those impossibilities which should never have happened. However, Finnish researchers have successfully invented a way to replicate a bullet-time-esque scene on one end of a real time multiplayer game without affecting the play speed on the other end(s). Of course, there are some slight issues which may never be resolved, such as when a player may occasionally think they have shot an opponent in a game and is surprised when his target refuses to die..."
http://www.specialistsmod.net/
The game has had bullet-time for quite some time, and only effects players in your immediate area. This allows the rest of the game to go along unhampered by your slow-flying bullets.
just what we need. European-designer-lag. I get enough matrix-style lag already, thatnk-you-very-much. (If this is more than just smooth lag, somebody please explain it to me because I'm obviously missing something important...)
On a side note, I had wondered if a space-time distortion bubble could be created in a multiplayer game. Sort of a local bubble of temporarily slowed time, which as the effect wears off, hyper-accelerates to catch up to the rest of the game world. The difference from lag there would be that all player within the bubble would experience the same slow time, and a player entering ot exiting the bubble would pass through an area of distorted time as they transition from one timeframe to the other... not sure what sort of paradoxes would have to be sidestepped to make this work right. any astrophysacists want to step in and take it from here?
hmmm, I think I just described the Tokyo-Jupiter temporal distortion from Ra-Xaphan...
One of the problems with hiding lag is that players cannot tell when lag has effected a kill.Without actually being able to demo it, I think this technique will just increase this confusion.
Also, the article mentions that lag commonly varies from 10-60ms (i.e. optimistic estimates) and does not mention whether that effects how much bullet time you can have. I would say it is sensible to suggest that less bullet time is available for 10ms people than for 60ms people.
If this is so, then how well does the system perform when the lag is varying wildly as it is want to do?? Does the play get a fixed lowest estimate for bullet time, or does the player never know how much they will get??
Is this one of those system they test in a "lab" with a fake lag generator and so forth? Or did they do real world tests??
I really hate articles that don't mention the important bits....
After reading the paper all I can say is "meh"...
It is just a system for taking out the lag of a game. Something that most online games already do (especially fast games like Quake/UT). This makes it even more disconnected. Something which does not really work all that well in practice. It might be OK in a MMORPG type game since the pace is usually slow and boring anyway.
This is something that games like UT and Quake try to balance all the time. The "disconnected" (feels smooth but you often can't hit anything; eg. Quake3) versus "sharp" (feels tight and accurate but if you get lag it can be jumpy; eg. Quake2).
The ratio of people to cake is too big
I think what he meant is this:
There is a a core point where the temporal distortion occurs. The properties: The closer you go to this point, the slower you can move (animation/response-wise). Let's say a radius of 25 meters or so. People at the very centre of it would move at 1/10th speed. People 23 meters away from the centre would move 9/10th speed. People 26 meters away, and beyond, would move 10/10th speed.
People inside the distortion would see things the same was as people outside of the distortion.
The benefit of this distortion would be for someone who needs to perform an excessively complicated move (think: fighter game supercombo) and attempting it in slo-mo would be significantly easier.
Also, perhaps dodging bullets would be beneficial as well. Say you're caught in the middle of an ambush, with fire from every direction, such a distortion would be useful in buying yourself a few more seconds, until your friendly camper sniper can take out the enemies (whose bullet would also slow once it enters the distortion).
Now, in terms of the hyperspeed-up once the distortion expires -- this is purely for cinematic purposes. Let's say the distortion lasted 10 seconds. We can keep track as to how many [animation] frames each player performed in the distortion (to keep track of how fast you were going). If normal rate is 10 fps, then someone who experienced 1/10th speed would experience 10 frames. Once the distortion is over, let's say we want it to catch up in half the time. That would mean it would have to hyperspeed it up for 5 seconds, at a rate of 100fps.
Someone who experienced 5/10th speed, would get their hyperspeed at 20 fps.
This is, indeed, pointless. But it could provide a neat effect.
Scenario: You're ambushed by 5 gun-toting wankers. You, magically, create a time distortion fields. Gun-toting wankers shoot at you, you dodge for 10 seconds while dealing out the occasional punch, kick and knife stab. 10 seconds are up, your gameplay speeds up x10, while gun-toting wankers try to aim at you at super-high movement speed, you escape -- roadrunner style. Meep meep!
This could certainly introduce some interesting gameplay.
- shazow
What I think a lot of people don't realise is that the use of bullet time and bullet dodging was itself an implicit demonstration of philosophical questioning, which fit in well with the other thematic material in the Matrix films.
When Neo dodged bullets during the roof battle scene, although time radically slowed down from his perspective, from Trinity's point of view he was moving as quickly as the Agent had. This was intended to underline the subjectivity theme...that while manipulation of the Matrix's physics engine allowed an effect that was the same in one respect for both participant and observer/s, (successful dodging of bullets) it was markedly different otherwise. The reason why time *slowed* perceptually for the participant was to give the participant enough time to successfully dodge the bullets, while in order to rectify that so that the observer/s would see something relatively sane, the system then had to give the observer/s the image of the participant moving as rapidly as the bullets themselves.
This is only confusing when we think of the virtual environment as just that...an *environment.* However, it becomes much less confusing when we think of it in terms of simply being a set of *different* neurological signals being sent to the individual brain of each person. In order to maintain cohesion, the Matrix had to be flexible with regards to what each person was able to see. In other words, rather than a set of immutable laws, the physics engine would have had a fuzzy scale. (Viewed from this perspective, it becomes clear that the rebels didn't actually *break* the rules of the system as such...they simply learned how to occupy nonstandard positions on the physics engine's scales)
If we want to create a multiplayer, genuinely Matrix-like environment however, that is what we would have to do. The world itself could be server side, but for the resolution of certain events, (such as the dodging of bullets) you would need a scenario where the physics could be manipulated in a certain way from the perspective of the client invoking bullet time, and the server would have to figure out how to make said manipulations at least vaguely uniform with the rest of the environment. (In terms of dodging bullets, it probably makes more sense to cause everyone else to see the person moving at the same speed as the bullets, because if you were to make the bullets become as slow as the person, the server would then have to work out the range from the bt-invoking client at which they would begin to slow down, whereas from the perspective of the bt client itself, the bullets could start to slow from any range. Also, speeding up the person means only manipulating one coherent object - slowing the bullets means manipulating several, with the corresponding rise in computing power that such would require)
A large number of the characteristics of the physics engine within Unreal Tournament in particular are both expressed numerically and can be manipulated. One of the major things which would need to be worked out would be how each user could be given the ability to modify one of these characteristics (gravity would probably be the easiest place to start, although it could still be tricky, because it could involve dynamically changing the gravity attribute across multiple zones) relative purely to their own pawn, while still allowing the server to create a consistent environment. As I said, gravity would be the easiest one to start with...work out how each pawn could create its' own hi/low grav fields (part of Trinity's crane kick). The lightspeed barrier currently prevents this from working in terms of the time manipulation, but it'd be worth working out what we could for when zero-lag technology *does* arrive.
Although the level of computing power (not to mention the complexity of the programming logic) required to make this *truly* identical to the films would be utterly ludicrous, I'm inclined to believe that with a form of bandwidth using quantum teleportation, (zero lag, which you'd ne
has become "this is my idea of how bullet-time should work," this is my idea of how bullet-time should work:
Player's are either moving "normally" or "quickly" at all times.
The bullet-time restriction must be very strict : a difficult to get power-up, or a fairly short total time per level/game (a la 60 seconds per race of extra 50 hp to pass in some open-wheel racing tours)
All players actually move at the same rate (in m/s, or whatever).
Any player moving quickly cannot be hit by any aimed/directed attack such as a bullet or knife (this is why bullet-time needs to be very limited). Area/detonation damage still applies.
Any player moving normally sees a blurred representation of quickly moving players that is delayed from where the quick player actually is. Basically, you can react to where he was a second ago, but because he's "moving faster" than you, you have to lead him. Instead of the computer having to worry about prediction models, you get to! Fun!
When a player transitions from normal to quick, the player's blurred representation increasingly separates from his actual position until it reaches the maximum delay of 1 second (or whatever seems to work best).
When a player transitions from quick to normal, the player pops instantly from the blurred/delayed position to the actual position. This makes the choice of when you return to normal time as important as the choice of when you start bullet-time. It also allows the "I've run up to you and gotten past your defences and now I'm going to blow your head off" moment.
Note that neither transition - in fact no part of bullet-time at all - will necessarily appear different to the player transitioning. All bullet-time does as far as the quickly moving player is concerned is make you dodge all the stuff that's about to kill you (and you don't have to try).
The main disadvantage is, it doesn't have the "wow, cool, everything's moving slow" effect. Oh, well . . ..
Don't save Windows XP! http://www.petitiononline.com/jjw1xp/petition.html