Tuesday, February 24, 2015


SteamVR is coming

Today Valve announced it will be scheduling demos of its upcoming SteamVR dev kit at GDC.

Here is a screen capture of the site in case it changes over time:

What does this mean? How does this stack up against Oculus? Is this important?

This is potentially game changing. Here is why

1. VR Development

Valve has been doing VR research and development for years. Long before Palmer's Rift, Valve was secretly working on VR and determining its feasibility.

Here is  a review of someone trying out their demo last year:

 They showed an updated version here (and yea, that is bulky):

2. Oculus and Valve

Here is a quick recap of Oculus's origins by Brendan Iribe

A little later he talks about how instrumental Valve was in their success:

The Oculus Rift was a major accomplishment but it lacked presence. After Oculus's success with its kickstarter Valve invited them to visit their R&D center. It was at that point that Oculus understood the true power of VR. Valve's headset created a true sense of presence. Valve shared their secrets on what made a VR headset work.

Oculus went back to their offices and improved the Rift based on what they learned from Valve.

Later enters Facebook and their acquisition. This isn't a bad thing but I don't think it rubbed Valve the right way:

Here is the quote in case it vaporizes:

It would be sad if there's bitterness between the two companies right now:
I'm pretty sure that there IS bitterness between the two companies.
Valve helps Oculus by giving them research, and Oculus turns around and sells out to Facebook.
It's well known that Valve does possess advanced VR HMDs that they've formerly used for internal research.
It's pretty likely that they're pushing out their own consumer HMD.

To further elaborate: I went on a tour of Valve this past summer and asked them about their VR plans.
The tour guide mentioned that originally, they weren't planning to release their own VR hardware,
but that they had changed their minds after Facebook bought Oculus.

3. The Steam Machine

In 2012 rumors began to emerge about Valve offering a hardware platform for Steam.
In 2013 at CES a prototype of a Steam Machine was shown. Later that year they announced Steam Machines.

In 2014 they held a developer conference primarily targeted at helping developers port their games to Linux.

After that Valve went silent. They delayed the Steam Machine and continued to iterate on the Steam Controller. They left all of the hardware partners hanging and the steam machine and controller were declared dead by most media outlets:

Then earlier this year (2015) they announced they would be showcasing the Steam Machine.

I've been monitoring news of the event carefully and there has been no hint of what they would be showing... until now.

4. Open Software Platform

Facebook did not buy Oculus to just further VR development. They funded it to make money.
Hardware is a competitive space. Any advances they make will soon be caught by rival companies.
To me it seems like the best bet is to create a source of ongoing revenue which would likely come from an app store similar to Apple's app store. This means a closed software ecosystem.

Compare that to Steam. I love Steam. If I can buy a game on multiple platforms and it is on Steam I always choose Steam. This is because I can run the game on any laptop or PC I own. My hardware can continue to improve and my games can just be installed on the fastest rig I have.

With Steam, Valve has an open an instant delivery mechanism for software for the VR headset.

5. Game Development Experience

Oculus has some great minds working for them. No question there. Carmack and Abrash are the VR dream team. I have no doubt they will deliver great hardware. Here is Carmack talking about GearVR. He is clearly pushing the envelop of mobile displays:

The problem is that Oculus is not a game development shop. They hired Jason Rubin to head game development:

But... is that enough? Time will tell.

Other large game companies are waiting in the wings on VR. They are not willing to invest in a game for VR. Valve isn't waiting. I don't know what they have in store for us next week at GDC but it could be great. If anyone is going to make a AAA game that works well with VR it is going to be Valve.

6. Cash Reserves

Facebook acquired Oculus for 2 billion dollars. That is a lot of money but that isn't the same as their cash flow. That was acquision money. That is what Facebook valued Oculus at.

Valve, on the other hand, is sitting on mounds of cash. In 2012 they were valued at 3 billion dollars. I imagine that figure is even higher now:

7. High End Developers

Both Oculus and Valve have high end developers. Oculus's does have 2 things going for them:
1. Their primary focus as a company is VR
2. They have Carmack and Abrash

Valve's hiring and org structure are very unique. Gabe has spoken about it several times:

Here is Valve's employee handbook:

Final Thoughts

What does this all add up to? I thought I'd make a grid of who has what:

This is by no means a complete picture of the VR landscape but illustrates some of the dynamics between the 3 main contenders. I haven't included GearVR because I wanted to focus on a high-end VR solution.

If Valve can deliver a high-end VR headset with the Steam Machine and a great AAA title it could be a the perfect sweet spot between functionality and game play.

Monday, February 2, 2015

