Hacker News new | past | comments | ask | show | jobs | submit login
A Slower Speed of Light (mit.edu)
284 points by po on Nov 2, 2012 | hide | past | web | favorite | 105 comments

I'm quite curious as to whether the speed of light across the game space decreases instantaneously when you pick up an orb or whether the change in the speed of light propagates at the speed of... umm light.

Also they definitely need to have a black hole or 2 chucked in and maybe some miniature binary stars orbiting at relativistic speeds

It's instantaneous. There's no answer in physics for what should happen when you change the speed of light because that simply just can't happen. Therefore we didn't bother doing something like prorogation at the speed of light.

We don't do gravity calculations, along with a few other things because we didn't have time and they make the other effects hard to see.

In the future I would have liked to continue with the project and implement some of this though.

Cannot happen? Would we able to detect it if it actually did happen?

Since the speed of light doesn't change in real life, and there is no answer at what speed a changing speed of light would propagate in real life, does it really matter how it's implemented in this game? My guess is that they took the easiest route and made it change instantaneously for the whole world.

> does it really matter how it's implemented in this game?

Yes, I imagine it would affect gameplay quite a bit.

The various visual effects seem to be render-time transforms, so I suspect the speed change is propagating instantly across the gameworld.

Can you think of a way to model a non-instantaneous propagation of this change that doesn't involve simulating oodles of photons wandering around the world?


Light from source A travels at the speed determined by the last speed-wavefront that passed it. This can be modeled by storing the speed on the sources, or by calculating from all gathered orbs in the world, and selecting the most-recent, when the time is calculated by (<time picked up> at <distance when picked up> at <speed of light before picked up>).

All such waves will be entirely contained within the previous wave because you cannot go faster than light and the speed only decreases, so all that matters is the speed before it was picked up, which is the speed the wave-front moves at (or does it move at the new speed? eh, pick either one, it doesn't matter.)

Then, for each orb picked up since the most-recent that affected the source, the time for the light to reach the observer is based on <distance to orb N> at speed <before orb N> until <distance to orb N-1>. Then repeat for orb N-1 until you run out of orbs. In this case, N would be the oldest orb whose wavefront has not yet passed the source.

It's a piece-wise calculation (the reverse of what's described), so it would be slower than instantaneous changes, but there's no need to model photons. And I would guess there's a reasonably-efficient way to calculate this on a GPU, so it could probably be real-time. Or it will be in a year or two.

I remember reading a science fiction novel based on a similar idea perhaps 20 years ago. It was pretty good.


Man, the perils of tech. I read these comments over lunch at my desk, bought the book on my phone and read the first chapter. It's _way_ too easy to spend money these days.

On the plus side, I think I'm really going to enjoy this one. Thanks for the recommendation. :-)

Another recommendation for Redshift Rendezvous. It REALLY is science fiction, and not just fiction (most things classified "sci-fi" these days are pure fantasy; where's the science in e.g. Star Wars?).

It's a good story, (acceptably) good science (for a story book), and if I recall correctly from 20 years ago, very well written.

Also of interest: Velocity Raptor http://www.testtubegames.com/srel101.html

Just finished the game, it perfectly simulates contractions and time dillation on a 2D surface, check it out.

Thanks for playing, tgb and dexter!

Very interesting, although I dislike the "ice rink" feel. It makes the game very difficult to control. I'm unsure if this is intentional.

A sandbox approach might be good. I found myself wanting to experiment and change the speed of time myself.

I(Ryan Cheu) was on the team that made this if anyone has questions!

Most of my work was on implementing the actual calculations for relativistic effects.

It was coded in Unity Game engine in C# mostly. The hard calculations are actually all calculated in a shader written in Cg (mostly just C) so they're on the graphics card.

Is there a description anywhere of exactly how the FOV/perception of distance changes as you get closer to c?

Also why is it that you can't see the Lorentz transformations until the final orb? I'd have thought that they'd be apparent somehow -- is it somehow cancelled out by visual effects?

The papers I read in preparation for the project and my main references:

http://dl.acm.org/citation.cfm?id=234537 http://dl.acm.org/citation.cfm?id=91423 http://tobias-lib.uni-tuebingen.de/volltexte/2001/240/pdf/01... http://www.google.com/url?sa=t&rct=j&q=&esrc=s&#...

There were also a few other documents I had but they don't appear to be hosted online anywhere.

The Lorentz transformations are not as apparent as the visual effects, they're not canceled out though. You can actually see them, try speeding up and slowing down when you have >50 orbs. You'll see a warped view and such :)

