Tag Archives: Oculus Rift

The video game market is changing. A few years ago making a game was an expensive business, too expensive for most development teams to pay up front. So developers went to a big publisher to get some money to create the game, the publisher would then publish the game and take a large cut of the profits. The major problem with this (apart from publishers taking the majority of the spoils and developers often going bust) was that publishers didn’t really care about games the same way developers did. Publishers care about money and if they weren’t sure that your game was going to sell a ton of units there was no incentive to publish it. This lead to the great FPS flood of the 7th generation of consoles. FPS games sold well, so these games would often land publisher deals, games that looked like they showed a spark of something new and innovative were often left behind.

Fortunately the “Publisher rapes developer” model is being challenged. I’m not saying the state of the industry is perfect. I mean is anyone happy with how Microsoft continue to mock Rare fans by forcing them to work on Kinect Sport games? It’s almost like being a really talented singer being forced by a contract you signed to with to lick a hammer to sell records. How about EA selling games at £45 a pop that have been engineered to make you lose unless you fork out for extra weaponry to use online. But still the tide is turning. Indie developers can use tools that have low entry costs such as Unity or UDK or even develop their own tools if they are so inclined. They can then publish the games created with these tools to a variety of different distribution systems such as Steam, GameTap, Android Market etc without falling foul of EA.

Micheael Cusack demonstrates exactly how gamers feel about Microsoft and Rare. Microsoft purchased Rate from Nintendo (which was one of the few great Publisher-Developer relationships)

I am well aware of how the disruptive nature of new technology challenging business models didn’t really work out well for the little man in music industry. I still worry that the publishers of old will still find a way to take advantage of small time developers to fill their coffers. Microsoft and Sony are both opening the doors to their new consoles indie developers, but binding them by rules. We are seeing distribution systems such as iTunes pushing and pushing the in-app purchase model on developers. It shouldn’t be this way! Developers should be calling the shots of how the distribution model works. Systems such as in app purchasing force developers to develop their games in a certain manner. How do we get the player to buy an extra life or that weird chocolate sprinkle candy that destroys all the candy it touches? That’s all well and fine if that is how the developer wants to create their game, but how can we ever call something an art if its creation is based around the way we are going to sell it? All is not lost. There are developers who are publishing games on their terms. Taking advantage of the new business models that they want to and ignoring the ones that will harm their games. I’m sure there are loads of indie developers out there working out cool ways to publish their games and we will see them come to the forefront soon. At the same time we are seeing a rise in new hardware that the publishers of old don’t have control over. Here are a few things I find interesting:

Telltale games: Episodic Content

Telltale’s “The Walking Dead” was very story character driven and seen as pushing the boundaries of ‘What is a game’. Image Source: Wikipedia

A lot of media comes in an episodic format; you can buy books, comics, movies and TV shows by the episode. You can even skip an episode if you wish! I find it very odd that games, up until recently wanted you to part with £50 for a full experience, but only let you get as far as you could. If the level 1 boss keeps killing you then good luck getting the rest of that £50’s worth of entertainment. Can you imagine not being able to read book 2 of Harry Potter if you didn’t understand a word at the end of book 1?

I can understand this to some extend as game design often doesn’t lend itself to letting people skip ahead, but I still think it’s odd that few developers allow to buy games in episodic chunks. Sony tried it with the brilliant Siren: Blood Curse, but quickly backtracked when it didn’t look like an instant win.

One developer who has seemingly mastered episode content is Telltale games. Telltale is an independent developer, founded by ex LucasArts employees who are specialists in adventure games. They acquired the rights to work with well know Intellectual Property such as Sam and Max, Money Island, Homestar Runner and produced high quality adventure games based off them (with the exception of their Jurassic Park game, not quite sure what went wrong there).

Instead of reaching out for the usual major publishing agreement they decided to release their games in episodes on content delivery systems. This gives their games a wide audience as the games are released on a wide array of different platforms. As well as having their games available for download without DRM restrictions Telltale pop their games on Steam, Gametap, PSN, Live, Wii Shop. Depending on the content system you can download individual episodes or grab a season pass which allows you to get all the episodes for cheap.

Telltale usually release a new episode in a game bi-monthly, so far so good as they haven’t missed a deadline.

Double Fine: Releasing games they want

Double Fine is an independent developer founded by LucasArts legend Tim Shafer. I don’t know what it is about Lucas Arts, but I guess now it seems many of their mid 90s employees are doing incredible things. Double Fine look to publishers for the traditional publisher-developer funding model, but not wishing to be stuck doing games they don’t enjoy developing branch out to other funding models when needed.