Diablo 3: Monk: Gungdo Build

Someone just beat Great Rift 52 on PS4 with the Monk's Gungdo Build.

I run an exploding palm Monk in the season and thought I'd put the build into a succinct image so I can refer to it on the ipad as I build my gear.

Reddit Article:


Monday, December 22, 2014

Video Game Photography

As games continue to become more realistic, there is a new niche for video game "photography".

This is where you take a screen shot as if you were shooting with a camera. I apply the rule of thirds, make sure everything important is in frame, make sure the image tells a story and evokes an emotional response.

Here are some sample shots from games I've played recently:

 Bioshock Infinite

 Half Life 2

 Remember Me

Vanishing of Ethan Carter

I may play around with taking them into Photoshop and applying some of my tricks.

Friday, December 19, 2014

Our Christmas Movie Schedule

I went searching on google for the best Christmas movies. Hugely disappointing and annoying lists were returned. So instead of relying on google for help...

I've put together a Christmas movie playlist from tonight through to the 24th.

Some of these I haven't seen before and some are family favorites. The Grinch is always the last thing we watch before Christmas.

December 19th:

Santa Claus is Coming to Town

The Santa Clause


December 20th:

Frosty the Snowman

Miracle on 34th Street


December 21st:

Rudolph the Red Nosed Reindeer

It's a Wonderful Life


December 22nd:

A Charlie Brown Christmas

A Muppet's Christmas Carol


December 23rd:


Buddy's Christmas Musical


December 24th:

Polar Express

How the Grinch Stole Christmas

Wednesday, December 17, 2014

Project Tango Available for Developers

I got an email to purchase a Tango this morning.

I placed an order. Let's see what I can do with it...

Here is a prior post on the tango:

When I get it I will do a detailed unboxing of it.

Monday, December 8, 2014

Half Life 2 for the DK2

Half Life 2 for Oculus DK2

So you've got the DK2 and are itching to play Half Life 2? Well... put down your beer. You've got about 15-30 minutes of work to get it all ready to go.

These steps are a succinct visual walk through of instructions and comments found here:

Download Oculus SDK 0.4.4 Beta (as of 12/8/2014)
I was originally using an older version of the beta and Half Life 2 wouldn't recognize the DK2.

Turn on the DK2

Update your DK2 firmware

Put Rift in extended mode
Half Life 2 does not work in direct HMD mode.

Set the monitor resolution so that the frequency is 75hz
If you don't do this, you will get judder in the game. It makes it unplayable. Finding the right resolution that supports 75Hertz may take a while. I had to go all the way down to 1024x768 before I found a resolution that worked.

Enable Half Life 2 beta
Right click on the Half Life 2 game in steam and it will open this dialog. Go to the betas tab and enable beta updates. Half Life 2 will download new stuff when you close this.

Add launch parameters
Half Life 2 must run at 75 Hertz so there is no judder. You need to pass a few launch options.

Enable Virtual Reality 
Within Half Life 2, go to options and enable virtual reality mode. You will also need to run in a window.

Disable Motion Blur
Turn off the motion blur. It can be found in video - advanced.

Enable Developer Console
Turn on the developer console in the keyboard tab.

Set refresh frequency
Open the developer console by pressing the ~ (tilda) key when you are at the menu.
Enter this:
fps_max 76

Enlarge Camera Tracking Bounds
The tracking camera's default boundary is very tiny. Lets fix that.
With the developer console open, enter this:
vr_translation_limit 100

Start Virtual Reality Mode (May require restart of Half Life 2 to see it)
You should be good to go. Start up Half Life 2 and enjoy. If you don't see it you probably don't have the DK2 on, its firmware is old or you don't have the latest Oculus Run time.

Side Note:
developer console settings must be re-entered every time you launch the game:
fps_max 76
 vr_translation_limit 100

Monday, October 27, 2014

To RAID or not to RAID...

For the last week I've been struggling to get my RAID-6 array back up and running. This is the second time I've had major issues with a RAID and I can tell you... it had me sweating bullets. I've sorta had a "come to Jesus" moment with my RAID array and I am looking to eliminate it with an alternate solution.

Here is my current RAID-6 setup:

