top of page

Feature Redesign - #1

Hi, I'm Alvaro Luna, the Systems designer for our studio (and I'd like to think something along the lines of "our little CTO", always looking for new tech we can put to use).

Anyway, it's been a while since we posted anything, but we have been busy planing some projects and also reworking our interactions system and making a few features we had in mind a reality (Some of them are: Line of Sight trigger, Word recognition (requiring Window 10's Cortana), Further work on our save systems, Custom actions for our Visual scripting Asset). My friend Notso (Chris) will probably drop by later on to explain a little about our next project (which will be a test bed for our new systems).

In the meantime, I'll talk a bit about what's new in our gameplay systems, and how we got there.

Old interactions system and why I decided to rewrite it

In the past we were using an interactions system vaguely based on an asset found in the Unity Asset Store (called Hands VR). When we bought it to test it, I fell in love with the hand snapping feature which made it obvious when an object was pickable and also allowed the user to pick things up without having to stretch their arm too far (the hand would move in and get into a "ready to grab" pose). But the system was a little crude and had some downsides and obvious bugs. The hands would not follow the controller correctly while touchpad walking, the hands would often try to attach themselves to pickups even when just passing by. One of the biggest issues was setting up the hand grip inside the Unity editor, it was really difficult to setup the hands position and rotation, and the grip was based on animation poses, which made it difficult to get the grip to look right with many objects.

Right away, I made an initial quick short rewrite of the system for Pyramid VR. I replaced around 90% of the code in the scripts, but largely followed the original scripts' structure. I made use of events for both the hand and pickup scripts to add extendability (and made an easy way to run events from our visual scripting asset and out inventory). Also switched the way input worked, I made it focus on the grip button and made use of VRTK's centralized input manager. I then modified any code that didn't seem very performant, and finally, I spent some time reworking the way the hand grip was setup for pickups.

Unfortunately, we had already published our alpha by then, so I couldn't take my time to make it shine (we had some players waiting for an update)... The system still had many obvious limitations: The hand grip still relied on animation poses; fixing the hands getting left behind would need restructuring of the script; the script structure didn't really follow S.O.L.I.D principles, hence the actions the hand could do often worked against each other causing bugs; The system also didn't support any Interactables (things like levers, sliders, etc); The physics were also abysmal.

Once we started planing the next project, I decided it was time for me to get serious. I would redo everything from scratch...

Next: Insight into the new Interaction System

bottom of page