Passing time in Montreal with Unity and shields

In these my last days and weeks in Montreal, I spend most of my spare time poring over documentation, tutorials and example-projects for Unity – and to some extent, Blender – soaking up as much knowledge about and experience with these tools as I possibly can. The goal: to become self-sufficient and able to create games and/or prototypes of games in Unity, entirely on my own. Not necessarily to go at it all on my own, but I figure it will be a good foundation for whatever comes next.

My existing “foundation” has been slowly built over the past 13 years and includes (but is not limited to) exposure to and experience with C++, C JavaScript, AI scripting using visual tools as well as asset-handling/basic animation work in 3ds Max, gameplay design and gameplay-related worldbuilding efforts. I am by no measure close to being an expert in any of these matters individually, but I am hoping that the collective sum of experience and knowledge that I have obtained over these years – from both inside and outside of the industry itself – can serve as a springboard of sorts into the world of Unity and independent game development.

UnityScript vs C#

UnityScripting in action
UnityScripting in action
Speaking of Unity, and scripting; I’m finding obscure joy in converting various Unity tutorial scripts from C# to JavaScript. “JavaScript!? Why on earth would you do that?” you might ask. Well, firstly – it’s not regular JavaScript, which is why many users prefer the nickname instead: UnityScript. Assuming I’ve understood it correctly, UnityScript is an object/component-oriented, .NET-based (Mono) JavaScript implementation based on the Boo programming language. In practice, it seems to me that it is used very similarly to C# in Unity, albeit with slightly different syntax, certain peculiarities and some potential limitations (depending on what you’re using it for).

Secondly, while converting tutorials from one language to the other I’m learning how it’s done in both languages at the same time, and though I’ll sometimes run into stumbling blocks where language-specific implementation of code is required, it forces me to apply my braincells, dig deeper and really figure out what’s going on and why.

Of course, that would be true when converting the other way around as well, but since I happen to like Unity’s Javascript-syntax and C# not so much, that’s what I’m going for. Worst case scenario, if there’s something I’m unable to achieve in UnityScript I might be forced to also use C# scripts in the same project. I might see things differently if I end up collaborating with someone who prefers C#, but I’ll cross that bridge when I come to it. *shrug*

Meanwhile, at work…

Example of shield-clipping in AoC
Example of shield-clipping in AoC
My final days at work mostly consist of tinkering with AI scripts for an (unreleased) dungeon that I have been working on, updating the documentation for said scripts in preparation to hand it off to whoever will work on it next, as well as diving into an issue that’s been a thorn in my side for quite some time, but which hasn’t had the highest of priorities: Shields.

More specifically, shields that clip through the heads of characters, stick through their hands/arms, are incorrectly positioned/rotated when equipped and/or are seen from the side in the inventory instead of the front (making it hard to actually see what they look like).

Having previously already gone through every single shield-asset in the game and documented what was wrong/needed fixing with each, I’ll now be trying to fix as many of those issues as I can before I pack my things and jump on a plane back to Norway.