This is a straightforward raid solution. 8 drives in a RAID-6 configuration where 2 drives worth of recovery are available   
What a RAID promotes is laziness in backup. You may have the best intentions but I would bet that after years of use, you will slack off of backups   
Then when you aren't paying attention it stops working and then the nervousness kicks in:   
1    How long has it been since the array has been backed up?
2    What will I lose if I can't get the array back up?
3    Oh crap, 2 drives are out of the array. If I lose one more…
4    And… a lot of curse words if it isn't coming back up.
1    The drives are one file system. No special considerations necessary for type of data
2    Can handle 2 drive failures before data is lost
1    If the Array fails (3+ drives are bad) all remaining drives are useless
2    Mounting a large raid file system takes 5-10 minutes
3    Adding a drive back into the array takes 1-2 days to complete
4    Regardless of the operation (read/write), all drives are hit to complete it
5    Backup drives can not be hot-swapped into the array. Data must be copied off them
6    The structure of the backup drives does not match the structure of the array
7    You need all the drives for your space right away even if half of the space is unused for years
      > NOTE: You can grow an array but it is unlikely you would do this
8    All drives need to be the same size in the array. Some can be larger, but the extra space is lost

Here is my new/proposed no-RAID setup:

This is my new solution. I will cover my rationale for exactly how I came to this conclusion later       
Components of the solution:       
1    Constantly changing data is dealt with separately with a glacial or cloud backup (documents)   
        ie: I will not be putting constantly changing data on this server.
        I will be keeping this data in a cloud or glacial back up
2    Once data is added to a drive, it never moves.   
3    When a drive is full, it is never touched again   
4    The drive that is currently being added to is backed up nightly via rsync   
5    When the current drive is full   
      a    The drive is never touched again
      b    The backup is taken out and a new backup is put in place
      c    A new "current" drive added into the enclosure
      d    A secondary backup is made outside the array of the latest full backup
      e    The secondary backup is stored in a different/safe location
1    Regardless of how many drives fail, the remaining drives are still useful   
2    Adding a backup drive into the enclosure immediately makes the system fully functional   
3    Only the drive with data is hit for read/write   
4    Likely, the latest drive is hit the most and the older drives remain inactive extending lifespan   
5    The backup drive exactly mirrors the file structure   
6    Backup is automatically handed by rsync   
7    There is more space available in the enclosure   
8    You only need new drives as you use up space   
9    New drives can grow in size as new drives become cheaper   
10    This approach encourages/enforces backups   
1    Data is partitioned by drive. This is not really a big deal   
2    This is slightly more manual in nature (rsync versus raid recovery)   
3    Finding a specific file may require looking onto multiple drives based on how organized you are   
4    A tiny amount of space will be unused on each drive when the latest file won't fit onto it   
5    This may require a few more drives.

Exactly what is stored on the file system?           
    You have 2 classes of data:       
    1    data that costantly changes   
          These are documents, a personal database and a personal source repository (< 1% of space)   
    2    data that never changes   
          audio, images, videos (> 99% of space)   
When to use a RAID?           
    If the contents of the file system are out of your control, by all means, use an array       
    If the majority of your data changes (large database), use a RAID       
    If you need to store something that exceeds the size of any one drive, use a RAID       
    Otherwise, I would suggest a RAID is overkill and does not provide the backup you think it will             
Unchanging data           
    Audio, Images and Videos never change.
    This is a very important consideration. If you are like me, that is 99.9% of your data.       
    No video will ever exceed 3TB. Once I put a video in place, it never moves.
    Why exactly would I want a RAID?       
Raid != Protection           
    A raid does not provide protection.
    If your drive monitor stops working or there is corruption in your array, you are screwed.       
    I say this this from practical experience.
    It has happened TWICE. Turn your back on a "smoothly" running array and it will fuck you.
    This is the LAST thing you want to hear when coming in from yard work:
    "dad, xbmc isn't working anymore for mom and me"       
How valuable is your data and your time?           
    Do you have a solid backup policy in place? This is your home btw. I highly doubt it.       
    Even if you have the data in some form somewhere, how long will it take to reconstruct it?
    How valuable is your time?       
    How much of the data can not be recovered?       
    How much time can you afford for your system to be offline while you recover data?       
    Who is affected by not having this data for weeks?       
Having a drive organization strategy           
    After many years of data hording, I think static data falls into these categories:       
    1    images   
    2    audio   
    3    video (you may choose to break this into a few subcategories)   
    4    software   
    5    pdfs   
    My intent is to have these same directories on each drive regardles if any data resides in it       
Additional thoughts           
    If you never expect a file to have the same name across drives you could write a nightly
    script to add symlinks       
        These symlinks would go from each drive onto your main linux OS drive
        Having the same specific directory structure on each drive would make this pretty darn simple   
    Give yourself a little wiggle room on each drive       
        If you use a video client like XBMC, things change over the years on what they support   
        You will likely have nfo files and/or custom dir structures for XBMC to recognize your files.   
        I have custom code I've written to rebuild these based on the files.