Project Revisit

Today marked the first day I revisited Enliven VR since the Launchpad program submission. The main reason was I wanted to upgrade to the latest Unity 2017.1.1 version, but I had been hesitating for a while, in fear of things breaking. I also wanted to downgrade Oculus Utilities SDK from 1.16.0-beta down to 1.15.0 stable build.

Why these changes? In Unity 2017.1.0, apk is signed using Schema V2, while currently Oculus store submission only accept apps signed in Schema v1. That was the main reason why I had to create keystore manually to get it signed in Unity, then to resign the build using jarsigner. In 2017.1.1, we don’t have to deal with jarsigner anymore, and looked like I can reuse the existing keystore.

For the utilities downgrade, I have been having issues with camera, especially with objects that very close by. Sometimes I feel like the world move a bit, which definitely not comfortable.  I want to check if using the latest stable build can address this issue.  Oh, also it doesn’t help to see this information below on the release note for the beta version… This note was not there when I started using this utilities in mid July! >.<

As I mentioned previously, I was participating at Seattle VR Hackathon last weekend using my laptop, and we used the latest Unity there. I figure I might as well update Unity on this working machine, and thankfully the upgrade was seamless. Downgrading Oculus Utilities was a bit problematic though.  I started by deleting the OVR folder while Unity was open. Somehow, there were other components here and there that caused the utilities to keep being reloaded even after deletion. After many many attempts of deleting several different folders, I use the handy dandy google search, and stumble over this article. The main thing I learned for there was..  do this deletion when Unity was closed!  I followed that instruction, reopened the project, and Unity stopped trying to reload the OVR files, yay! There were a bit more remnant left, so I kept closing, deleting those components that got left behind. Once things were clean, I imported Oculus Utilities 1.15.0 and everything loaded properly. I built the latest scene and it was successful. Now we are ready for more testing and building.



Week 11 Update

Every year Penny Arcade Expo (PAX) has always been a big industry event here in Seattle, so I know I would not have much time to work on developing Enliven VR much.

On Sunday night, after I posted the previous blog, I started to learn the submission process to put the latest build onto Oculus Store. I printed and read all the documentations from the website, watched and took notes from Nathan’s video, created a built, created storekey, signed it once, then got stuck on the jarsigning process. I kept getting nothing but errors. Every time I got an error, Google was my best friend and helped in finding answers. I recreated the build several times, tried several different storekey, and jarsign just wouldn’t budge. I went to bed feeling frustrated.

On Monday morning, I went back to Google, looked for more information, and started noticing pattern of people who had issue when their filename had weird symbol like numbers or signs. Also some people mentioned that we should shortened the path name.  So I created a new folder on my d:/ drive, put my new build there with really simple name. For the keystore, I use really simple password, again, no number or symbol. Then voila, jarsigner worked!!!  I was so happy.  Gabor reviewed the app really quickly too, probably because I posted it around lunch time. Thank you Gabor, hope you had time to eat lunch.

People in the discord channel, Lauren, Tyrus, and another Scott helped me on the whole process. For those who need help, hop on discord :D

I spent Tuesday and Wednesday at PAX Dev. There were not many VR talk this year, unlike last year. The VR vibes last year was all about “give it a try, dev!  Don’t worry about failure, nobody knows what’s going on.”  This year, it’s more like “okay, we made mistakes, here what we learned.”

Currently I am at PAX. My mission is to try as many VR experiences I can try. It can be challenging since the lines are really long!  Bethesda is showing Fallout VR, Doom VR, Skyrim VR, and earlier I noticed the line was already 3.5 hours wait. There are a few indie VR games in smaller booth.

My other mission is to find some people who are willing to try my app. I had one lady volunteered this morning. She said she were a bit prone to motion sickness, and she did not have any discomfort using my app, which was great for me. There is also a special room here called AFK room where people can find safe space when they feel overwhelmed in the convention. I dropped by there earlier, talked to one of the organizer to see if I can demo my app there. He said to drop by tomorrow and have organizers try it first. We’ll see what happen then.

See you next week!

Week 4 Update