Spacebase DF-9 was a prototype idea chosen by gamers who donated to charity. It took $400,000 in two weeks on Steam Greenlight

They are most known for crowed sourcing funding for their new adventure game coming out in 2014 called Broken Age. Unable to get a publisher to take the risk of putting money up front for a 90s style adventure game they asked the players to pay. Tim’s fame on works such as Grim Fandango got him the funded he needed.

The most interesting development model they took was to create a bunch of prototype games that they would like to develop further. They got players to donate money (minimum of $1, which went to charity) to vote on the prototype ideas they liked the most. These ideas were developed in to small prototypes which a donator got to download and play. The most successful of these prototypes would then go on to become fully fledged games. While this model might not pull in money to fund the games creation (as it went to charity) it did raise awareness of the games and asked the audience directly what they would like to play; this resulted in a $400,000 take in sales when one of the games developed using this stratergy hit Steam Greenlight.

Steam Machine, Ouya and friends: consoles and cool tech for Everyone

You no longer have to shell out for a console to enjoy great accessory. The Oculus Rift is a cheap VR headset available for PC/MAC/Linux. We’ll see devices such as Steam Machines work with them and developers not paying for the privilege of releasing games for them. Image Source: Wikipedia

Perhaps it is a little naughty to put these on the list as these are innovations taken by hardware manufacturers and publishers. The Steam Machine, Ouya are both examples of hardware devices that have low entry requirements to develop for. There are lots of these consoles coming out, and lots of interesting accessory such as the Oculus Rift (a VR headset created by crowed sourced funding) heading to them. I think what I’m trying to get at here is the fact that content management systems aren’t the only thing opening up for indie developers. We are seeing a lot of new hardware that has very low entry requirements for as options for them to develop for. It was reported that on the 360 Microsoft charged $40,000 to developers to patch there titles, as an indie developer would you like to sign up to that kind of cost? This charge was eventually dropped, but surely only because Microsoft could see these hardware alternatives that are much more cost friendly to the up and coming indie game developer.

So what does the future even hold for publishers? We’ve seen the big wigs hold on in the music industry. This must be because they have the ability to market music better than the individual does. But do games have the same need? The trump card for the music industry is getting bands played on the radio or a TV performance. What is the video game equivalent of the radio then? If it’s the Let’s Players, then the publishers are in for a shock. Perhaps this explains why Sony and Microsoft’s were so desperate for Twitch TV on their consoles.

When I first heard about the Oculus Rift I was sure that Virtual Reality had finally made the mainstream. At $300 with affordable development options it was sure to take off. I knew why the Oculus Rift was cheap and that was because it uses cheap components! The components are cheap because they are already being manufactured in the huge quantities for the production of smart phones. So if the components are cheap, why don’t we build them ourselves?

First we have to think about creating the headset itself. To create a VR headset like the Oculus Rift (the current version, the next version will have some new bits!) we need a screen, accelerometer and gyroscope. All of which you will already own if you have a recent smartphone. You could simply buy a holder for your phone!

The Durovis Drive

