Interview: Christopher Night of Team Multiverse Factory
Christopher Night, aka Cosmologicon, was the director and producer on the Team Multiverse Factory entry for Pyweek 12, Fractured Soul, which placed second in the team competition. Christopher has also had two previous Pyweek winners in the individual competition, Mortimer the Lepidopterist in Pyweek 11, and Panspermia, in Pyweek 8.
What inspires you/drives you to make games using Python?
This is probably different for me than for most people. I don’t like using libraries or frameworks. I’ve made about 10 solo games in Python now, and I’ve never used anything beyond Pygame, PyOpenGL, and NumPy. What I like about Python is its highly expressive syntax and powerful standard library. Game development in, say, C++ is mature enough that everyone has a complicated framework they like, so there’s little attention paid to development without one. Whereas with Python, I feel like you can jump right in.
Pyweek also has a lot to do with it. I like Pyweek a lot. The scope and community are just about right for me. I originally learned Python in order to compete in Pyweek 6.
What games/genres influence you most, and how?
I don’t have any conscious influences that I can think of, as in, I enjoy this game so I want to make more games like it. Games are definitely good for reference, though. When it comes to designing controls and UI, it’s great to know a lot of games and understand the design choices and why they work, so that you can make the best choices for your own game. But when it comes to a core mechanic, I like to try to do something different. I actually don’t play that many games, but my favorites are single-player action, adventure, and strategy games with a strong story like Zelda.
I was particularly impressed by the idea of freezing yourself into statues in Fractured Soul. How did you come up with the concept?
Nothing special, I think it just came from the idea of playing through the level nine times. You can look at the entirety of the concept as it was when the game started on our wiki under IDEA1.
It wasn’t a unique idea, either, someone else posted basically the exact same idea we had.
Yes, actually superjoe’s winning individual entry also has the concept of piling up duplicates of your character. Did you spot any really original ideas in other Pyweek entries?
Not as many as in previous Pyweeks. Lots of people did as good a job as possible with the theme [“Nine Times”], but I didn’t think this theme really lent itself to much originality. The only examples of really original interpretations (IMHO) I can think of are Tee and adrwen.
How did you tune the difficulty of the game?
Poorly. This is a very important issue for puzzle design, and if things had been slightly different it could have gone badly for us. We were fortunate enough to have enough content that we could make all the stages after the tutorial optional. That way if one of the levels was too hard it wouldn’t break the game.
How close to your original concept was the final submission?
The mechanics were very similar. You could see the original concept in the link above. The idea of the “counterweight” platforms came pretty early on day 1. The storyline, sound, and graphical style were pretty much absent from the original concept. They all came late in the week.
Was there anything exciting that you left on the cutting-room floor?
There are usually features I want to add but don’t have time for. That wasn’t the case this time. There were several features that were somewhere between “jotted in the margin of my notes” and “implemented but disabled” that got cut, namely: double-jumping, wall-jumping, enemies, rolling boulders, water/lava whose level can change, keys, ladders, elevators, teleporters, mobile portals, switches in the ceiling, levels with bizarro mechanics, and using stones to keep objects from moving. (There’s no way we would have had time to implement all of them, of course.) The reason these were cut, though, is because the game was already pretty full. I don’t know about the rest of the team, but I prefer depth to breadth in gameplay. That is, really exploring a small set of mechanics rather than superficially using a larger set.
One exciting non-mechanic feature we cut was the ability to record yourself playing through a level, save it to a file, and play it back. This was working midway through the week, and we used it for some playtesting, but we had to break it on the last day.
Some of those features sound brilliant – I’d love to see what puzzles you could create with water and lava. Will they ever see the light of day or is the game done and dusted now?
Yeah, we’re thinking of continuing work on it, and that would include adding some mechanics. I haven’t gotten around to it yet myself, but I’d like to, especially if we can get someone to work on the art.
You’ve personally had winning entries in Pyweek twice. Can you speculate on the formula for a winning entry?
So, I’ve entered Pyweek solo five times, and placed 7th, 1st, 9th, 4th, and 1st. That’s enough to form some comparisons, and I can look at the other games and try to work out patterns.
My winning entries were based on ideas I came up with early on day 1 and stuck with. Starting halfway through doesn’t work, nor does forming your idea before the competition begins.
I think that a winning entry tends to feel complete, even if it’s not complete in your mind. One finished level leaves a better impression than three half-finished levels. If people don’t know the features were planned, they won’t miss them. Winning entries tend to be easy to medium difficulty. For solo entries, winning entries tend to do more with less. Simple, retro graphics and geometric shapes are fine.
But of course, I don’t really believe in a winning formula. Mostly it’s just making a good game. :)
One last question. What’s next for you personally, and for next PyWeek?
As much as I like Python, I’m becoming frustrated that my games are difficult to distribute. Browser-based games get so much more coverage these days than downloadable games. If someone can get pygame running in Google Native Client or something like that, that would be great! In the meantime, I’m trying to learn HTML5 or Flash.
But I’m always planning come back for Pyweek. Multiverse Factory was a very successful experiment in working on a team, from my point of view. But I don’t know if I’ll be entering solo or on a team next time.