Today we’ll continue the series of SteamWorld Heist related interviews with a look at the technical aspects of making a game.
At a rather small game studio like Image & Form not every role is easily defined. We have lots to do in a relatively small team. And while we have people specializing in areas like art direction, programming and level design, we also have our fair share of chums gracefully wearing not one, but two or three hats.
This week I’ll introduce you to one of those team members: Ulf Hartelius. He’s skilfully juggling both programming and game design and is said to be indie enough to make all other indie devs look like Disney. So without further ado, let’s go!
Julius: Firstly could you introduce yourself, tell us a bit about what you are working on and what your favourite games are?
Ulf: Heya! I’m one of the coders and designers on SteamWorld Heist. On the wee hours when I’m not busy fiddling with that (actually or just mentally) I’m trying to learn Japanese, make small artsy games, and listen to a lot of music.
As for playing games, right now and for the foreseeable future I’m rocking out with the new Guilty Gear!
J: A lot of people are asking us about our development tools, what game engine are you using for SteamWorld Heist?
U: We’re using a custom-built thing that’s grown and evolved for almost as long as the company’s been around; from way before my time. Luckily it’s frequently given love, care, and a lot of trimming, so unlike some engines that have lived for more than one game it remains pretty manageable. And for those who wonder: it’s 100% C++.
J: What are the perks of creating a custom engine instead of using an existing one (like Unity or Unreal)?
U: The main perk is the Nintendo 3DS, I’d say. Neither Unity nor Unreal has any support for the 3DS, and even if they did there’s a big risk that the overhead such engines add would outdo any benefits. Having our own engine also allows us to make whatever changes we want without any middlemen, which is practical and fast. Of course, the flipside is that nothing happens with it when we’re busy with other stuff; like making game content.
J: Could you briefly describe a typical day as a programmer?
U: Most of my work is tied closely to either design or graphics, like implementing gameplay abilities or getting the user interface (buttons and stuff) to behave. So I often have a lot of close teamwork with other people, which is the coolest thing about making games: that you’re not working in a vacuum, but that your little cog becomes part of a greater steambot.
J: Is there a specific process for finding and eliminating nasty bugs?
U: Absolutely. For instance, say the game crashes whenever you shoot someone. That’s not the game’s way of telling you that it’s better to be nice; rather it’s definitely something going awry in the code handling shooting or dealing damage. That way, you can narrow it down. “Divide et impera”, like the Macedonians said.
J: Are the graphics applied to the code or is it the other way around?
U: It’s a collaboration, definitely. The artists make mockups and tests with just graphics, so they can get a feel for how they want it to look. We then discuss how we can bring that into the game, how much work it would take, and how players might react to it.
J: We haven’t revealed too much info on actual SteamWorld Heist gameplay. Without giving too much away, what’s the essence of what makes the game unique from a programmer’s point of view?
U: There are a lot of different systems working together, like shooting, managing the crew, creating the heist encounters, and of course ______ [REDACTED].
J: What’s the best part about your job?
U: Being able to work closely with a bunch of terrific individuals and to craft an experience that I believe gamers will enjoy a lot.
J: You rule, Ulf!
What did you think of this more in-depth kind of interview? Ulf will be down in the comments section and do his best to answer any questions you might have. So ask away! 😀