Tuesday, January 31, 2017

20170131 VR testing night

Cosmic Trip is a beautiful game both technically and visually
This week, we opted to see what's out there in the VR market. We tested approximately 20-30 different games and experiences, looking for ideas on what works, and some already-established best practices (before we waste time stumbling to them on our own dev time).

Of tonight's tests, there were a couple of standout favorites, including Unseen Diplomacy and Cosmic Trip. Cosmic Trip is relatively deep in terms of design, so it's hard to get a real sense of it after just 40 minutes of testing. However, it's a seriously beautiful game, and impressive for what appears to be a small team working on it.

Unseen Diplomacy is a wonderful concept that suffers a little in its execution. That said, for $3 we got our money's worth, at least. When I first heard of room-scale VR, I had wondered how possible it would be to implement this concept, and the team behind UD have proved that it is possible, although it poses a huge number of edge-cases that are complicated to elegantly solve. Still, a lot of fun.

Thursday, January 26, 2017

20170126 - VR Prototype #4 - 8-way movement

A simple representation of our movement system

Tonight we finished the grid-based movement experiment, and are pretty happy with it.

We took the 4-way NSEW movement, and added the points between each of those, allowing full 8-way movement around a series of grid cells.

As it currently stands, you can look in a direction, and press the touchpad to be moved there. We also implemented an overhead map that is placed on your left-hand Vive controller for reference. This actually threw us into a pretty horrendous place that we inexplicably escaped. Something to do with using multiple cameras in a Steam VR scene in Unity. But we escaped, at least! We can hopefully fix this long-term if we come back to it.

This is the most impressive prototype so far, especially after just 6 hours of experimentation. We'll likely iterate more on this one after finishing our current schedule of experiments.

Tuesday, January 24, 2017

20170124 - VR prototype #4 - Point-based movement

Rough example of this movement system

This prototype was a simple concept that proved challenging due to initially not understanding how SteamVR tracks Y movement on the headset, but we got there in the end.

This experiment was based on a series of cells on a grid, allowing the player to point to a cell and move there. Sort of like being the king piece on a chess board - eight cells surround your cell, and you may choose which one to move to.

Tonight's progress got us to 4-way movement (North, South, East, West).

Sunday, January 22, 2017

20170122 Multiple linear regression using backward elimination

Today I performed a multiple linear regression using backward elimination, which is the next section on the Machine Learning course I've been following.

This course is a little too low on theory for my liking. I'm performing a lot of impressive actions, but I lack the context on how they work or what they are really 'for'. Still, it's something fun to tinker with.

Thursday, January 19, 2017

20170119 - VR prototype #3 - Physics rowboat

Prototype #3 was a test of physics-based implementation of movement through the water. We used the same scene as #2.

This experiment involved tracking the two oars we had created for the boat, and monitoring when they were in water. Beyond that, it was a (relatively) simple case of reflecting boat movement in whichever way the oars had moved. Again, this worked surprisingly well. We also ran into an incredible bug whereby if water friction was too low, and you could really ramp up quite horrifying speeds. It was fun, though!

Tuesday, January 17, 2017

20170117 VR prototype #2 - Rowboat

Tonight we started our second set of locomotion prototypes. We started by creating a simple wooden boat in the middle of open water in a Unity scene, with a few trees scattered around to behave as way-points.

Prototype #2 involved implementing a rowing-machine method of method, akin to what you might find in a gym. The system was 'reach forward, pull triggers and pull back towards chest, release triggers' to calculate movement. It took a little longer than we might have liked, but it worked alright after a few hours of tinkering.

Monday, January 16, 2017

20170116 LAMP + Web server VM

I think this is maybe the second time in my life that I've successfully started the Apache service...

Tonight I:

  • Installed LAMP stack on my Linux Mint VM
  • Got everything up and running - it turns out this can be achieved using a single command!
  • Set up port forwarding to make my server visible to the wider world
  • Created my first three (incredibly basic) PHP pages
