There are infinite routes in software development that lead to the same destination. Some paths are “Intellectual” while others are just “down and dirty. I’d like to think my approach is some where in the middle. Logical, but also making the deadline; going for speed, readability, and efficiently. And of course without the bugs.

Over the past year, off and on, I’ve been updating some inherited legacy Unity 4.x code; bringing it into the latest Unity version (2019.3x). What started out as a Windows desktop app is now being published as a WebGL project. The future may also include iOS and Android deployment as well.

The Unity Universe is vast, there are entire regions that are foreign to me and others I just have causal awareness. About two weeks ago, there was a need to simplify. With just a few bytes in my mind about Unity’s Cinemachine I through this could be a good replacement for the existing code. I was dealing with updating old code that moved the Main Camera around a 3D game object. There were hardcoded floats and confusing Lerp functions wrapped in a bunch of if/then statements.

Once I dug into the Cinemachine tool, just after a few online tutorials I knew it was the right choice to simplify everything; just in case someone else needed to make changes with the updated code. I was delighted that I could remove a massive code block in the Update function.

The best experience was blending, which is the ability to transition between two virtual camera positions. I geeked out not just as an interactive software developer but more so also as a film school graduate (with a focus in cinematography). Honestly it was like my first time launching Adobe After Effects 20 years ago.

Eyes wide are open at what can be done with this tool. I’m looking forward to digging deeper and discovering what I can create with Unity’s Cinemachine.