Continuing Gamasutra's 'Road to the IGF' feature, we talk to Kokoromi's Phil Fish and Renaud Bedard about their IGF 2008 Design Innovation and Excellence in Visual Art finalist Fez
, which follows the adventures of a whimsical 2D character in a 3D world.
What kind of background do you guys have in the game industry or in making games?
Phil Fish: I am Shigeru Miyamoto, creator of beloved franchises such as Super Mario Brothers
and The Legend of Zelda
. I have been working in the industry as a designer for a bit over 2 years.
Renaud Bedard: I've never actually worked on a game before Fez
, but I do have 2-3 years' background in 3D graphics programming using the TrueVision3D engine, as a hobby. Mostly demos, shaders, experiments and the like. Otherwise, I've never had a job with a game company before.
What motivated you to create Fez?
RB: I'd been hoping to start a simple arcade game in XNA for a while before I contacted Phil, and when I did and he explained his idea, I knew it was the right time to give it a go. The idea was very appealing, and I had this sense of making something new and pretty experimental all along while making the project... Of course, the IGF deadline was a very strong motivation as well. It was [of prime importance] that we had a fairly polished product before the deadline, so we invested all the time we could, and then some.
PF: I really wanted to get interviewed on Gamasutra.
Where did you draw inspiration from in its design and implementation?
RB: The level editor was initially inspired by SketchUp; the main feature of the editor is to cut up a solid ground and extrude quads from it to make up a blocky, cubic scene.
PF: Well, the original 2D/3D idea came from Shawn McGrath, with whom I worked on a game that would eventually become Fez
once we parted ways. From there on, a lot of the design and aesthetic philosophy was derived from the the pixel/trixel concept. I let myself be inspired by a lot of classic NES games I played as a kid. There's a LOT of Mario
in there. I also took a few pages from Fumito Ueda's design by subtraction philosophy.
And then, for the look and feel of the game, again, it's a lot of childhood and nostalgia, but also a lot of Miyazaki. Early in development, I took a weekend off and watched almost every single Hayao Miyazaki movie. I did this to really get in the "open blue sky" mood that is present in so many of his films. I wanted to capture that same feeling, that feel-good feeling.
What sort of development tools are used to work on Fez?
RB: Microsoft Visual C# Express with XNA Game Studio Express 1.0 Refresh for all the coding. The level editor is home-made, using XNA as well. I ended up making a tool to compile volume maps (which are used for the sprite animations) and cubemaps (the trile textures) more easily too. There are no models in the game, all the geometry is generated by the engine, so the content tools were mostly Photoshop and the custom tools I developed.
PF: All I'm using is Photoshop and Renaud's kickass editor, Fezzer. It's actually a pretty sweet pipeline. I get to do all my pixel art in Photoshop, a program I know and love. Then, I just export all the different sides of the trile (a 3D tile, a cube, basically) to the editor, where I proceed to sculpt the different objects pixel by pixel. So basically, every object in the game is made out of cubes called Triles, which are in turn made out of 16x16x16 potential Trixels. It's really easy. I'm terrible at traditional 3D modelling, but with our tools, it's a lot like playing with LEGOs. It's actually a lot of fun.
Could you talk about how you implemented the 2D-to-3D effect?
RB: The world is in 3D at all times, but the main view is an orthographic projection of the world along a certain axis and direction. Let's say Gomez (the main character) is walking on the X+ plane, then the camera looks into X- with a certain radius that represents the screen size. Since Gomez walks in a 2D world, it needs to behave like a 2D platformer, and so all collision is "flattened" to 2D to match the visuals. But Gomez still has a 3D position at all times!
So the important thing is that if you switch to a 3D view anytime in the game, he mustn't appear to float in mid-air between two triles, and he mustn't disappear behind non-collidable triles when moving in 2D. All of those "indeterminations" can be resolved using ray-cast collision and some logic...
When you turn the camera around to the left or right, the camera stays orthographic but turns around the world to match the rotation, while looking down a bit to give a sensation of depth. All movement is blocked during those rotations since the movement wouldn't make much sense; Gomez is flat, remember.
The camera eventually stops at its new position and the movement can resume, along the new plane, with collision flattened upon it.
PF: The basic idea for the 2D/3D aesthetic really just started with the Trixel idea. I figured that if we built our entire game world from these little cubes, all perfectly aligned on a 3D grid, we'd get this "3D Pixel" look. The best part is when the game collapses into orthographic 2D, all those little cubes become pixels, and you get this warm and fuzzy oldschool aesthetic.
Roughly how many people have been working on Fez, and what has the development process been like?
PF: Four. It's mostly me on design and art, Renaud on everything tech, then we had Graham Lackey join us for character animation, and Jason "6955" DeGroot on music and SFX. And thousand monkeys on a thousand laptops.
If you had to rewind to the very start of the project, is there anything that you'd do differently?
PF: I would have started earlier. we had just gotten started when the IGF dates were announced, and we really didn't want to wait 1 year+ before we could enter again. So we weighted the pros and cons and then decided to give it all we've got and try to ship something sexy before the deadline. We had 101 days to go at that point, and it was a brutal roller coaster ride. But hey, look at us now, all being interviewed and such!
RB: I'd work on the content/art pipeline some more. It was a real pain for Phil to have
to work with Visual C# to compile the XNA content, and sometimes encounter compilations issue he had absolutely no clue about... Then I had to debug remotely... It was a major waste of time, and pretty stressful. I partly blame XNA for that, not to have a tool to compile user content to XNB outside of the compiler.
Also I found out in the middle of the project that I used a technique only available on Shader Model 3 hardware (hardware geometry instancing, that is), which made the later versions of the editor and game impossible to run on Phil's laptop. He's half of the team. So a bit of research beforehand would've saved development headaches!
What are your thoughts on the state of independent game development, and are any other independent games out now that you admire?
PF: The state of the indie scene is diametrically opposed to the state of the industry, meaning that IT IS AWESOME. Seriously, it's batshit crazy. There's so much happening right now, and you know, it really is a scene. Everybody knows everybody, and we all help each other any way we can. It's wonderful.
I have the biggest mancrush on Jon Mak and Petri Purho. I have soooo much admiration for these one-man armies and their incredible games. Can you feel the love? I also can't wait to get my hands on Braid
. It's all love.
You have 30 seconds left to live and you must tell the game business something very important. What is it?
PF: You were adopted.
RB: I would try to think of something clever to say for 30 seconds and then die, apparently.