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.

Lessons learned by working at Funcom for five years

I have an upcoming jubilee of sorts in a few months, at which point I can celebrate having endured life in the game development industry for five (measly) years. This cause for celebration is somewhat diminished by the fact that Funcom announced earlier this month that they are restructuring and consolidating offices – which means that I, along with the majority of the other developers at Funcom’s Montreal office, are being let go. For my part this means that I have at most two and a half month left before my official last day at FC, and having started working for FC in late March 2008, this means I might just about pass the five-year mark (yay!) before I’m officially out of a job (nay!).

Throughout these last soon-to-be five years I’ve had the pleasure and privilege of working with a diverse bunch of awesome people (and I hope that I’ll be able to work with some of them again in the future!) on two different MMORPG projects, and I would not change that for the world, but what exactly have I learned after this time spent working in the game development industry? Which of the preconceived assumptions and expectations I brought with me have held up, and which have been thoroughly shattered? What knowledge have I acquired that I can bring with me where-ever I go next?

I’ve played with the idea of writing a post along these lines in the past year or so, but what I’ve found out is that it’s not easy to summarize several years worth of experience in a simple blog post. Instead, I will try to focus on some of the more obvious lessons I have learned, the ones I can point at and say “that might have been useful to know/realize the value of when I first started”. Some – or maybe all – of them are perhaps obvious enough that they’re hardly worth mentioning, but then again – everything is obvious is hindsight.
Continue reading “Lessons learned by working at Funcom for five years”

The Winds of Change

The wheels of the gaming industry churn, developers come and pass, leaving games that become legacies. Legacies fade to obscurity, and even obscurity is long forgotten when the development cycle that gave it birth comes again. In one development cycle, called the Facebook/Gamification-cycle by some, a development cycle yet to come, a development cycle long pass, a wind rose in the hills of Montreal. The wind was not the beginning. There are neither beginnings nor endings to the churning of the wheels of the gaming industry. But it was a beginning.

Ahem. Horribly mangled Wheel of Time-quotes aside… As March transitioned into April this year, it meant I had spent exactly four years in the game development industry, after I packed my bags and moved to Oslo (and later, to Montreal) at the end of March in 2008 to join up with Funcom – a few short months before the launch of Age of Conan. Since then I have worked primarily with refining, updating and maintaining AoC’s state-machine and animation-systems, while also temporarily taking on a few extra side-jobs where needed such as basic rigging/skinning and animating in Autodesk 3ds Max (very useful for fixing minor issues with character-animations and 3D assets), the creation of particle-effects for spells and environments, scripting triggers and conditions for said particle-effects to play, as well as creating and hooking up triggers for sound-effects for monsters. The common denominator (in my case) for all of these tasks is their link to the animation-systems and/or behavior control center (state machine).

When I crossed that four-year milestone two and a half months ago, though, I decided it was time for a change. Without change, without new challenges, the mind can grow stale and one’s motivation can falter. As luck would have it, an opportunity for change arose, and I took it. As a result, on Monday just hence, when I came back to the Conan-team after a five-month temporary hiatus spent working on particle-effects for monsters in The Secret World (which is just about to launch, btw!), I sat down at a new desk, next to new people (well, people I hadn’t sat next to before, anyway) to start training for a new position: AI Designer!

This is a new and untested field for me, but hopefully I can draw on the knowledge and experience I have acquired over the last four years to smooth out my transition into the world of AI Design for video-games.  It will definitely be in my favor that I have extensive knowledge about the state-machine (which is prominent in AI scripting for AoC), and that I am at least somewhat familiar with the primary tools I’ll be using as an AI Designer. I do, however,  have a lot to learn – though there will always be challenges to overcome and new things to learn. Anyway, interesting times are ahead, that much is certain. Who knows – perhaps this will be the start of another exciting four-year (or longer) journey into the future! :)

(For an insight into what being an AI Designer for Age of Conan involves, check this link. While “slightly” out of date (it’s from 2008!), the general principles (and tools in use) are roughly the same.)