Category Archives: Tech Tips

Playing with a “Windows Mixed Reality Headset”

I’m a VR nut.  I’ve scribbled about my experiences with the Vive and Rift, the FOVE, and most recently the Hololens. So let’s jump into the void once again because today I received a joyous surprise! (not because I got it for free, but because in my senility I’d forgotten I’d ordered it)

About that name

Seriously, Microsoft?   “Windows Mixed Reality Headset”? Not only does it not exactly roll off the tongue, but I wouldn’t even classify this thing as mixed reality.  I guess I sort of expected a tethered Hololens but this is just a normal VR headset. (I know it’s technically made by HP, but you can blame MS for the confusing/incorrect name)

As is the rule for VR, each company has to be annoying and create their own incompatible API, store and “Home” apps.  Microsoft is no different.  It’s sort of built right into Windows 10 – the headset comes with nothing, not even a URL to visit.

Magically, after plugging it in, Windows pops up a thing saying “Nice headset, we’re going to install Mixed Reality Portal for you now” and there you go.  (Well, as long you’ve enabled Windows developer mode)

While both the Hololens and the WMRH are Microsoft projects and share a lot of OS features and apps, the hardware is quite different.  Let’s compare.

Hololens breakdown:

  • Inside out positional tracking (multiroom)
  • Windows 10 store/ecosystem
  • Can detect hand gestures (too slow for games except chess)
  • Can overlay graphics over your natural view, true holograms
  • Tiny FOV for the actual rendering (1268×720 per eye)
  • All in one device with on-board computer, no cables
  • Has a video camera
  • Spendy

Windows Mixed Reality Headset breakdown:

  • Inside out positional tracking (cables aren’t very long, and after tracing my room the resulting space seemed tiny, much smaller than my Vive play area, maybe my fault)
  • Windows 10 store/ecosystem
  • Can’t detect hand gestures (this makes me think it’s using some kind of cut-down cameras as compared to the Hololens)  Can it even detect walls and chairs? You have to manually set your play area size, so I’m not sure.
  • Can’t overlay graphics over natural view, it’s VR only
  • Large FOV, better resolution than the other major VR headsets (1440×1440 per eye)
  • Tethered to computer, like most headsets, you’re using your computer to do the work and the headset display acts as an external monitor
  • No video camera from what I could tell
  • Cheap(ish) and dead easy to setup, no external cameras/satellites to install

Motion controllers are coming

So this (and the Hololens?) WILL be getting a sort of budget motion controller later – however, they will have some limitations as compared to Vive/Rift controllers due to the tracking differences.  If the headset cameras can’t see them, they probably won’t register the movement.  So, like an app where you jump rope might not work right.

It remains to be seen how accurate the tracking will be, I guess I’ll have to do an updated review that I get my hands on those.  (I’m using an Xbox controller right now)  Without motion controllers, VR is pretty lame.

Oh, you can also use Cortana for voice controls, but saying “Select” each time you want to press a button is tedious at best.

So what can you actually do with this thing?

Well.. like the Hololens, you can place “Holograms” around, except instead of your real house it has to be in a fully virtual one. How it is even a hologram? Whatever.

You can browse the web or view the weather report in VR, but let’s be honest, after a few minutes we just want to take the headset off and use our real monitor for that kind of stuff.

You can play games in your “home” as well.  However, the game has to specifically support this feature, the only game I have that does is Gears Of Wars 4, so I tried that.

Well… it worked fine. I’d prefer to play non VR games on my real 3440×1440 monitor though.

Of course, you can also download VR apps from the Microsoft Store. I suspect the development process is very similar to how Hololens appdev works.  (last I checked, Unity supports it and UE4 doesn’t (at least not without plenty of hoop jumping))

Conclusion

While previously I found the Hololens to have some amazing features I don’t really see anything about this WMRH that would make me recommend it over a Vive.

Well, I have to admit, the screen resolution bump is excellent – maybe if you were playing Elite Dangerous and didn’t need motion controllers this could be a thing.  Oh, but of course you can’t, because Elite doesn’t support the Microsoft specific VR API.

We’re sort of still waiting for everybody to get onboard with the OSVR standard I guess.

The Last E8 postmortem (LD39) and some Unity vs UE4 thoughts

Presenting, the crappy game title I made! Akiko’s comment was “I didn’t know you were going to show my model up close, ugh”

The Last E8 Postmortem

Last weekend was the triannual Ludumdare game jam.  If you don’t know what that is, it’s a masochistic ritual where you voluntarily force yourself to create a new game over a weekend and publish it for all to see.

Akiko pressured me into it as she wanted to Blender up some things for practice.  I acquiesced to be her programming partner if we could come up with something to match the theme.