The Durovis Dive (http://www.durovis.com/dive.html) is simply that. Its worth checking with Durovis if your phone has the correct bits of hardware and is the right size. If you so happen to own a 3D printer you can print one using the opendive project files.

If you don’t have a 3D printer and can’t afford to buy a holder from Durovis but have a history of making Screwfix models you could try making a viewer using the instructions at FOV2GO, a project by the University of California.

For the Oculus Rift I like to make web based content. I’m not sure how you would send the tracking information back to Android/Ios browser if you decided to make one yourself. Working with apps isn’t so bad as Durovis have created a library for sending tracking information back to apps themselves, you can download it here for a play. There is also a Unity plugin which you can use, but obviously you need a version of Android that can create android/iOS apps which I think will start to cost you money. If you want software already made there seems to be a few apps on Google play that work with phones being used as VR devices.

I’m interested in where this is going to take us. I think the Rift is here to stay, it has a good financial backing as well as backing by some well known game developers. Perhaps we really are seeing the start of indie/do it yourself gaming devices. The Ouya and Gamestick might not have been everything we wanted, but with steam machines around the corner open consoles and accessories could be an interesting space.

You can create virtual world for the Oculus Rift and host it on the web very easily. It’s free and works on Windows and Mac OS X. I won’t go in to detail in to this post, but this is how I set my environment up and got something working in less than 20 minutes. To create worlds this way you will need some web development skills as this is based on the html5 canvas element/WebGL, but you should be able to hack something up even if you aren’t that good at html5. I think that in the future there are going to be some pretty good drag and drop tools to create webgl based worlds, but for now we will use a javascript library (which is very good, just not easy for people without web development skills)

1. First you will need a way for your Oculus Rift to talk to your browser. There seems to be a few people fiddling with ways to do this but my favorite so far is Oculus bridge. You can download the Oculus Bridge program from github, head over to here and download the zip file.

2.Unzip the this to your desktop and look under Desktop/oculus-bridge-master/app/build for a zip file that corresponds to your system (windows or mac) extract the correct one. This should give you the Oculus Rift program. Running this when a rift is connected will send your movements to the browser (over netsockets I think). Click the extracted program so that it is running.

3. Before you start developing anything on the web you’ll need a decent browser. The Oculus Rift needs websocket, this means you will need a newish browser so you are best to upgrade if you haven’t in a while. Also I’m not sure if IE will work. I’ve not tried it with IE, but you’ll be much better off with Firefox or Chrome.

4. Now you need to to create a virtual world. Fortunately the zip you downloaded actually has some pretty good examples that use three.js, a javascript library for creating some pretty cool graphics using open web based standards. If you head over to the three.js site you can see some very impressive examples; now imagine them in the rift! Anyway we’ll start by using the first person demo in your extracted folder. Open oculus-bridge-master/examples/first_person.html in your browser. The window that opens should have a button that says “Toggle Display mode” press this to make it Oculus compatible.

If a square isn’t filled in then something is wrong. Here the Rift is not connected

This should give you a working 3D world on the web. If something isn’t working then check your Oculus-Bridge program. There should be two filled in squares, if ‘netsocket’ is blank then your browser doesn’t support websockets. If Oculus is blank then you need to check that your rift is set up correctly.

You might also need to check your resolution setting. If things don’t look right check your resolution and check the browser is not zoomed in.

Now you might want to edit the example, you can do this by simply editing the file in the js folder, open first_person.js file in a text editor (or something like eclipse). I’m saving a detailed ‘how to use three.js with Oculus Rift tutorial’ for another post (and there are lot of three.js tutorials on the web already) so for now we’ll just edit one thing to prove that you can. Line 124 should look something like this:

‘for(var i = 0; i < 100; i++){‘

This is the start of a loop that creates those little flying blocks in the demo. Try changing 100 to 1000, save and run the demo again. You should now see loads of those little things (it set my computer fan off..)! After about 10 minutes I as able to put in some text that it as pulling from my twitter account, it wasn’t that interesting but I thought it gave a good indication of how we can create 3D worlds in the web combined with real time data.

The next step is to start from scratch creating a 3D world using three.js and Oculus Rift. I plan on writing a tutorial, but there are lots of three.js tutorials already out there. This is the little world I created in 10 minutes:

Many of the tools developers are using to create Oculus Rift games support Mac OS as a platform. This is great news for OS X users who are usually shunned when it comes to great gaming experiences. If you have a Mac and wondering if you should get a Rift these are my favourite games to show off it’s potential:

Half Life 2
Half Life 2 is is a paid game and if you don’t already have it I recommend hanging on until the next steam Sale where the game often ends up being cheap as chips. It’s a nice demo to show people because Valve have really thought about how virtual reality games might work when your sitting facing in one direction; they have used s combination of head movements and mouse to control the players view and it works really well.

The wsad movement is slightly harder when you cant see the keyboard and this one might be best saved for gamers who have their finger muscle memory trained.

If you are to cheap to buy HL2 you can always get Team Fortress 2 for free, but it’s fast pace and quick deaths might give people new to the Rift some motion sickness.

This is a neat one to convince parents to buy you one for the educational content, the idea is simple. You sit in mini spaceship that flies around the planets. Every so often it will stop and tell you some details about the planets you can see. It’s really engaging and easy to use. I think there is only one button to press to get it to work.

Parrot Coaster
While I prefer to show people RiftCoaster it only works on Windows and has a rather large download size. Parrot Coaster is a simpler roller coaster simulation that works on the Mac and is a smaller download size.. You can’t move anything except your head using the Rifts sensors making this one a good demo for non-gamers who find i

I am really surprised at how easy it is to create content on the web that is Oculus Rift compatible. I’ve been using a small software program called Oculus Bridge to get tracking information to the browser (via websockets) and a WebGL library called three.js to make 3D worlds. While playing with three.js I came across a a library of three.js extensions which are apparently very easily to incorporate in to your existing projects.

One of these extensions was a Nyan Cat; so to demonstrate to a student how ‘pick up and play’ the Oculus Rift really is I set out to create a 3d Nyan cat world with them. It took us about 30 mins, most of the time spent getting our heads around how three.js likes to do things. I’m planning to create a 3D universe of flying cats for the Rift before I post it up for people to play with themselves, but since I don’t have time at the moment to finish things off here is a video of me playing with how far I got:

So far with my Rift I’ve had a go at creating a virtual world that imports data (just text at this point) from my personal corpus/personal api and displaying them in a room. I wanted people to be able to go trot around a virtual world, view bits of text and stats exploring things they about themselves. I had a first attempt at this in Unity 3D, which is takes about 10 minutes to set up and start creating something, the problem with my current efforts is that the Unity 3D game development platform will charge you $75 after the 5 month free PRO trial.

Deciding to move to a free platform I started to build stuff in WebGl. Poking about I found there’s a pretty good library used to build 3D worlds I came across called three.js . I nabbed an example of a mini 3d blocks city in three.js from here , mucked around with reading some text from some topic modelling scripts I ‘prepared earlier‘ and downloaded the Oculus Bridge: to create a very rough 3d City featuring random words from my topic models in the browser.

The important thing is that the 3D world responds to the movement of my head when I wear the rift, it only took me about 5 minutes (most of is from the bridge examples, which uses three.js anyway) to mash these things together and I had a 3D world I could put on the web importing data from a different source. I’m hoping I can have it react in real time to things that are going on. Here’s a video of the world working in the browser on my local machine, I’ve got the headset on while I’m recording. It’s hard to tell from the video the feeling that the wearer gets but I did want to reach out and touch the words. The little flying cars I want to be stats about my life and the high rise buildings replaced with some kind of visual representation of the things I am doing. The movement was pretty hard because while it tracked my head it didn’t track my body, I wonder if I can get it working with an xbox pad. When I get time to actually do some proper development I’ll blog it up.

Oculus VR SDK which you should get from logging in to your developer account.

The jist is this. The rift template goes inside the template folder in Torque. When you create a new project you need to select this template and add the Oculus SDK as a module. You’ll also need to change teh movement type so it supports the rift. Wpparently that’s all, it seemed to work for me. I made a video of the setup :

I haven’t actually received my Oculus Rift yet, but that doesn’t stop me doing wanting to develop for it. There seem to be quite a few ways you can develop things for it, the easiest seem to be by using game engines such as Unity or Unreal. I however for a work project we want to do some things with the Oculus Rift with the Personal Corpus and therefore I want to get to grips with doing stuff in C++. I thought I’d make some notes as I went along.

If your on Mac OS X then you should be able to get your hands on Xcode to do some stuff with the rift. As far as I’m aware Xcode is free and available from the app store. It’s appeared on my machine somehow anyway.

OK, first things first: I’m not a very good programmer, more of a web developer who understands OO but can’t implement it very well. Secondly I am new to Xcode, I’d like to use Visual Studio but I have access to OS X more than Win 7, when I develop stuff on my Mac I usually use Eclipse as an IDE because it appears to be able to do everything; but I am assured that Xcode is the way to go for C++. I’m using the windows minimal app on the development wiki as a guide.

Step one: Download Xcode

Go to the Mac App Store, install Xcode

Step two: Start a C++ project.

When Xcode Starts there should be an option to start a new project. Once you’ve pressed that then look for the option to start a Command Line Tool under OSX->Application.

You’ll need to pick a product name, organization name and indentured. I needed to pick a product name but it had already filled its self with examples for the others that would do for my hello world app. I guess for test purposes this doesn’t matter too much. I did however have to change the Type to C++.

Step three: check everything is in order

Under your project directory you should see a main.cpp. This is a prebuilt helloworld c++ program. You can click the run button to see what it does (which is push “hello world to the output program at the bottom of the scree).

Step four: include Oculus Rift SDK

This is where my lack of Xcode/C++ experience will really shine. You need to download the Mac SDK from the Oculus Rift developers site and include the LibOVR directory in you project. I right clicked my project and went to ‘add files’ I then navigated to the LibOVR directory and clicked ok.

Now back in your main.cpp add the line:

#include “OVR.h”

under #include <iostream> and

using namespace OVR;

beneath that

Under that I created some global variables; These were recommended by the Oculus Rift Wiki:

Edit Me

This site is a collection of things I've found interesting or wanted to write about. I often don't proof read - it is full of bad spelling, grammar mistakes. Sometimes there are better ways to explain or demonstrate things.

All the posts here can be found on GitHub, If you want to make an edit you can by taking a fork of my repository, updating the master branch and sending a pull request. I will review and merge.