Growing up, Mathijs Roosen had a huge interest in games and the foundations that made them possible to play. At Guerrilla, he works with several teams to cater to various game development workflows!
Tools Programmer Mathijs Roosen chats with us about the games that inspired his path, what he loves about his role, and how tools programmers work with each other across the studio.
Hi Mathijs - thank you for talking with us today! Before we get into your life at Guerrilla, can you tell us and the readers a bit about yourself?
Hi, I’m Mathijs, a Senior Tools Programmer at Guerrilla. I grew up in a quiet village called Heerhugowaard here in the Netherlands. It’s a rural area north of the Netherlands, not that far away from Amsterdam (about an hour with the train).
Even though it's relatively close, it is very different from Amsterdam. To give a bit of context, my high school only had about 200 students. That's half the size of Guerrilla! But it made it more personal and felt like a small community, because you saw the same faces every day.
It sounds like a beautiful place to grow up. What kinds of things did you do there as a kid?
Mostly mischievous: prank calling or finding buildings to climb on. But we got into other hobbies too. On weekends, my best friend and I often made our own animations using flash. We couldn’t draw well, but we had a very big imagination. We wouldn’t even write down any scripts: we’d just start animating on Friday, see where the story went, and submit it to Newgrounds before school started on Monday.
Did you study in school in Heerhugowaard the whole time you grew up there?
After high school, I actually moved to Breda for my game development study (IGAD) which is on the other side of the country.
I really liked this area. It’s known for being the “gezelligste” (Dutch concept for “cozy”) city of the Netherlands. When sitting outside of a supermarket, people would actually come up to you and talk to you just for the sake of talking. I loved being surrounded by positive people!
Your background sounds like you already had the seeds of tools programming planted while growing up! What sparked your interest in game development as a career?
When I was 12, I discovered gamemaker.exe on this old website. Gamemaker.exe is a tool to make 2D games by drag-dropping things together. You couldn’t pull me away from that computer. I was working on this top down game for weeks on end and showed off the game to my friends – it was so much fun.
I even got my best friend to download the program too and then we'd both work on our own separate games while hanging out together. I don’t think that spark ever went away – even 18 years later!
Were there any particular games that inspired you?
Mostly games with level editors, like Lode Runner: The Legend Returns and Warcraft 3. I loved that these games had multiplayer on top of it. It’s a core memory playing them together with friends and my sister.
Funnily enough, I spent weeks making my own levels on Jazz Jackrabbit 2 as well – one of the games that our Technical Director Michiel van der Leeuw worked on! I found it super interesting to get an insight into how the game worked from the content side. There's a video of ten-year-old me playing that non-stop.
What were you doing just before you started at Guerrilla?
Before Guerrilla, I did an internship at Triumph Studios in Delft, the developers of Age of Wonders and Overlord, as a tools programmer on their engine. It was the first time I worked on a real production. I had great mentorship during my time there, but I also had the freedom to be on my own – which helped me work on myself professionally.
After you finished your internship, how did you find your way to Amsterdam?
Guerrilla's recruitment team had reached out to me on LinkedIn and I took that opportunity! Once I started at Guerrilla, I immediately moved to Amsterdam from Breda.
I love everything about living in Amsterdam. I love how everybody at the studio is close with each other. Right now being summer, a lot of us go to barbecues after work! I love that everything is close by and within reach of a bike ride, that people are so nice – I even like the fact that it’s touristy here and they're here on holiday, here to enjoy themselves.
Let’s get into what tools programming is. Can you tell us about what Tools Programmers do?
Most people see the development of games starting with a default program to develop games with, like the way Microsoft Word became the standard for writing papers.
We don't really have that for game development. Tools programmers make that from the ground up out of nothing. The better tools we create, the easier it is for the artists to put together a wonderful world and for designers to build immersive game content.
I see tools programming as in developing Lego pieces: it is the foundation and the easier it is to fit the pieces together, the better the result is.
What do you enjoy most and find challenging about tools programming?
What I enjoy most is creating something out of nothing: you visualize it at first and you plan everything out in your head.
Making that a reality and making the people who are using it happy and grateful are the reasons why I’m a tools programmer.
Of course, it’s not always easy. The challenge about tools programming is that you're not just catering to one person, but in some cases many companies that use the engine. Everyone has their different workflow and is used to different engines and tools. You have to find a way to design a tool in a way that feels intuitive for everybody and tailors to many workflows.
You also have to think about those things before developing. It’s easier to do it right in one go, instead of adapting constantly after it’s already been released. Even if it's an early version, the base design should incorporate already what direction the tool will go in later.
That means that you must plan very far in advance, I like to see this as looking into the future.
What would you say is the most important thing to keep in mind as a tools programmer?
Collaboration! In order to plan the base design of tools far in advance, this is very important. Even though every Tools Programmer here has their own area of what they like to work on, we collaborate with each other as much as possible.
Part of working with a team is that you can zoom out from your own internal dialogue and technical depth, and reflect it into real world scenarios. On our own, it’s easy to get stuck in a certain way of thinking.
Sometimes, even talking together can solve your problem quickly – sometimes, the other person may not even have started talking… But even by saying out loud what you’re struggling with, you’ll hear yourself talk, change your mindset, and come to the solution! We call this "rubber ducking", since they may as well have been a rubber duck.
How does this help you – and other tools programmers – be effective in this discipline?
Collaboration is vital for designing completely new tools and workflows. Each person working on tools has their opinions and has used other tools in the past that they’ve become familiar with. This is valuable when building something new, since you need to make a single tool that feels natural to everybody.
Working together with those who use the tools is also powerful and an absolute must. We’ll sometimes sit together and watch them use the editor or the tools that they currently have, which helps us get an overview where all the bottlenecks are, what’s not intuitive enough, and what problems we need to address.
Hearing the users out is very important. Even though we may not be able to tailor to a single person or a specific group of users, it’s vital to gather information like this to build a bigger picture for the vision of the tools we create.
It sounds like the team has a great grasp on how to make this work best for everyone in the studio. Is there something you particularly love working on here?
Personally, I really like building the VideoStore and the Review Tool.
It's a little bit like mini-YouTube for reviewing internal playtests and in-game cinematics, and makes giving feedback easy. It’s my baby!
Do you have any fun stories you can share with us from your time at the studio?
There was one time Kojima Productions was visiting Guerrilla and we did a presentation for them about our DECIMA tools. I’m a huge fan of Hideo Kojima, but I didn't want to come across as a "fanboy" and tried to remain professional.
After our presentation, we had an opportunity to get our things signed. Their translator asked if I wanted an autograph, but it turned out that they had confused me with another Mathijs so I said no. "Oh, never mind, then," the translator had said and walked away – and I realized what I had just done. I immediately rushed back to them with my Metal Gear disc to get it signed.
When they turned around, they started walking towards me – but again, I didn't have the guts to just "ask" for my disc to be signed. So, I turned to the nearest coffee machine and pretended to get coffee!
As soon as they sat down and started signing games, I casually snuck up to them, very slowly lifted the pile of games and slid my game in the middle of the other games – right in front of them in the most obvious way possible. My face was completely red.
I remember the Technical Director then saying, "OH, YOU JUST HAAAAAPPENED TO HAVE THAT WITH YOU, DIDN'T YOU?”
What advice would you give to those aspiring to be a tools programmer in games?
When I was in school, I remember people telling me I was a tools programmer before I even knew that it was a profession. Every school project that I did, I spent way more time developing tools – for example, level editors – instead of working on the actual real assignment. These tools didn't even get graded, so I always did the real assignment last so I’d still pass. I just found that way more interesting – creating a nice-looking renderer – and fun to work on!
So, if you want to see if you’re right for tools programming for games, start any C++ game project and see how much time you're spending on the development of the tools. And having a nice hobby tool in your portfolio goes a long way when applying to be a tools programmer!