Capstone Completed!

Woot!

Udacity VR Nanodegree (finally) done! Again, I managed to procrastinate at various parts of this course so long that it was close I could not graduate - Udacity has changed the course structure to be multi-term, and they are shutting down the old course. I took every extension offered, and today was the last day. I have not resorted to personal pleas to get extensions for any of the other courses I've attended so far, and did not have to do that here, either :)

In the end, I really enjoyed the course, even though the time pressure ended up considerable. I learned to use Unity, and I am now very comfortable with the tool. I learned to do basic stuff with Blender, which will help my 3D-printing efforts as well. Here I have ways to go, but the tool is worth the learning effort. Moreover, I got to use Final Cut Pro quite a bit, as the documentation required for the projects required the creation of play-through videos. I learned to like C# a lot.

I cannot really claim to be a master in creating games with Unity, but I now understand what it takes to make them, and I am eager in improving my capstone project :). I'd like to hit the app store achievement still (100 downloads of the game in the Steam store).

Among the projects done in the course:

Of these, I spent most time with the Night at the Elevator, and here I really took a deep dive into Unity C# scripting. This helped a lot with the Capstone project, where almost all of the effort went in to the scripting as well.

The capstone project took about a week of intense development.

Post-mortem: What took so long?

I was stuck in VR Design for many months. In this project, the aim was to create a small game for the mobile VR kit, and learn about design, project documentation and user testing. For me, a software engineering veteran, the project documentation was old hat, and design documents I create practically every day in my work, but I have done fairly little user testing with my projects. Considering how useful user testing is in VR design, it is surprising how little it has been used where I've worked for a living.

Why was I stuck? Part of the reason was that during the course of the project, I created sketches and design ideas that in the end I could not really use. I had sketched game ideas for different sorts of puzzle backgrounds, which I could not really bring to life, as the project resources had assets for basically only a puzzle game based in a dungeon. I can understand the course direction; the sketching should be fairly freefrom and done independently, but in the end this actually caused me frustration in implementing the project, as I could not realistically bring those visions to fruitation. My design sketches did not reflect the reality that I ended up implementing. In retrospect, I think the project could've been done with fairly rudimentary assets, but I just did not feel like I could've achieved a "good enough" result from scratch -- I had not done anything with 3D modeling software at that point, and my Unity skills were really rudimentary.

Other issues with the project were that with Unity and the Google VR toolkit for iOS, I experienced a lot of fairly weird problems and crashes going from editor to the target device. It was not so fun to start debugging a stacktrace of why the project did not, say, allow the user to interact with anything on the device when it worked just fine in the editor. Or that the project just did not build because of some dependency issue in the assets. I tried upgrading Unity and ended up needing to upgrade some GVR resources - I moved from GVR audio to Resonance audio, for example. And even that done, the project was not building without getting every last bit of the old remnants of GVR audio cleaned up!

Key learning here is to do small additions at a time and constantly test on the device, so as to make debugging easier. At this point the technology for the creation of VR experiences is still immature and patience and persistence is sometimes needed to get through problems, or perhaps to go and ask help in the Internet, which I am very bad at.

How to avoid getting stuck in the future?

Instead of stubbornly sticking with the project I did not have much fun with, I should've just continued with the next projects and started on the Night at the museum and the high-immersion specialization right away. I think I would've graduated a year ago if I had done that basic step.

What next?

Two courses left on the Coursera Deep Learning specialization :)

links

social