The LD theme announced was “Running out of power”. This was 10 AM our time.

The Idea Phase

We agreed to think up some ideas and exchange them at lunch.  So in a Kyoto thai place Akiko showed me her idea:

Hmm.  I don’t know what to say about that except, I like it.  Something about being an employee who has to manage his drug use to stay productive.  (for the record, RTsoft does not endorse the use of illegal narcotics.  I do however, endorse the world’s favorite stimulant, coffee.)

As for myself, I didn’t have much except a vague concept of celebrating the Tesla Model 3’s release with a game based on it somehow.  3D flying game?

So we starting working on Akiko’s idea – resolutely requiring that we completely nail down the game mechanics in photoshop or on paper before even starting.

I figured there were two possible ways to take this:

  • Lemonade Stand style: Strategic choices made, some kind of turns system. Mostly buttons and clicks.
  • Cookie Clicker style: Also buttons and clicks, no real strategy but slowly building up your empire. (I’m playing as I write this article.  Whee!)

I was appalled to find Akiko wasn’t aware of either game. You think you know somebody.

I decided “Cocaine Clicker” was the way to go simply because I liked the name and according to google it wasn’t taken.

Side note: I always google names because if I don’t, people will think I copied something else.  I sort of miss pre-internet days where you could just be original without caring if people thought you weren’t original.

Theme problems

I did some photoshop mockups of the buttons and tried to map out some gameplay.

Unfortunately “Running out of power” didn’t really match what I’d designed; the concept of running an office, buying more employees and managing their illicit substance needs just didn’t work with it.

A fundamental problem is you never run out of anything in a classical clicker game, you only gain.

I did like her idea of a split screen, half being the office, and half being the drug farm/factory. Sort of two games in one with a symbiotic relationship between them required for survival.

Engine problems

As I mulled this over I fired up my game engine for the first time.  I decided to use UE4 as that’s what I’ve had in my head in recently for some VR tests.  (If you have a Vive, please try my tech demo later!)

Lo and behold, UE4 was cursed.  I had setup a basic C++ UE4 project but was plagued by crashes and bugs.  I mean, I hadn’t even written any real code yet.

The worst of it was the silent errors.  Sometimes something internally was broken that caused a setting to be grayed out that shouldn’t be.  I feel like the only way to be safe is basically restart the editor after every C++ class is added or a blueprint is reparented. Slow.

Those issues are WORSE than a simple crash, because until it occurs to you to restart, your progress is entirely obstructed for unknown reasons.  I thought I had done something wrong, when I hadn’t.

Knowing I probably had less than a day of total time to throw at this, I said screw it and used this jam as a chance to try out Unity 2017.  (I’d used Unity 5 last year but forgot everything)

I have to admit, Unity is nice.  The MS Visual Studio 2017 integration is fantastic these days. Zero crashes.  Breakpoint debugging worked immediately with no hoops to hop. Goodbye forever, MonoDevelop.

I’m constantly switching back and forth between these two engines (plus my own homegrown one for 2D and simple 3D)  so I’m going to pause for a second and show my current engine scorecard in this middleware battle royale.

Seth’s Unity VS UE4 scorecard:

Unreal Engine 4:

  • Allows real C++ so the last twenty years of code doesn’t feel wasted
  • Actually using that C++ causes editor glitches non-stop and longish compile times
  • I think it’s faster overall and easier for me to replace the networking code with my own
  • I don’t like the royalty scheme.  Being legally required to calculate royalties for eternity (assuming your game makes anything) is awful
  • Blueprints may seem ok at first, but they are actually the spawn of satan as soon as you need to do anything slightly tricky.  Go ahead, write Vector3 vFinal = (vDir +vOffset).Normalize()*speed*dragMod); in BP, see what a mess that looks like. Now cut and paste it into a new entity and get forced to recreate and reconnect all the variables involved.
  • Forced to choose between overly simplistic BP or slow compiling C++
  • HTML5 support is questionable, doesn’t seem to be a priority.  Huge file sizes, rendering problems
  • Full source code.  Makes this a good choice if you’re going to be implementing your own streaming landscape or enet networking.

Unity:

  • No C++.  C# isn’t bad, but I miss my direct pointer manipulation and huge library of code I’ve written, so it means a lot of porting, or using plugins that are less portable.
  • Compile times are a dream
  • No crashes, was 100% stable (so far, anyway)
  • Better 3D import options, it can handle .blend files directly
  • Better audio import options too, unlike UE4 it can properly handle a simple .mp3 file
  • Excellent HTML5 support – nearly a must for a public game jam, more on this later
  • Month to month licensing isn’t cheap for the Pro version, but at least they don’t have their hooks on your game royalties for eternity.  Free version isn’t bad either really
  • No source code (well, not for peons like me, anyway)

