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).
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.