Who are you and how are you involved with Retro/Grade?
I’m Matt Gilgenbach, and I’m the fungineer at 24 Caret Games. I do both the design and gameplay programming.
What sparked your game development flame?
When I was 6, my parents bought me a Nintendo Entertainment System. At the time, I had no idea what it was, but I quickly discovered how much fun games could be. Then at age 9, my parents got me a Mac Classic II. I learned BASIC to start programming games, and I haven’t stopped making games since.
Where and when did the concept for Retro/Grade originate?
The concept of Retro/Grade actually evolved from a demo that we were putting together. In order to tune gameplay, I put in a debug mode to back up time to repeat sections that I was working on. Then Justin Wilder, our engine programmer, mentioned that it’d be cool if we made gameplay where players had to do some task while time is reversing. We talked about it for a bit and couldn’t figure out how to work reverse gameplay in our original idea.
After working on that demo for about two months, we decided to switch gears and work on something that would have a smaller budget should it get turned into a full game. I revisited the idea of making a game that is playable in reverse. I figured that the best way to do reverse gameplay is to have gamers line up their actions to things that happened previously. The problem with that is that arbitrary positioning and timing would be difficult to match, so I thought that we should constrain motion to a series of rows and match the timing to music. A top down shooter seemed like a good style of game that would match these constraints and add an action packed twist to the rhythm genre.
Over the course of development, what was Retro/Grade’s most serious issue and how was it resolved?
Probably the most serious issue was determining the placement of the enemies. Because Retro/Grade is a rhythm game at its core, I wanted to be able to create and modify the rhythms of the player’s actions rapidly. Since the gameplay is matched to the visuals of a shooter going in reverse, this requires enemy ships flying around and behaving in interesting ways. In order to accomplish this, I created a complex enemy director that determines the appropriate placements and movements of enemies in order to match the pattern I’ve come up with for the gameplay.
Although this might seem like it is straightforward, it quickly became a big undertaking in order to get it working well. Enemy ships must either implode or take damage from the player’s lasers, and they need to be in place to receive their lasers when they return. The final algorithm involves creating a schedule with all the movements and locations of the enemies over time. The placement of the enemies is determined by many heuristics in order to get the best arrangement based on the pattern of the song. They are spawned and moved around in order to create the most visually exciting space battle while matching the gameplay.
What’s one thing you did wrong that you feel could have been avoided?
Since creating effects that go backwards is tough, Justin created all of his effects so that they would be completely stateless giving us the ability to render them at any time offset. That way, he could tune the effects to look amazing going forwards, and we can evaluate them with a negative time delta during the actual gameplay. After he did a few effects, he suggested that we should take advantage of the fact that we could reverse time again, since the visuals are reversible. After a bit of thought, I realized giving players the opportunity to back up time and replay sections they messed up would be a great feature for a rhythm game. Sometimes when playing a guitar game, my hand shifts such that my fingers are over the wrong buttons, and I screw up an entire section. Other times, there are particular sections of a song that I foul up, and I want the opportunity to repeat them in order to practice without playing through the whole song. Allowing the user to back up time with the Retro/Rocket power up in our game addressed these frustrations and also makes the player feel like they are a DJ playing with a record because we slow down the game before reversing rather than instantaneously switching directions.
However, that meant that the enemy director had to be refactored to allow time going forward as well as the typical backwards flow. This required changing the enemy director to evaluate the entire level at once and build lists of actions per enemy rather than telling each enemy what to do when the time came and only looking ahead a certain distance. This was quite a lot of effort since the enemy director is a complex system, but after playing the game with the Retro/Rocket power up, it was totally worth it. It really is a great new innovation for rhythm games that I hope other rhythm games adopt in the future.
The lesson I took away from that is to try and brainstorm about the features you might want and keep them in mind when doing the initial coding. As a gameplay programmer, I have to constantly refactor, redesign and just plain throw out code, so I am always cautious about gold plating and supporting a bunch of features that I may not need since that can unnecessarily complicate systems and also lead to time wasted should a system get redone or features never used. However, time should be spent when designing a system (especially a mission critical one) to making it as flexible as it can be without adding much time to the implementation. Obviously it’s a tradeoff, but in this case I erred on the side of quick initial implementation at the cost of time in the long run.
How long was Retro/Grade in development? How much development time remains?
It’s been in development for four months. We spent two months on our initial demo and building technology before we started on Retro/Grade. The time remaining depends on what platforms we end up releasing the game on, but we expect to finish it sometime in 2009.
What was used to make the game and what tools aided in development?
We use Visual Studio 2005 for coding, Maya for modeling and Photoshop for texture work. We are using XACT for audio as well.
What's the main thing you think makes your game fun?
Retro/Grade is an innovative fusion of the action packed thrills and over the top visuals of a shooter and the broad appeal of a rhythm game. This combination brings a whole new level of excitement to rhythm based gameplay. The enemy shots that the player must dodge (in addition to lining up the more standard rhythm game beats) put pressure on the player to make split second decisions and require lightning fast reflexes thus creating an entertaining and challenging experience.
Is there anything about Retro/Grade that you would like to reveal to other developers?
I imagine that they might be wondering who did our great retro-themed music. We contracted Skyler McGlothlin, a Texan musician who has put out several amazing CDs as Nautilis. He’s one of my favorite musicians and has put together some really great tunes for Retro/Grade, so we have been very fortunate to work with him.
What’s next for you?
More work on Retro/Grade! It’s amazing that we’ve gotten such a positive response already for the game because it’s pretty early in development. We plan on adding quite a few more cool features before it is released.