While playing the game and putting together our 2-part Factorio preview I had a few thoughts and crazy questions I wanted to ask the developers. I shot them a quick email and incorporated a few bits from that into the preview. However, their responses were interesting and my preview didn't really do them justice, so I thought I'd collect them and do a "Factorio Interview" article. Hope you enjoy!
I asked several questions of Tomáš Kozelek and Michal Kovařík, the listed lead devs for the Factorio project. Stuff I asked them will start with "WOTS" and their responses will be shown with their first names. I did do some minor editing to the questions and answers to make them make a bit more sense as an article. However, they asked me not to change what they said. Thus, the rap battle challenge to Notch and the lightsaber duel action sequence are unfortunately left on the cutting room floor. (You'll have to trust me when I say it was glorious)
WOTS: I notice that Tomáš was a software developer who worked for several companies outside the gaming industry prior to starting work on Factorio. Did you do much game development in your spare time?
Tomáš: I have done some gaming pet projects at the school / uni. But nothing serious.
WOTS: What do you think is the most challenging aspect of game development that non-game software engineering doesn't prepare you for?
Tomáš: Cross-platform support is a big deal. The game needs to run on as many different machines as possible. This often brings hard to find / solve issues. This is something I haven't dealt with before in my career of writing web backends or trading algorithms for a specific architecture.
WOTS: My "day job" is also software engineering - I specialize in learning algorithms. I notice you also have a background in AI, are you using any particularly interesting AI techniques for Factorio that you're particularly proud of?
Tomáš: Writing the Path Finder [for the Biters] was an interesting application of things I learned at school in a real setting. It taught me that there is a big gap between knowing the theory and getting it done working with all the edge cases! :)
WOTS: It looks like perhaps Michal was hacking on games AI prior to Factorio, especially as part of the Brood Wars API project. Did you find modifying other people's game code to be more challenging than writing your own, or was it easier having the framework to work within? Did you learn anything interesting from previous projects which you carried over?
Michal: Mapping the assembly code of such a big game was very interesting investigation work. I did that for the first (and last) time so it was quite refreshing. Surprisingly, the biggest learning experience was not the technical part, but having open source project that I could start and maintain. The fact that it was working well and that it is used quite a lot gave me the needed confidence to start something else on my own in the future.
WOTS: As I mentioned in the preview, I liked the tutorial levels. I think that's something that is often neglected in these "open ended" types of games. Is it a conscious goal of the game to provide enough info that users don't need to consult external sources to understand at least the basics of all the game mechanics?
Tomáš: Yes, ideally we would like the game to be self-contained. That means that you can learn everything without going out to the wiki or to the forums. For this one option is to have small dedicated "tutorial levels" for different concepts, like the trains, logistic robots, circuit conditions, and so on. However, it is a tremendous amount of work. I can't see us having time for this anytime soon.
WOTS: I notice from other interviews that you guys cite Minecraft as one influence. I noted several other similarities to other games in the preview. What other games did you draw from?
Tomáš: We got some inspiration from Civilization or Simcity as well. Also in general when playing games nowadays we tend to look way more for "how they do things" and notice small details that could be applied in Factorio as well.
WOTS: Speaking specifically about the current alpha version (0.9.8 at the time of writing), what are some aspects of the game that you really feel like the alpha doesn't do justice? Similarly, what are you particularly proud of and think is near-final?
Tomáš: The basic mechanics are pretty solid. All the logistic mechanisms, production, trains etc. What is lacking the most is the combat and the endgame content. For now the endgame is just a placeholder Rocket Defense.
Again, thanks to Tomáš and Michal for being willing to let me pepper them with questions!