GGJ - Oculus Rift and Leap Motion
As most you know, yesterday was the last day of the Global Game Jam 2014. This year we wanted make something different! So we have took our times and found ourselves an Oculus Rift and a Leap Motion device. The was experience awesome ! so the challenges..
Unfortunately i will not discuss the Global Game Jam or the MogaMecha(our game) even though i really want to ! I would like to talk about our experiences with developing and playing a game with Oculus Rift and Leap Motion combined.
When we have have first opened the boxes, it was quite the scary. Because we had to create a game, implement Oculus Rift and Leap Motion which we had no to little experience about their implementation and make this experience fun. Like every GGJ, we have chosen a target way over our heads. Fortunately most of the things went quite smooth and we even had the time to polish our game and experience.
Note : Any positive or negative comments about the devices are completely depends on our own experiences. We did not had any experience about either of the devices. So all negative comments about the devices might be directly related to our inexperience with them rather than the device.
We have decided to develop our game with Unity3d since it is one of the fastest and easiest Game Engine. Perfect candidate for a Game Jam if you ask me.
Our main objective was to find a way of using Oculus Rift and Leap Motion all together and taking mouse and keyboard out of the picture. We wanted the player to be completely in the world.
GitHub : https://github.com/Nidre/Awesome-GGJ-2014-Game
GGJ Page : http://globalgamejam.org/2014/games/mogamecha
i know that i have said that i won't discuss the game, but understanding the mechanics might help you better understand the other content of the article. So you can skip here, but i do strongly recommend not to.
MogaMecha is a game takes place in an alternative universe where we kill evil cola bottles(Moga) by firing Menthos from our Mecha. ( http://bit.ly/1givNqV )
We have decided that, we want to make sure that we have created at least two different points of views in the game. Thus we have decided to make this game a Co-Op Multiplayer game.
Pilot(player 1) Uses the Leap Motion and Oculus Rift to control the Mecha. Pilot should move her head around to find the targets. To fire a Menthos, Pilot has to move his/her right or left hand to fire the weapon held by corresponding arm. Since the Mecha is damaged, Pilot can not understand which target is an Allly or Enemy thus pilot needs Co-Pilot's help to tell him who to shoot at.
Co-Pilot(player 2) has to identify the Enemy units and tell the Pilot who to fire at. Co-Pilot has to directly talk with the Pilot in person to do so. The second objective of the Co-Pilot is reloading the ammunition. He/She have to use the mouse and keyboard in a separate computer to reload ammunition for the Pilot. So without Co-Pilot, Pilot can not even fire a single cell or know who to shoot at.
First things first, Oculus Rift is a Head Mounted Virtual Reality device. It is more real than you would expect to. When you mount the device you are almost completely in another world.
Surprisingly we didn't really had much of a challenge implementing it. I should really thank the developers who created such an easy implementation for a device like that. Most of the time we have spent on Oculus Rift was about improving the experience rather than implementing it. Actually the implementation (for Unity3d) is as easy as dropping a Component to the Scene. It Just Works ! You just have to tweak here to how you like.
The only problem i had with Oculus Rift was the difficulity of getting a clear image. When the device was a little bit tight or loose the image was getting blurry. But that wasn't a big problem since the blurriness was in an acceptable range for most of our testers.
Oculus Rift wiki : http://en.wikipedia.org/wiki/Oculus_Rift
Web Site :Â http://www.oculusvr.com/
Leap Motion is basically a censor that can detect hand and finger movements. This was the perfect canditate for our Mecha controls and to make sure the Pilot was feeling inside the Mecha.
First thing we did was to launch the example files provided by the Leap Motion. Most of them worked great and seemed stable enough for our purposes. But the real story was different. I am not sure if it was caused by the Unity, Leap Motion or our implementation methods. As a result, implementation of the Leap Motion was a lot more harder than we have expected. Since we had to be as fast as possible, we have tried to make use of the Official samples provided in Unity Asset Store. The sample projects seemed to be working kind of unstable. But since the example programs was quite stable, we thought that either we were very bad users or the Unity examples was not quite stable.
Since we didn't had much time, we have decided to modify one of the examples to fit our purpose.
At first we have tried to use a reversed punching motion to replicate our Mecha's shooting animation. This would be the perfect gesture for the experience. Except, we couldn't get reliable detections of the motion after long hours of work.
Than we have decided to move on to our secondary plan to detect if the hands were closed or open to trigger weapons. This went a lot better than the previous approach in terms of stability. But the detection failure rate was a lot more than we could be happy with. The problem here was that, we were trying to detect the hand state(open, closed) by counting the visible fingers. But most of the people leaves thumb opened even if they form a punch position with their hand. Add this with the normal fail rate of the device and the results was not stable enough for us.
The latest approach was to forget about gestures and only check if the hand is visible to the Leap Motion. This worked almost perfect for our usage. But it greatly reduced the user experience. But we didn't had any more time to work on that and we have moved on to other tasks at the hand.
I feel like the Leap Motion is designed more for UI and slower applications. Maybe we have tried to sue it out off it's purpose or it's abilities.
Leap Motion wiki : http://en.wikipedia.org/wiki/Leap_motion
Web Site : https://www.leapmotion.com/
We had problems here and there as expected, we had a couple of who were about to fall down, we haven't slept, skipped a few meals, but definitely we had great fun and experience working with such devices.
Do you have any experiences with the devices blow that you want to share with us ?