I saw a qualitatively different type of warping at 100 orbs than I did at 99. For instance, at 100 orbs, I would see the tops of arches bend and distort as I approached them. No such effect was visible at 99 orbs. I'd pull it up again just to double-check, but it's a bit of a pain to actually collect enough orbs -- a freely adjustable mode once you've beaten it once would be nice :)

I also would have expected to see some sort of length contraction evident in things like the fence post spacing, but I never noticed any.

There was no difference in the calculations at 100 orbs, we just let v/c get much closer to one. The effects were actually there before 100 orbs you probably didn't notice much because of the colors! Internally the colors and Lorenz and time invariance calculations effect different things, the 100 orb stage just removes the operations done in the fragment shader--the vertex sharer remains unaffected.

Can I skip the orbs and go directly to the end?

The end has all the crazy distortions that make it fun.

Hmm you can try hitting the up arrow but I think that got taken out for release. Sorry!

It's Motion Sickness Simulator 2012! No, seriously, I've never had motion sickness from FPS games but this one made me feel pretty uncomfortable. Those who do get motion sickness should consider themselves warned.

That aside... it's not the first game/toy about illustrating relativistic effects that I've seen before, for instance there's http://lightspeed.sourceforge.net/ and a funny little Flash game that I've tried: http://www.testtubegames.com/velocityraptor.html . Neither of them were very much fun.

This game was not very much fun either, but there was some promise, because at the end once I'd gathered all the orbs by moving slowly and methodically, I enjoyed skating around the level and trying to go as fast as possible without bumping into things. Hopefully someone will use the engine (they say they're releasing it next year) to do something really good.

Hans Moravec created a relativistic version of SpaceWar! in 1971:


There was a relativistic version of asteroids: http://playthisthing.com/relativistic-asteroids

Looks like the site it was hosted in is gone, though.

Is there a way to change the field of view angle? That usually causes/prevents motion sickness in FPS games.

The site seems to be suffering a bit. Here's the cache: http://webcache.googleusercontent.com/search?q=cache%3Ahttp%...

In case you're not able to download the mac version because the speeds are slow, here is a magnet link for it.


Anyone got magnet for windows version? I got 15KB/s from the site

magnet:?xt=urn:btih:1828BAFC3135E0B326D31C5030003D7004A86433 (windows)

Looks very psychedelic. It's interesting how simulating a variable speed of light creates the same visual effect as that produced by ingesting psychedelic mushrooms or LSD. Not just the color spectrum, but also the distance/space distortions one reports while tripping. I guess those mushrooms in the game are not a coincidence. Wonder what the connection is there then.

Our initial plans involved mushrooms that grew due to the time dilation. They were nice because they could grow straight up so we had easy time calculating past positions. We only later realized the connection that you could make.

Once you get all 100 orbs and you get close to the speed of light you're in for a treat. It gets rid of the funny color saturation effects and you only see the Lorentz transformation. I'd like to know the secret incantations to be able to modify the speed of light manually. (Once you walk fast as light, the game abruptly ends)

I think if you don't go under the white arch, you can stay indefinitely in Lorentz transformations mode. At least, I stayed that way for several seconds if I avoided that arch.

ESC also seems to end it if you have 100 orbs, instead of taking you to the settings screen as I would have expected.

Also, be careful running with 100 orbs. I ran into a fence and got stuck on it.

the same thing happened to me (getting suck in the fence), and pressing escape to try and turn the colors back on.