So in the end, I’m thinking I’m around 5X faster when using Unity simply because of faster compiling and smarter import options.  I guess I need to do a VR demo in Unity and test that side of things too though.

Screw it, let’s use Unity

In the end I told Akiko, look, I’m switching engines so how about I do a sort of simple 2D flying game as a refresher for me.

“Can I still make 3D models in blender?”

“Sure!”

“Ok, I’m in.  What will the game be like?”

“It will be like The Last V8 crossed with Space Taxi”

“Never heard of those”

The Last V8:

Space Taxi:

Using Unity’s auto collision

I remembered this trick from when I made Multiplayer Space Taxi a while ago, you can very easily add collision to a level simply from an image.

Unity’s magical Polygon Collider 2D component

About HTML5 vs native with game jams

Because this is my main development machine, long gone are the days where I can run unsigned binaries from people I don’t know.  I know, I hate that, but unless I setup a clean or virtual machine that’s just how it is.

Play our game

So finally, here is the game we made.  True to its heritage, it’s extremely hard.  Good luck!

Play the game in your desktop browser here

Unity project/source code here

(also, the LDJAM site link for it is here)

How to waste less time on Facebook

Wasting too much time on Facebook? Being bombarded with targeted videos in your feed that turn you into a drooling fool for hours?

If so: Get F.B. Purity!

I’ve been using this free browser plug-in for months now. I configured it so I only see real content from friends, and ignore the shares and likes. Refreshing.

I circled in this pic where you can add some custom settings to get rid of more stuff.

I don’t mind frittering away time online – but I want to consciously choose when and how I waste hours upon hours of my life.

Also, if you really can’t stand baby or cat pics, they’ve got you covered:

Playing with the Fove eye tracking VR headset

vove_headset

It came! This VR headset was on kickstarter back in 2015 and has received some serious investor cash since.

FOVE-VR-Headset-Pre-Order-Announced

Sure, that’s exactly how I use VR…

I’ve been working on prototype games with the Vive (in UE4) but really wanted this primarily to play with its unique feature: real eye tracking.  It has cameras that watch your eyes and figure out where you’re looking – and applications can act on this information.
fove_eyes
No, this isn’t from Resident Evil 7… it’s how it watches you watch.  Yes, it’s creepy.

Currently there is only one demo on the Fove website to try out – I expect more will be added soon – hopefully they will show off foveating rendering and depth of field based on gaze. I want to see if it’s all quick enough to “feel right” or not.  I guess we could always write our own tests as well… maybe later.

fove_test_app
This is the sample app.  That little green and red ball?  That’s where your left and right eyes are currently looking.

My impressions

  • I had some trouble getting it going, but after a few reboots, trying different usb ports, and removing my second monitor it kicked into gear
  • Fove is currently marketing this to “developers, creators, researchers” and I agree that it isn’t ready for the general consumer
  • It’s fiddly.  If your headset shifts on your head AT ALL since you’ve calibrated the eye tracking, it will be way off.  I had the best results if I tried not to move my head at all
  • Sadly, they don’t support Valve’s lighthouse tracking (this was something they were talking about earlier) and it comes with a single infrared camera that tracks points on the helmet. I felt it didn’t track rotation/position as well and accurately as Vive or Oculus Rift does
  • It really does work! I could totally write an eye controlled VR web browser or whatever, that rocks

Conclusion

It’s functional and is very useful to experiment with eye tracking VR technology early.  Eye tracking will probably be a standard feature in all the VR headsets soon enough.

If you just want to play some games, get a Vive.

Rift CV1 vs Vive

rift_vs_vive

Ok, I finally got my hands on the final consumer models and have given them enough play time to feel like I know what’s going on.

If you’ve been living under a rock and don’t know what these are: they are kits for your computer to enter the magical world of “Virtual reality” apps and games.

Which parts are the same between these devices?

Both are the same resolution.  Both run at 90hz and have roughly the same field of view. Both are USB hubs internally that add a ton of devices. (Vive takes one port, Rift takes two)

Both have their own store/in-between game area that allow you to change and buy games without taking your headset off.

Both screens don’t handle certain high contrast images great, like white text on a black background.  It sort of adds a glare or foggy type of feel due to the lensing structure.  Rift might have a slight advantage in the visuals.

The Rift

rift

The Rift headset is slightly lighter and more comfortable than the Vive. It has built-in (but removable) headphones which simplifies getting in and out of it.

The controllers packed with the Rift