This week I started the production phase of this project by creating a series of different levels to mimic the flow of the experience, starting from Main Menu up to lobby selection. I spent some time watching Unity live stream tutorial video for how to create, save and load persistent data, since I will need to implement similar thing to record users preferences, like their favorite animal, things that made them uncomfortable, etc.

During this time, there were some level design changes as a result of rapid prototyping and user testing. The most constrained setting, which was the laying down position, had a very small range of viewing. During several testing on the previous room level, I noticed that it was hard to access the menu placed on wall to the side. I really had to strain my neck to be able to select the menu items and it was really uncomfortable. This needed to change. I also realize the lobby level can be used as a relaxation place as well. Also I started to design around adding downloadable contents (DLC) to the project.

This week was super busy in term of professional meetups in the evening, so I had to cut some development time.

On Tuesday, Unity 2017 was released. After backing up the project, I decided to upgrade. To my surprised, I had almost no issue. Usually when I upgrade to a newer Unity version, a lot of scripts and sometimes prefabs would break. I was expecting tons of errors, but so far there were only a couple issues.

The first one was in the OVROverlay.cs script from Oculus Utilities 1.16.0 beta. The method Cubemap.CreateExternalTexture used 4 variables, but somehow the script used 6 variables instead. Once I fixed that particular line, the error disappeared.

The second issue came from a custom outline shader that I used before the upgrade. Somehow after upgrading, it added dark blue tints to all the outline materials. Since I didn’t know much about writing custom shader from scratch, I had to look for another. I found three different scripts online, tested each of them, and found one that a lot easier to implement than the old one.

In the evening, I went to an Indie Game Developer social meetup, which was held monthly. I met several other VR content creators there.

On Wednesday, I created the different levels, played around with different UI elements and changed design several times to ensure user comfort. Things were good. In the evening, I went to a local Hololens meetup. I wasn’t planning to go, but then I heard they would demonstrate Microsoft new Acer VR HMD there. I glad I went though, since the talks were really interesting. The first speaker, Sean Ong, shared his experience in creating virtual apartment tour for a company in Dubai. The second speaker, Thomas Wester, shared his experience in capturing dancing motion into VR and AR experience in his team project, “Heroes – a Duet in Mixed Reality”, which was created as 2D film, 360 video (available on GearVR) and for the Hololens. I really like this talk, since it was the first time I have seen Hololens not used for business purpose. You can view these talks here.

My impression on Acer HMD… It was very light, even lighter than GearVR + phone. However the demo used a PC with older graphic card, so graphic-wise it was similar to PSVR. In term of room-scale, it felt like Oculus Rift, for seating experience. We can move a little bit, but there was not much room to walk around, unlike HTC Vive. They didn’t have the VR controller yet, so instead we had to use Xbox controller. I personally dislike VR experience using game controller. At the moment I was unimpressed with the HMD. I will have to try this device again with better PC and the hand controllers in the future.

On Thursday, I did some code and assets cleaned up. I then noticed that the new outline shader was acting strange. It would work fine for a bit then it wouldn’t work at all. I wasn’t able to touch more on this since I had to go to Seattle Unity user group meetup and learned about a real-time geo-spatial plugin called Mapbox. Having to drop was I was doing while it was still unresolved actually gave me a lot of anxiety. Those who befriend me of Facebook probably saw me complaining about it. Thankfully the content of the meetup talk was really interesting and I also got to meet some old friends that I haven’t met in a while. My anxiety was reduced a lot afterward.

The next day, instead of jumping straight into figuring out the issue, I started the day with me-time, taking extra time with hot shower, made delicious breakfast (usually I forgot to eat breakfast) and organized the house a bit so it didn’t look like a typhoon just passed through. When working solo, it is really easy to get burned out, and I noticed the anxiety might be the first sign. So after I felt more relaxed, I opened up the project and tried to figure out what causing the shader issue. After several testing, I noticed that during run-time, there was extra camera under OVRCameraRig. In my project, I modified CenterEyeAnchor game object by adding more children for UI and gaze interaction and their supporting scripts.