Not available for Linux! :(

That's something I didn't expect from MIT. It's ridiculous that they only support Mac and Windows.

Apparently the prolbem is that Unity3D still doesn't deploy to Linux, although the next major version will.

Well, it runs perfectly in wine... up to the point where the actual game play would start. Then it crashes instantly.

The Lorentz transformation (as I understand it) pertains only to inertial reference frames moving at constant velocities relative to one another, hence the "special" rather than the "general" theory. However, the player seems to be able to stop, start, or change course at will. Wouldn't those actions cause lots of effects (e.g., gravitational waves, etc.) that are not accurately modeled in this simulation?

The special theory can handle acceleration perfectly well. What it can't handle is gravity.

Therefore the game is fine in so far as it has been presented.

I don't understand why the colors are changing. Shouldn't the doppler effect not apply if the speed of light is the same for all observers?

With sound waves, your speed is added to the speed of sound and you hear a different note. With light, the speed remains at c, but perceived energy of the photons is still affected (energy must be preserved after all). And energy ~ wavelength ~ color.

You can also think about it being one of these "zero (weight of a photon at rest) multiplied by infinity (energy of objects moving at c) gives a finite number (actual energy of a photon)". The last number still behaves nicely.

So, the speed of an observer affects its perceived energy of light. How does "conservation of energy" apply? (I don't know what is contributing to the energy of this system.)

If you imagine an idealized light source, where photons come into existence out of nowhere, then there is no conservation of energy (energy is being created). But in a more realistic model where photons are emitted as a result of electron excitation, say, energy is conserved because the electron recoils when firing off the photon, so the extra observed energy of a blueshifted photon can be found in the extra kinetic energy of the electron as observed in that same frame of reference.

Different observers will perceive different values for the photons' energy, but they will all observe that the total energy does not change.

The Doppler effect is how Hubble determined the universe is expanding. All of the galaxies around us are shifted red.

Cosmological redshift comes from general relativity, not the SR Doppler effect. Local motion does produce a shift on top of that, but that's not all redshift. Nearby galaxies are actually blue shifted.

any one get it running in wine? i get through all the menus and story slides but then boom.

I got the same in windows (7, x64)

Crashes for me too.

Just read this on the site:

Some users have reported that the game may run on Windows XP and 2GB RAM. A known bug will crash the game on computers with some Intel graphics chipsets.

I have one of those hybrid graphics setups for laptops, so maybe that's the problem.

Works for me on Windows 7, x64. Try updating your DirectX.

Doesn't seem to work for me either on Windows 7 64bit.

Just installed direct X from microsoft's site, still no joy. Crashes just after intro.

Any other libraries I might be missing?

Yeah, same thing here. That was both the most exciting and disappointing experience I've ever had with wine.

Someone should do the same with quantum mechanics by increasing the Plank constant.

I wonder how complex it would be to have a physics engine that allows for arbitrary changes in fundamental constants.

The thing is, most game engines don't even simulate Newtonian physics very accurately; it would be much too computationally expensive to do so. Gravity only works on certain objects and is usually a constant acceleration applied along the vertical Cartesian axis, objects are composed of at most a couple dozen perfectly rigid parts attached together at defined joints, liquids and particles are simulated in batches using only rough heuristics, and so on. If we were to allow arbitrary changes to fundamental physical constants, the game engine would have to simulate the world from the quantum scale up.

That's a hard damn problem. There are some extraordinarily well-funded research groups that are struggling to model any reasonably large number of interactions at that scale. State of the art supercomputing clusters can currently simulate systems of hundreds of thousands of atoms, not even in real-time, and they're still making some assumptions along the way, which might not hold true if you were to arbitrarily modify any fundamental constants.

You could probably write a physics engine that passably pretends to simulate some (non-arbitrary!) changes in fundamental constants. But it would be hard to guess what matter would even look like for different values of, say, Z0.

Yeah, I completely expect 99% of the changes to just resolve to "this is something we can't possibly simulate"

This is both very interesting and a little painful for me. It's one of those ideas that I've always wanted to try, but never got around to. In a way it's nice that someone tried it anyway.

With 0x10c around and discussions on space combat realism I was thinking about some form of semi-realistic space "naval battle"/wargame.

So the first thing I thought was, well low-scale speed of light giving wonky graphics is both cool and help getting the feel of relativity, but what about some Homeworld or a Master of Orion type of game with relativity ingrained inside the game rules and mechanics? Probably the music sounding Homeworld-esque helped.

I imagine it would be quite difficult to have working multiplayer relativistic mechanics. So far, I can only see single player mechanics working, which would restrict the appeal of such a game.

Yeah, multiplayer without a unified sense of "time" doesn't seem to work very well...

That's only partly true.

Consider a turn-based game: a turn being irrevocably discrete and the same for all players, each entity, depending on its relative speed - hence time dilation/compression ratio - would get a different number of action points to spend each turn. You can globally compute each item action points because you're simulating the game universe.

You can extend this to virtually continuous time by compressing/dilating time depending on the player's relative reference frame, and then you could cap the flow of time so that min_flow=real_time or max_flow=real_time, or even mean_flow=real_time. I could see this becoming a problem for say, a FPS game where the player would feel relativity as time slows down or goes faster, but for a much more global game applying such a scheme would make him witness each unit/planet/whatever relative reference frame time dilations/contractions from a sort of god-like reference frame. In a single player scenario (where you don't need base time flow synchronicity between players) this god-player could even change his own reference frame by scaling his base time flow between say min_flow and max_flow.

I don't think it is quite that easy.

Try modelling the twin paradox that way, for instance...

I encourage you to look at Achron http://www.achrongame.com/ , a RTS with timetravel as an integral gameplay mechanic. It doesn't deal with relativity explicitly, but does have multiple independent timestreams.

It was considered but there are some equations that still need to be worked out. We'd need to store the history of each player but I believe we decided it could be done.

Really cool concept! It takes a little while to wrap your head around what's going on but as you get deeper into it things start to make sense. The faster you move backwards the more light you lose which is rather disconcerting.

It's totally worth getting to the end (took me about 10 minutes) so you can play around for a moment without the colour shift affects. Would be really cool to have a version where you could do that.

Well done to the creators.

Doesn't run on Intel HD 3000 graphics, apparently. Alas.

I believe it breaks if you don't have a lot of memory on your GPU. Never got around to fixing that.

Shouldn't mass be increasing as light slows down?

It's _barely_ playable on my 2011 MBA. Seems like the limitation is on the CPU side though. Either it's fairly unoptimized, or this relativistic stuff is just really demanding.

It's quite awesome anyways. Funnily if you change direction, that alone triggers no relativistic effects.

It had to be written in C# in the Unity Engine so it's kinda slow. The other issue was that I had no access to the culling system besides just turning it off so every object in the scene is rendered every frame.

I think the limitation would be on the GPU side, or at least it was on the system I was testing on.

Oddly enough it runs great on my late 2010 MBA.

I ended up in one of the longest, stupidest arguments of my life trying to add my two cents into a discussion about whether to wait on the new MacBook Air or jump on the current one.

The person mentioned they would be doing some gaming on it, so I pointed out that the new Air would almost certainly have Intel HD 3000 graphics and that the Nvidia chipset in the older MacBook Air was better overall for that sort of thing.

Someone proceeded to try and rip me a new one, chastising me for having the gall to recommend purchasing a previous generation laptop. I said I owned an Intel HD 3000 MacBook Pro and even on that vs the Nvidia 320M MacBook Air, the Air performed better when it came to gaming.

He called me a liar, said it wasn't possible and that the HD 3000 chipset couldn't be the culprit. Here we are a year later, and I've been proven right countless times. I'm sure this is interesting to nobody, but it's nice to get a little vindication when someone was laying into you that hard.

Different MBAs have different CPUs -- I remember having the option to upgrade when I bought mine, and the base 13" is beefier than the upgraded 11".

e: Ah, but it actually runs fine on my 2010 unupgraded 11" Air. I'd guess a higher resolution screen would hurt performance, though.

Maybe it's because the 2010 MBA had NVidia graphics, and the 2011 has Intel.

Also there was http://realtimerelativity.org/ a while ago, which simulates motion pretty close to C. Don't know which one is more "realistic", but it shows much more pronounced effects

What a great idea. The "rainbow colors everywhere" effect if kinda annoying, but the concept is awesome. As they say, that's what I would expect from the MIT Games Lab.

That video is kind of annoying. More gameplay, less talk.

Is it even a game? It seems to me like a very interesting simulation but I don't see game design there...

The best definition I've seen for what constitutes a game is this: A game is an experience created by rules.

That captures what distinguishes a game (as an artform) from other media. You could throw in some qualifiers to perhaps narrow it down (is paying your taxes a a game?) but it's not really necessary.

A prison sentence is a game?

Like I said, you can try to narrow it down, but it's pretty hard to define a rigid line between art and not art in any medium.

Although your particular example is kind of amusing, given the prominent role of the Prisoner's Dilemma in discussing elementary game theory! :P

> Is it even a game?

Technically, yes: It has a goal (collect orbs) a challenge (navigate environment) and a difficulty curve (increased distortion).

But it's really a tech demo, though.

The goal we were given at the start of the summer was just to create a tech demo, the team tried to make a game out of it as much as possible though. The original plan was to release a tech demo at the end of the summer and then make a game with it after, the after part hasn't started yet though, and I'm not sure if it will.

They say it is open source but I can't seem to find the repository. Anyone else see it?

Quoting from the site:

> IN PROGRESS OpenRelativity is a set of tools for simulating the effects of traveling near the speed of light in the Unity3D game engine. > The team is currently refining the documentation, usability and features in OpenRelativity, targeted for release as a free, open-source package in 2013, to allow others to produce more simulations and games about traveling near the speed of light.

So, it will only be availible in 2013

I immediately thought 'space (combat) sim!' when I heard that the engine was open.

Ladies and gentlemen, I think we found the Portal 3 game mechanic.

What? There's not going to BE a portal 3...

However, this may be the Portal 2 Episode 1 game mechanic.

This needs to go up on Steam yesterday. Or tomorrow, depending on your frame of reference.

I may be off-base here, but isn't the length contraction backward? Things should appear closer as you approach the speed of light, not farther away. And, it should not matter if you move backward or forward to observe that effect, yet it does (try moving backwards).

Also, relativistic motion doesn't appear to affect the movements of the other actors, though it's kind of hard to tell for certain.

With my very limited understanding, my impression is this:

As you move in relativistic speeds, your eye hits more photos, even those going sideways (or backwards), because the photons at an angle are slower than your eye (imagine a car moving fast through the rain, even drops that go in the other direction will hit your windshield).

Therefore, your field of vision grows (you can see things behind you), but only when walking forward.

I haven't read anything about going backwards, but I imagine that your field of vision would shrink, as you are now faster than photons that would previously hit your eye. My guess is that you would only see photons coming directly to you from your front, until you reached the speed of light and went blind (or could see 360 degrees, moving forward).

Photons always travel at the speed of light in every frame of reference. Only the medium matters, not the observer's speed.

The observable change is the separation between photons (wavelength) caused by a moving source.

Photons traveling along an X axis are traveling along a Y axis at 0 m/s. If you're traveling along the Y axis, you're going faster.

Except that's not what we measure. Instead we find the speed of a photon depends only on the medium, not on the motion of the source or receiver.

You aren't listening to me. The speed of the photon is c in the direction it's traveling, a photon traveling due west is going north with no speed at all.

I don't think it makes sense to say that the speed of a photon is c "in a direction", since speed is a scalar quantity.

(correct me if I'm wrong, I'm terrible at physics!)

Here, speed is a measure of the magnitude of velocity. It's perfectly acceptable to describe velocity (or a component thereof) as speed in a particular direction.

I think I got it. Lengths will contract, but when you're moving toward something very quickly, the speed of light remaining constant, it will seem farther away. And the reverse is true when you're moving away from it.

It actually helps to just forget about relativity for a moment, and think about the angles light from distant objects will have to take to intercept you. Then it becomes more clear.

Yes, exactly. Your eye intercepts photons from a wider angle the faster you're moving, therefore you get a wider field of view, even seeing things behind you.

I'm not sure I'm missing a step going from "wider fov" to "things seem farther away", maybe I am...

We don't have some magic sensor that tells us how far away an object is -- it's all gleaned from the light, and distorting the angles, in particular, will throw off this perception of distance.

It would be nice to see a write up of exactly what effects they considered, though.

Right, very true, thank you.

There are two separate effects at relativistic speeds.

One is that the actual size of things changes. That's length contraction.

But the other is that, because you are moving at such high speeds, how you observe objects is also affected. That's what StavrosK discusses in the adjacent post.

I think it might be time dilation. You intercept photons that were transmitted a bit back in time?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact