Between the complexity of the programming and the challenges faced during the dev process, it’s no surprise that it’s taken this long for Fez to come out.
Optimizing the game for the Xbox involved a lot of specific challenges, including the fact that XNA, a .NET Compact Framework, does garbage collection every 1 MB that is allocated (garbage collection is essentially reclaiming used memory from objects that are no longer being used by the program). Draw calls — the commands sent to the GPU to render graphics — are also expensive on the Xbox, and HDD access is painfully slow.
“I was really surprised by how slow HDD access is,” Bédard said. “So I opted to preload the game at the beginning during the splash screen to cut down on disk access.”
And it wasn’t just the hardware that proved difficult to work with. Working in XNA created a lot of hurdles for Fez to overcome throughout the development process; a long dev cycle meant struggles with upgrades, and the fact that no native library (only .NET) was allowed while programming in XNA was problematic. There were also the technical certification requirements that all XBLA games must go through, though Bédard admitted that a lack of certain elements like multiplayer made this a less complicated process. But while he recognized that programming in XNA for XBLA certainly had its issues, he “never could have done Fez in another [setting].”
“It’s a comfort zone thing,” he said, adding that he is not particularly proficient in the C programming languages. But even though he does not regret his decision to work in XNA, there are some changes he would make if he had to do the project over again.
“Creating both the engine and the game itself at the same time is just too much work,” he said. “So maybe next time I would use middleware like Unity or hire and engine programmer.” He also said that having real scripting support (and educating the team’s artists about it) and having the ability to hot-reload scripts and content edits would help, too.
“You can’t be afraid to scrap your prototype code, either,” said Bédard. “Having bugs that are years old coming back to haunt you sucks.”
And there was plenty that Bédard said he learned about working in harmony with designer Phil Fish; as the implementer of Fish’s creative decisions, Bédard knew what was possible “time-wise and performance-wise” in regards to his abilities. As such, while it was important to work as a team and maintain mutual respect, he couldn’t be afraid to say no sometimes. “At one point, Phil wanted to make Gomez out of trixels too,” he said. “But I said that I didn’t think it was worth the time. It just wouldn’t have changed how the game was played.” Bédard would never flat-out refuse anything, though; he said it was always a discussion.
In fact, it seems that such discussions and fine tuning have been the reasons for the game’s numerous delays. “We didn’t feel like it was ready,” Bédard said, though he did say that he was glad that people seemed to remember the project as it popped up at various gaming shows over the years.
“It’s really hard to finish if you love a lot about the project,” he said. “You want the game to be perfect, so you’re never really ready to show it. You want to make it as perfect as it can be.”
Pages: 1 2