Rosabelle Armstead's entry into the game industry has been unusual, to say the least: the talented junior programmer has landed a job at Media Molecule and bagged a BAFTA for her work on Dreams before she's even graduated from university. Here, we chat to Rosabelle about what she does at Mm, how she got here, and the similarities between coding, creating art, and solving crosswords...
Hi Rosabelle! What do you do here at Media Molecule?
I’m a junior programmer on Dreams. Most of my day is staring at code, writing code, fixing code and catching up with other programmers. Because I’m a junior, there’s a lot of learning, so a lot of interaction with senior programmers and getting help from them.
How does coding something for Dreams actually work?
So I was a big part of Imp Quests and trophies, and the onboarding flow in the game. The whole Imp Quest system was started before I even joined, so it was all a handover. For the Imp Quests we have a tool that processes a file that designers can use to actively add stuff to in order to add Imp Quests and trophies into the game. But certain things need to be added by us in the code to trigger those requests. For most areas, we have tools that have been written where designers can do something, run the tool, and it’ll be mostly in the game - and a programmer just needs to go in to add, like, the last little thing. For example, for the Imp Quests: we have a list of the Imp Quests, and then we have a function where you can just be like, okay, mark this Imp Quest as unlocked when you’ve done this action. So say you’ve finished doing a tutorial - you’ll find the bit in the code that’s like, ‘This tutorial has been finished’, and then we’ll add the line that says, ‘Mark this tutorial Imp Quest as unlocked’.
So it’s your job to talk to the game to convince it to do the things the designers want, using a special language?
It really is. It’s like a mathematical, logic-y language. And the way that our code is written as well - it’s not verbose, per se, but it’s pretty simple to understand as a new programmer coming in, for the most part, because everything is written very nicely. Most things tell you what they do - like, a function name will be like, ‘Add Button’, so you’ll be like, ‘Okay, I’ll use the Add Button function to add a button!’. Earlier on, people have to write this function, so the lower-level stuff has already been done. That’s part of what I’m working on right now - I’m learning about the graphics programming to actually make those buttons on a pixel level, as opposed to just calling a high-level function to add a button.
Were you always interested in becoming a programmer?
Yeah. When I was much younger, I read a lot of Nintendo Magazine. There was an advert in there for games jobs, and it listed all the different types of industry jobs: artists, QA, programming, production, game design. And I was like, ‘That would be really fun, to work on this thing that I enjoy consuming. To put that out there for other people to play would just be really fulfilling to me’. At the time, for my school - we were an all-girls school - there was no computer science at school. We only had IT, which was like, spreadsheets and mail merge. Which is very production-y! But it wasn’t for programming. So I did take it at GCSE, but wasn’t quite what I wanted, and that made me sad. I pursued other routes: I did lots of my own personal projects in Scratch, which is a drag-and-drop block programming language - when I was about 11 I was doing stuff like that. Then I was making Roblox games with my brother in the Lua scripting environment back then. When I turned 16, my school finally offered computer science at A-level.
Just in time!
Yes! I was like, I’m taking this now before I leave, so I can learn something before uni! So I got lucky: the January before A-levels, they did a taster session, and we learned this really simple sorting algorithm called bubble sort, in a language that’s also really simple - Visual Basic. And I had so much fun, because it just activated all those logic parts of my brain that I love using. I was like, ‘Yeah, I’m absolutely taking this, this is amazing’. And then, at my GCSE prize-giving, which was a couple of months after the taster session, Siobhan [Reddy, studio director at Media Molecule] actually came to our prize-giving to give a speech. That’s where everything just fell into place.
Did you get to meet Siobhan?
I remember when she went up to give her speech when she introduced herself and where she was from, everyone around me turned to look directly at me - it was very funny! My teacher at the time (who was going to be my computer science teacher the following year) was just like, ‘Let’s introduce you to her and let’s exchange details’. So I think I went up and had a chat with her. I don’t really remember that conversation, I was very nervous. But we got her email, and then we organised a school visit for the following January. We had talks from people like Amy (Phillips, tools programmer) and Michelle (Ducker, senior producer), and demos of very early Dreams. That was very interesting, and everything Mm did solidified my interest in wanting to do programming and games specifically. I was just like, ‘I can’t get over how amazing this is’. That led to me and a couple of others chasing up about coming back for work experience in the summer, and then that happened again the following year - and then again the following year!
By that time, you’d already started your Computer Science degree - you ended up doing your industrial placement year at Media Molecule, too. What was it about the studio that made you feel it was the place to be?
There’s this incredible vibe among everyone. Everyone gets along. Everyone knows everyone, everyone has their own interests and everyone kind of knows what everyone’s interests are. But everyone is also very good at their job - and also very good at their interests!
You definitely fit that description of being interested in multiple things: you also have an amazing talent for portraiture. What - pardon the pun - draws you to art? Is it the same thing that draws you to programming?
I think it is! It’s like... I get the same thing when I’m in the zone and I’m programming. When I’m in the zone and I’m drawing, I’m just in this relaxation state. I’m not even thinking, I’m just doing. So when I’m drawing, I’m just drawing - and when I’m programming, I’m just typing. Even with the programming when it doesn’t work, I end up in that debugging phase where I get to use that logic side of my brain, and I get a similar thing with art when something doesn't quite look right. I take a second, stand back and I'm like, 'Okay, logic brain, what's wrong?' [laughs] And then I fix that. So I guess it is kind of similar. I've never really thought about it like that.
We’ve seen you solve cryptic crosswords in our studio crossword club at lunchtime. That seems like a similar process.
I didn’t know how to do cryptics before I started at Mm, I just sat at the table and silently watched the magicians at work for about a month before I started taking part!
But you’re the fastest of all of us!
Yeah, I spent that month figuring out how they worked, and then occasionally dipping my toes in and being like, ‘Maybe it’s this’, and then I bought myself three or four cryptic crossword books and I was just furiously doing them - sometimes just not even doing them, just looking at the answers and trying to back-engineer them.
That sounds exactly like all our (extremely limited) experiences with programming. Something breaks and we’re like, ‘How did this happen?!’
Learning it backwards makes it easier to do it forwards. That’s the big takeaway [laughs].
Do you find there’s much crossover between what you’ve learnt at Mm and the work you’re doing at uni? Not just in terms of programming, but personal development too?
Yeah, definitely. I do say to a lot of people who ask that I feel like I learned so much more in one year of working than I learned in two and a half years at uni. Doing something in a practical environment makes such a huge difference. It worked really well for my final year because everything applied backwards again - everything that I’d done at Mm was now coming up in my final year. It’s easier to keep organised. And for group projects, it was like, I’ve experienced actually professionally working in a team, so that became really easy as well, which was nice.
You’re clearly a quick study - you must have to be to do what you’re doing! You’ve helped ship a BAFTA-winning game before you’ve even graduated. How did you manage it all?
Yeah, I don’t think it’s super usual. It was two and a half days a week working on Mm stuff at home, then two and a half days a week at uni. It was difficult to organise with my tutor, but we found a day that worked for both of us and it ended up being okay in the end. It was kind of fortunate that shipping Dreams happened like, two months before dissertation and exam stuff started to ramp up. So there was a nice little area between the two - if they had happened at the same time, I’m not sure if I’d have been able to cope with shipping Dreams.
You’re graduating soon, but what are your plans for after uni?
My plan at the moment is just staying at Mm, and having a good time! [laughs] Keeping the job that I’m enjoying - and just having more free time for my hobbies. We have football on Tuesday with a bunch of us from work, so that will be nice, to be back doing that again. Also table tennis! I miss doing that.
What advice would you give to someone who’s interested in becoming a programmer for games?
I think my biggest piece of advice is just to make sure you enjoy it. Don’t put something on a pedestal and chase that down without knowing you enjoy it first. So try it out. Things like Roblox and Dreams are great for that - the logic system is great for figuring out whether you enjoy making games or not. Definitely just having a little bit of your own experience is great - and having a portfolio of stuff, even if it’s not beautiful! [laughs] Like, something that works and is functional is amazing.
The Dreams User Guide is a work-in-progress. Keep an eye out for updates as we add more learning resources and articles over time.