Pretty fun! Web development is pretty immediately rewarding. The write-run loop is super duper quick, plus it's fun that the weird little things you make can come alive literally from the moment you save the file in its editor. I mean, assuming you're live-editing your pages. And at the tier I am at, why not?

Wednesday, January 11, 2017

20170111 Machine Learning

Tonight I:

I'm taking a course in Machine Learning. Tonight I waded through the 'Getting Started' parts, as well as Data Preprocessing. Lots of packages to install, and fiddly things to fiddle with:

  • Installed R
  • Installed RStudio
  • Installed Anaconda
  • Using Spyder for Python

Learned how to preprocess a dataset:

  • Empty cells
  • Categorical data
This course is curious because it takes place concurrently over Python and R, giving you the how-to for both languages, one after the other in each lecture. I'm sticking with both for now, examining how tasks are performed in each language. I expect to choose one over the other eventually, likely I'll go with Python, but that is yet to be decided.

Next steps look to involve learning how to operate on datasets directly. Looking forward to it.

Tuesday, January 10, 2017

20170110 Virtual Reality prototyping

Tonight I:

Completed the first of a series of VR prototypes I have devised with a friend. We made pretty astonishing progress inside of around 2 hours, making use of the Unity Asset Store to build a quick proof-of-concept.

What's more surprising is that we used a don't-do-it style of locomotion, yet it didn't induce motion sickness! That was pretty surprising, but it might be because we weren't testing it for particularly long.

I don't have much to share on this work, visually, but suffice it to say that it's going well, and ought to continue for a while (a few months, at least).

We currently have approximately six prototypes outlined, that we intend to spend around eight hours on, per concept. More updates to follow.

Thursday, January 5, 2017

20170105 Virtual Reality beginnings

Tonight I:

Worked through this guide to getting started with HTC Vive development in Unity.

The entire thing took around three or four hours, with plenty of distractions and sidesteps. The guide itself is pretty straightforward, but my development partner and I spent a bunch of time fiddling around with a couple ideas that were inspired by parts of the guide, mostly in terms of 'I wonder if we can do this?' - which worked out, thankfully!

All in all, it was a surprisingly easy first step into working in VR. More to come.

Wednesday, January 4, 2017

20170104 Virtual Machines

My very first pet ghost computer!
Tonight, I:

  • Set up a brand-new-in-box Brix Pro i7 to run ESXi,  a virtual machine host OS
  • 'Hacked' (is this even hacking? I don't know) an ESXi customizer program to not flag Windows 10 as an non-modern Windows operating system (it thought it was pre-XP...)
    • For this, I edited the .cmd (in Notepad) and found the function that was messing with it
    • I changed the if statement within the function to not flag an error if the version of Windows was not 9.? (isn't this the whole joke about why Windows 10 happened?!)
    • I saved the file, and it worked!
    • I felt clever
  • Re-compiled a custom ESXi .iso to make it play nice with the Brix Pro
    • Some issues with the HDD and the Network Adapter
    • Required two extra packages, and a lot of searching around
  • Made a bootable USB of the .iso
  • Installed the .iso to the Brix Pro
  • Successfully loaded the web client in order to install machines
    • Experimented a little, creating and destroying VMs
  • SSH'd into the host machine
  • Downloaded Linux Mint 18 to attempt installation of a VM from .iso
    • Made another bootable USB
    • Created a Linux VM
    • Couldn't get the VM to see the bootable USB in host machine
    • Uploaded Mint.iso to datastore
    • Gave VM a CD drive that was directly linked to the datastore .iso file
    • It worked! It is pictured up at the top of this post
    • Installed using the prompt pictured above
Quite an adventure, and a lot of fun! Total time, end to end, was 3 hours.

Software acquired:
  • ESXi Customizer (to re-compile the .iso)
  • VMware PowerCLI (I ended up not using this)
  • Universal USB Installer
  • VMware vSphere
  • Putty
  • Linux Mint 18
Thanks to Matthew Wegner for the inspiration and coaching.