It’s packaged with a tiny remote that reminds me of the Apple TV or FireTV remote.  It’s reported to be usable for 4,000 hours before needing a battery replacement – not surprising considering it doesn’t have a gyro, haptics, or anything else, it’s just for simple selections.

Strangely, it also comes with an Xbox One controller.  I only found it required for a couple games, most are ok with the tiny remote thing. I have to use it wired because they don’t include the wireless adaptor because I’m in Japan and apparently it uses radio frequencies that aren’t allowed here.  (Shhh, I imported a US Xbox One a while back, guess I’m an outlaw now)

Rift technology

This is a decent update to my old Oculus DK2.  We’ve now got 2160×1200 vs 1920×1080, faster refresh, built in mic/audio, and it’s lighter to boot.

You can now swivel a true 360 degrees because the headset has had tracking LEDs placed on the back too.

Unfortunately the tracking technology choice is what potentially dooms it, more on this later.

The Vive

vive2

Ok, now the Vive.

First off, the included earbuds are not a great experience.  They were constantly being pushed and pulled by the cabling which sometimes causes them to pop out.

While demoing the Vive to friends it’s especially awkward to be asked “could you put that back into my ear, I can’t because I’m holding these controllers”.  No way, do it yourself!

I got rid of them (the earbuds, not the friends) and am using a pair of low latency wireless headphones instead, works nicely.

The controllers packed with the Vive

These are what really make the experience something special.  The accuracy and tracking are so good you can toss one up in the air and catch it again with only the VR visuals.  I’ve noticed no jitter or occlusion issues.

Vive technology

Unlike with the Rift, you have to Boba Vila it up a bit and mount the two Vive sensors in opposite corners of your room. (actually, these little boxes just spray non-visible light around your room, it’s the devices you’re wearing/holding that do the actual sensing)

Note: When the “lighthouses” are on, they screw with other IR devices you might be using.  For example, I can’t control my room lights.

Don’t cut corners during the mounting because the moving pieces inside cause these things to slightly vibrate which could cause a shift in position.

My “room VR” space is pretty sad.  Have I mentioned I live in an apartment in Japan?  I now have a garbage can on top of my refrigerator, to give you an idea of the tetris-like compression wonders that had to be achieved to make this possible at all.

With the Oculus DK1 and DK2 I was excitedly telling people “we aren’t quite there yet, but this is going to be amazing someday”.  Kind of a “Marty, your kids are going to love it” thing.

Well, we’re there now, folks.  If you can handle the discomfort of wearing what is essentially a tethered scuba mask, it’s now possible to get your mind blown in VR.

Rift vs Vive

Vive easily wins the VR wars for now because it can also support room scale. You just don’t get sick when playing “room scale” VR (content designed for you to walk around on a 1 to 1 movement basis).

Also, the motion controls being available now would also have put it into the lead, they are a must for VR.

We can’t quite knock the CV1 out of the running yet because soon they are going to release Oculus Touch which includes another sensor and motion tracked controls.  It remains to be seen if it will accurately track at room scale at the quality the Vive does, or even if they suggest trying to set things up that way.

I’ve read that games like Job Simulator and Fantastic Contraption are being re-tooled to be “forward facing experiences” for the CV1 and its new controllers, so this points to room VR/360 degree motion control play not being a main focus for the CV1.

Unfortunately, even assuming the CV1 will eventually be able to do room scale VR there would be a fragmented market between “People who don’t have the new Touch controls”, “People who do but put both sensors on their desk” and “People who tried to setup the sensors for Room VR”.

Rift store vs the Vive store

The Rift store currently has no user rating system so it’s hard to know what the best software is.

Vive uses Steam so of course it has a top notch ratings/community systems. (quiet in back, yeah, it’s not perfect, but much better than no ratings!)

Ease of Development with Vive and CV1

ue4_v4_scene

I had a simple UE4 scene with Vive + Motion controllers being tracked working in 15 minutes using this tutorial.

I found motion controller models included with my normal Steam install here: C:\Program Files (x86)\Steam\SteamApps\common\SteamVR\resources\rendermodels\vr_controller_vive_1_5

On import, I rotated them by 90 degrees on the Roll and Yaw and they perfectly matched.

I unplugged the Vive stuff, plugged in the Rift, checked the “Unknown sources” button in the Oculus settings, restarted UE4 and ran the same test app – it worked first try! I was only 3 inches tall but hey, that could be adjusted.

I don’t know anything about distribution builds or how hard it is to get listed in the various stores, but hey, at least it’s easy to play with out of the box.

Conclusion

Vive rules.

Planning to post some reviews of VR games/apps tomorrow.

Do you have any VR stuff? What do you think?