Follow Slashdot stories on Twitter


Forgot your password?
Trust the World's Fastest VPN with Your Internet Security & Freedom - A Lifetime Subscription of PureVPN at 88% off. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. ×

Comment Re:All the better to 'drive' stoned (Score 1) 91

Also, drinking slows your reaction time and coordination, in addition to your perception. While a stoner might not be paying any damn attention, his reflexes and motor skills are not actually impaired at all.

Cannabis does affect reaction time, though it doesn't harm coordination. Informal studies with video games suggest that it may actually be a performance-enhancing drug, because it takes away twitchiness. :) But what it doesn't do that alcohol does is impair your ability to say no — notably, to yourself. Alcohol lowers inhibitions in a way that THC doesn't. That's why you find people going 100 in a 65 while drunk, and 65 in a 65 when high.

Comment Re: All the better to 'drive' stoned (Score 1) 91

Older drivers have lower insurance mostly because they have less accidents than young drivers. Older drivers are objectively better than young ones. Though of course there is an upper limit, where senility sets in.

They might be safer than kids, but they're still on a bunch of medications on which they really shouldn't be driving. And in a crisis, their reflexes are typically awful, often for the same reason.

Comment Re:will probably take off with next gen hardware (Score 1) 105

Hololens is not VR

Indeed. AR doesn't seem to trigger the same motion sickness responses as VR, because you retain all of the visual cues from the real world.

Microsoft is once again creating a product that nobody will use.

Microsoft has created a technology that anyone can use without feeling motion sick, but you think that it will lose in the marketplace to one that about 80% of people can use without feeling motion sick? That's an interesting perspective.

Comment Re:It's just too expensive for the hardware (Score 1) 105

It's not so clear with 3D. It's something of a misnomer to call current displays 2D and this kind of VR interface 3D. Both provide a subset of the dozen or so cues that the human brain uses to turn inputs into a 3D mental model. They both, for example, manage occlusion and distance blurring, but neither manages (yet) to correctly adjust the focal depth of parts of the image that are further away. Motion sickness is caused by disagreements between some of these cues and between the other cues that you use to build your mental model of the world. VR adjusts the image based on your head position (though latency here can cause problems as the visual signal and the inner ear signal come at different times), but it turns out that humans have a very strong notion of body image, so if they don't correctly track your arm positions and update them in the game then this causes nausea in a lot of people.

Unfortunately for the 3D film and game industry, it's not the case that simply adding more cues reduces the risk of motion sickness. It turns out that a third-person perspective on a 2D display is one of the minima for the percentage of the population to experience motion sickness. Move to first person, and this gets worse, though it's still a tiny percentage (some people can't play FPS games for more than a few minutes without feeling sick). Add a few more visual cues and you get a lot more people feeling sick. There's obviously a minimum when you get all of the cues right, because otherwise people would spend their entire lives experiencing motion sickness, but so far none of the mainstream 3D systems have found another point that's close to the 2D display. If you're going to develop a first-person game, and you can either develop it for a technology that 99% of humans can use without feeling sick, or spending more money to develop it for a technology that 80% can use, which would you do?

Comment Re:Sigh. (Score 1) 105

It's very unlikely that we will see AAA VR titles any time soon. Simply because the market is by no means big enough yet to be interesting for AAA developers.

AAA titles have to sell in the millions or at least close to it to recoup investment. That's by no means possible now. In November, Valve announced "more than" 140k Vive units sold. Let's say they sold 200k by now. And let's add as many Occulus, and throw in another 100k "others". That would mean that there is a world wide market of half a million units.

Even if every single owner of any VR device bought that title we're still not at a number that warrants the investment. With a cost in the ballpark of 10 to 40 million dollars, nobody is going to risk that on a game that may, at best, sell half a million units. Yes, yes, at 60 dollars a unit this may even break even. But with the same budget you can crank out the next incarnation of CoD, BF or slap a new year number onto some sports game and make a multiple thereof.

Risk free.

Comment Re:Oh please (Score 1) 162

The type of "hello world" is const char *, so your compiler should warn that you're dropping the const in an implicit cast (and if you're a sensible person and compile with -Werror, then your compiler will reject the code). You can get the behaviour that you want with:

const char s[] = "hello world";

This will copy the contents of the string literal into a mutable array. If you write this at the global scope, the copy will be done at compile time, so you'll end up with the string in the data section, not the rodata section (if you do it in a variable with automatic storage, you'll get a copy every time the variable comes into scope). Putting constant strings in the rodata section is important for optimisation, because it allows them to be coalesced. If you write "hello world" in two place, then you'll end up with a single string in the rodata section. With some linkers, if you also write "world" somewhere else, then you'll just get two pointers into the same string (this is also one of the reasons that C uses null-terminated strings: you can't do this with Pascal strings, and it saved a useful amount of memory on the PDP-11). Once you're sharing the string, it becomes a really bad idea to allow someone to modify it, because that modification will then become visible in a different bit of code.

Comment Re:Oh please (Score 1) 162

That's pretty common for OO languages (or, in fact, any language with a notion of subtyping), where individual classes implement their own comparison operators. In C++ you can overload the comparison operators, but most OO languages that don't do operator overloading just use a named method. If you write a.equals(b), then you'll call the equals method implemented by the class of a. If you write b.equals(a) then you'll call the method implemented by the class of b. One may know about the other, but the converse is not guaranteed. The Objective-C collection classes document certain invariants for inserting objects into sets (or as keys in a dictionary), including that [a isEqual: b] implies [b isEqual: a] (and that [a isEqual: b] implies that [a hash] equals [b hash]), but this is impossible to statically verify in the general case.

Slashdot Top Deals

"One day I woke up and discovered that I was in love with tripe." -- Tom Anderson