In first-person games, an effective way to heighten immersion is to give the player a sense of impact and force by figuratively shaking the camera. That’s a tried and true practice for FPS games played on a monitor, but to [Zulubo]’s knowledge, no one has implemented traditional screen shake in a VR title because it would be a sure way to trigger motion sickness. Unsatisfied with that limitation, some clever experimentation led [Zulubo] to a method of doing screen shake in VR that doesn’t cause any of the usual problems.
Screen shake doesn’t translate well to VR because the traditional method is to shake the player’s entire view. This works fine when viewed on a monitor, but in VR the brain interprets the visual cue as evidence that one’s head and eyeballs are physically shaking while the vestibular system is reporting nothing of the sort. This kind of sensory mismatch leads to motion sickness in most people.
The key to getting the essence of a screen shake without any of the motion sickness baggage turned out to be a mix of two things. First, the shake is restricted to peripheral vision only. Second, it is restricted to an “in and out” motion, with no tilting or twisting. The result is a conveyance of concussion and impact that doesn’t rely on shaking the player’s view, at least not in a way that leads to motion sickness. It’s the product of some clever experimentation to solve a problem, and freely downloadable for use by anyone who may be interested.
Speaking of fooling one’s senses in VR environments, here is a fascinating method of simulating zero gravity: waterproof the VR headset and go underwater.
[via Reddit]










Using a CRT oscilloscope in X-Y mode as a vector display, the console faithfully reproduces some classic games, most of which, curiously enough, were not originally vector games. There are implementations of the Anaconda, RetroRacer, and AstroLander minigames from Timesplitter 2. There are also versions of Pac-Man, Tetris, and even Super Mario Brothers. Most of the games were prototyped in JavaScript before being translated into assembly and placed onto EEPROM external cartridges, to be read by the ATMega128 inside the console. Sound and music are generated using the ATMega’s hardware timers, with a little help from a reverse-biased transistor for white noise and a few op-amps.