During run-time, usually CenterEyeAnchor was placed under LeftEyeAnchor automatically. But during my testing, my custom CenterEyeAnchor was placed under LeftEyeAnchor as usual, but then extra CenterEyeAnchor sub-object was created with a camera attached to it and it prevented the new shader from displaying correctly.

After I modified the OVRCameraRig.cs script and disable this extra camera, everything worked again, hooray. Let’s hope this won’t create a new wonky behavior in the future.

In the evening, I went to an event hosted by TPCast, which was a device that transform HTC Vive into a wireless HMD. I was skeptic about it before, thinking it would have latency issue, and the battery pack would be uncomfortable. However I had a good experience with it. It didn’t have any latency, and I forgot about the battery pack. It felt a lot more comfortable than having the long heavy cable, that’s for sure.

[Now, for a bit of rambling.]
This week I met a couple people that made me think more about VR industry and where we are heading. Both actually happened before and during TPCast event.

We arrived about 45 mins early for TPCast. The lobby had some nice sofa, so I let my husband tried the latest build of EnlivenVR while killing some time. We also met with another 2017 OLP member and chatted for a bit. Then an older gentleman approached us. He looked somewhat disturbed. He saw my husband using GearVR a while back, and wanted to share his concern. The gentleman was a senior composer working in movie industry, and had some people told him to look into VR. This event was his first time going to any VR event, and he noticed all the demo were on ‘violent’ games. Then as he talked to one of the organizers, he was told that that was what VR all about, and that really upset him. I was really surprised, since I have seen many interesting projects, games or non-games ones. I told him there were a lot more than violence in VR, and that I was in a middle of making a relaxation VR experience. He seemed happy to hear that. However he seemed disinterested from looking more into VR based on this first experience, which made me pretty sad. The gentleman left before the event even started.

As we made our way to the event room, one of the organizers was curious about what happened. We explained to him, and he seemed shocked as well. It turned out they were showing Space Pirate Trainer, and a bow/arrow game, which to most gamers were considered non-violent. I was expecting to see something like Raw Data, Arizona Sunshine or other zombie survival shooter games instead. The organizers then tried to catch up to the gentleman to talk to him, but he was long gone.

At the event, there were a total of 6 ladies: four attendees and two organizers. I chatted with these ladies. Like most VR events, the attendees were mostly men. One of the lady, just like me, has been working in tech for a while so she was fine. But another lady, who was there with her mom, was very new to VR. Just like the gentleman from before, this was also her first VR event. She was a student from business school, curious about this new technology but felt really intimidated for being a minority. We talked for a while, and I shared my experience that although it were very common to be minority in this kind of tech events, the ladies in Seattle and all over the world are trying to make VR/AR industry more inclusive to women and other minorities. She seemed relieved to hear that, and interested to come to more local meetups.

When it was my turn to try the device, I asked the organizer if I could try different app, a non-game one. They had Tilt Brush installed, so I went with that. I had a good experience being wireless, able to move around and draw from different angles without the need to teleport around or worry about stepping on tangled cable. When my turn was over, the two female staffs came to me, shared how they never try Tilt Brush before and now they were really interested of what else VR were capable of aside from gaming.

In the end of the day, I was left pondering. As a gamer, am I desensitized to violent contents? I don’t feel disturbed for shooting zombies or slashing monsters. For me, they’re no different than the fruits we slice in Fruit Ninja, just some objects to interact with. But for those who are not familiar, do we look like violent people for enjoying these kind of games? As content creators, what considerations should I put when creating contents, to make people like that gentleman not to stay away from VR?
[End of rambling]

Back to the project talk. To do list for next week:
– Create and test saving/loading custom data.
– Use custom data to drive object generation in room and garden level.
– New menu design that won’t hurt my neck to much.

See you next week! And don’t forget to take a break and treat yourself once in a while. It really helps.

Oculus Launchpad Bootcamp

As the first phase of this year’s Launchpad program, Oculus held a two full-day bootcamp at Facebook campus in Menlo Park, CA on June 10 and 11. One hundred brilliant participants with various background, ethnicity, different skin colors, and all with the common passion in Virtual Reality were gathering in this space. It was a lovely sight. I would say more than 50% of the participants were colored women, and the rest were colored men. I didn’t meet with any transgender person. But then again, I did not have the chance to talk to all 100 participants.

