Fragmental is a big deal at Ruffian, the mentality here is very much “If we do it, we do it right”, and as such I was brought on board a little over a week ago as a Junior Programmer to help expand the code side of the prototype team. Now this is a really big deal for me, as not only is this my first job in the games industry but my first job ever, probably quite understandably I was a fair bit nervous, and not really sure what to expect. I’d been working towards getting into the games industry for some time, doing my degree in games technology at Abertay, and had heard about all kinds of games studios, from lackadaisical beanbag developers to cold, quiet corporate code factories. As it always is for these things, the reality is somewhere in between.
The office is pretty much as you’d expect, big black towers for development PCs, with dual screen setups common to a lot of work places these days, but you start to notice the differences pretty quickly. Every desk has a 360 gamepad hooked up, various games consoles are set up around the room for various purposes, and there are even a few unplugged arcade machines sitting just next to the staff kitchen. My tour around the office doesn’t take too long, I’m shown where my desk is – I have a desk! A fact that surprised me with how chuffed I felt about it – and taken around the office to be introduced to the various people working in the studio. An essential part of this tour included being shown where the snacks and drinks are kept, both of which are regularly stocked to facilitate smooth game development. While I did spend a fair chunk of my first day playing Fragmental with the team – nothing like some competitive multiplayer to get you started – Ruffian is still a business, we have team meetings, I have office hours to keep, company policy to read up on, but this is all necessary for running a successful studio and none of it bothers me.
Working at Ruffian
To the code! Sort of…
With introductions out of the way I was given my first task, Sudden Death. This was meant as a gentle introduction, no firm deadline, no direct supervision, just ask if I have questions, don’t break anything. All I needed to do was create a HUD element that would pop up after a certain amount of time, announcing Sudden Death had begun and then sweep crackling death walls in from the edges of the level, to force the players towards the centre and their ultimate demise. My background is mainly in using C++ to code and while UE4 does use C++ for development, I’d be starting off using Blueprint, UE4’s visual coding system in which the majority of Fragmental has been built. This led to a couple of awkward situations early on, where I was writing down how I’d implement something as if I were going to code it in C++, and then translating it into Blueprint – achieved with liberal use of both the Blueprint documentation and Google. With a few key questions to the right people and banging my head against the crossbeam weapon code until I understood it enough to use, I’d made a Deathbeam! It moved! It crackled! It didn’t actually kill anyone… oh.
Deathbeam Walls in action
Fortunately this was easily fixed with a big old invisible box of instant death, that made sure the players wouldn’t escape its effects even on the multi-tiered levels. Then just add in a quick tool to help the designers easily tweak it for each level and it’s time to nervously tell the Creative Director I was done. The response of “Fuck off! Really? We expected that to take you longer” was quite unexpected but very reassuring, getting the task done in a day was good news. Having finished my first task and not completely broken anything, I was soon given a list from the backlog to plug away at. More HUD elements to help track who was in the lead or on a kill streak, the ability to create a pulse effect at the player’s location so people could keep better track of themselves, and finally a nice little animation for weapon name tags, to announce when a player picked one up. That last one caused me a little more trouble than the others.
HUD Elements actually in use!
Breaking the game a little
Being young and a bit inexperienced, I had foolishly only tested the weapon pickup feature with Player 1, where admittedly it worked perfectly, things didn’t work quite so well for Players 2 to 4. I’d been brought along to the Games Are For Everyone event in Edinburgh to help show off the game, a fantastic night with some really interesting games on show alongside Fragmental. While watching people play though, I noticed that the weapon tags weren’t showing up for certain players sometimes, I thought this was strange and made a note of it, I also noticed that the pickup animations I’d put in weren’t playing for any of the players so I endeavoured to take a look at that the next day. After a little bit of experimentation, I found out that both issues were related and definitely my fault. Fortunately because they were my fault, I quickly removed the offending code, in Blueprint this is sometimes as simple as unhooking a couple of nodes, and started working on a fix. Apparently no one else had noticed the bug, but they seemed happy with my response of pull it out until it’s fixed. It didn’t take me too long to get it all working properly, and the fix was back in the build by the end of the next day.
Game Modes and Beyond
Next up I’ll be working on some new game modes for Fragmental, to build some extra choices on top of the current Deathmatch/Team Deathmatch modes. This is a little more involved than what I’ve done so far, but I’m looking forward to the challenge. If you’re one of the people planning to get your hands on Fragmental, you’ll almost certainly be playing them, that’s a pretty exciting thought for me atleast. So in my first week and a half I’ve made some things unexpectedly quickly, put some things in the game that didn’t break, broken the game a little bit but managed to fix it, and, I think most importantly, learned where the snacks are. This whole making video games for a living lark seems to be going pretty well.