On the first day, the event started with breakfast and mingling among participants, followed by a short ice-breaking session to get to know each other. Robin Hunickle from Funomena came next with her inspirational talk about failing. The following talk was from Facebook’s lawyer, about law and legal matters. From then on, the participants were divided into two groups: 360 film making and games/experience. I was interested in VR experience, so I stayed to listed to Bernie Yee from Oculus Rex sharing his knowledge and experience as producer in video game and VR industry. The talk structure came in lectures as well as group exercises. We took a break in between this session to have lunch. After this track, all participants gathered in the main room again to listen to Storytelling presentation. The last talk of the day was an open Q&A session hosted by Jason Reuben. A lot of people were asking tough and good questions, ranging from upcoming tech, challenges in VR, to how to overcome unconscious bias.

At the end of day one, Oculus held a social mixer at the garden of Facebook building rooftop. If you ever watch The Kingdom of Dreams and Madness, a documentary of Studio Ghibli, where they showed the garden area at Studio Ghibli rooftop, it was similar, except Facebook rooftop garden was a lot larger. Up there they set up some VR demo stations featuring Google Earth and Facebook Spaces, where participants could try them with Rift & Touch controller or on GearVR. I have tried Google Earth, and really not interested in social VR at this time since personal space is still an issue, so I spent my time grabbing snack for dinner, had a drink from the open wine bar, and get to know the others.

The second day started with breakfast and mingling, followed by the first talk by last year Launchpad participants, sharing their experience of the program and the projects they are working on. It gave us ideas what to look forward in the next few weeks as we go through this program. Chris Pruett, head of Oculus Mobile Dev Engineering gave the second talk about VR user comfort issues, design and motion controls based on his experiences.

Then, we had Unity tutorial session, which divided the attendees into two groups based on their Unity knowledge: beginner and advance. I considered myself an intermediate, so I was not sure where to go at this time. On the screen for beginner session showed the Viking tutorial, which, if had been taught in a couple Unity Roadshow workshop in Seattle. However, I noticed that Sarah Stumbo was giving the presentation, so I decided to stick around, since I like her teaching style, where she would go over and explain the scripts used in project. One of the attendee was having issue where her laptop was not powerful enough to run Unity, and since I have done this tutorial in the past, I lend her my laptop. I was also able to spend time and help an old friend getting used to Unity while catching up with her stories. I was also able to tinker with the GearVR headset, and learned how to set it up with the help of the others around my table.

After lunch and more tutorial session on 360 video, everyone gathered together and listen to the talk on VR for good, which was another Oculus program similar to Launchpad but more about creating products that promote empathy and good. The following talk was about Creating Compelling Pitch by Isabel Tewes, Developer Strategy, and Dorian Dargon, a producer. Dorian was actually one of the Launchpad participant from last year who then got hired by Facebook. During this session, there was presentation and short exercise on pitching with a partner. I have only pitched in my Game Design course a few years ago, so this workshop was really useful. I learned a lot from my partner’s feedback, especially in giving enough information and why I am the right person for this project. Promoting myself was still a hard thing to do for me.

The last talk was a journey story of one of last year’s Launchpad participant, Jewel Lim. She shared her life story and what VR and the program meant for her. Her talk was really touching and inspirational.

Overall, the bootcamp was a great inspirational and motivational experience. I got to create new bonds with other creative people, as well as renewing the bonds with some people I have met in the past. To the mentors and speakers who share their experiences, thank you. It helps to see the process and the human side of things, instead of just an end product.  Also, big thank you for the organizer of this event, like Ebony. You enable us this opportunity to meet and learn from so many people. Oh, and for the free hardware too!

In the future, I will post my notes for more details of these talks. Stay in tune!

Hardware from the bootcamp
Pitching session
Pitching session


Hello everyone!

This weekend I will be visiting Facebook HQ to attend a 2-days 2017 Oculus Launchpad boot camp. I’m so excited to meet with the other participants and mentors. In the weeks following, I will share the progress of this Virtual Reality experience in this blog.

See you soon!