Porting Spirits: Interview with Tim Ambrogi
Tim, please give a short introduction about yourself. Hometown, pastimes, favorite food, current leaderboard position at Jamestown?
I’m Tim, the programming half of Final Form Games. As a kid I actually moved around a lot overseas. My parents taught at international schools, so I was dragged around from country to country until I went college (at which point I moved to the US). I love cooking, playing games, reading historical fiction, and, of course, making games. As to my Jamestown scores: my glorious records have long-since been obliterated by talented players like this.
We asked you to port Spirits over from the Mac to Windows and Linux. Could you go a bit into the technical details of that? What was the hardest part of porting the game?
Well, because the game was written for Mac, there was a fair bit of Objective-C code that needed to be ported to C++. Additionally, even though it was built on top of OpenGL and OpenAL, the game still relied on some audio and video playback functionality that was not cross-platform. So, I had to write some code to playback video and audio on both Mac and Linux. This A/V code took a fair bit of work, but I’m quite happy with the end result. Due to the generosity of Spaces of Play (to both myself and the indie community), I was permitted to create the audio mixer as an open-source library for all to share!
The other big challenge was getting the Linux port to play nicely across different distros. While I did some Linux development before for Jamestown, there is a huge amount left for me to master. Many thanks to Ryan Gordon (aka icculus) for his help getting the Linux port out the door!
You're based in Philadelphia, we're over here in Berlin. What was it like to work on the project remotely in a different time zone?
It was actually pretty easy, though I suspect this had a lot to do with Mattias’ talent for never sleeping! The Basecamp groupware that we used helped keep small tasks in sync, whereas Skype worked well for complex debugging and collaborative problem-solving. Ultimately, though email was the most extensively-used tool – there were times when Mattias and I would create a thread 30-emails long in a single day!
Soft or hard tabs?
Always soft tabs if I can – the trick, of course, is getting a group of programmers to agree to do the same. :)
You developed the frantic multiplayer top-down shooter Jamestown at Final Form Games. Do you see local multiplayer games making a comeback with indie developers slowly picking up the genre again?
Oh my, this is a sensitive topic, isn’t it? :) Because local multiplayer is usually orders of magnitude easier to create than online multiplayer, I expect many developers will be faced with the following decision: single-player-only or local-multiplayer? In the case of Jamestown, we knew we couldn’t afford to create online-multiplayer, so we chose to create local-multiplayer instead of nothing. I think it was the right choice - imagine the fun our players would have missed out on if we’d only created a single-player game! That said, it’s a risky choice, and I’ve seen several games docked a point or two in reviews because the multiplayer they did add wasn’t online-enabled.
What I really hope, actually, is that we will see a revolution within our wireless internet infrastructure (such as DIDO), enabling us to dramatically increase bandwidth and reduce latency. Coupled with cloud gaming systems such as OnLive, we would be able to implement online multiplayer using the same techniques that we currently use to implement local multiplayer. If that sci-fi reality should come to pass, it could open the floodgates to developers of all sizes being able to implement online multiplayer in their games.
Where did the "neo-classical" inspiration for the story and art style of Jamestown come from?
We’re often drawn to historical fiction because it helps to anchor a story within a familiar world, without sacrificing the freedom to follow our imaginations (no matter how implausible an idea may be). The old-school genre, old-school art, and historical setting provided us with an classical feel to the game. In the process of developing the game, we also explored modern game mechanics and science-fiction story elements, eventually ending up with something that felt classic, but was clearly a modern work. So, as a pretentious tongue-in-cheek allusion to the musical world, we decided to call it a ‘neo-classical’ game.
Jamestown is a very impressive debut game. What did you guys do before starting Final Form Games?
Before Jamestown, we worked in the game industry in San Francisco, CA. I programmed PC, Wii, iPhone and PSP games for 5 years, saving up money to found my own studio. My brother Mike did art, animation, level design and game design for 7 years at various companies prior to Final Form. My friend Hal (our third co-founder) worked at LeapFrog designing the database back-end systems for educational games and toys for children. Francisco (our composer) worked (and still works) on television and as a studio/concert performer.
What's your favorite development tool of all time?
Honestly, it’s got to be Visual Studio. Other favorites for cross-platform development are CMake, CodeLite, Python, and valgrind.
What's the best thing about Philadelphia?
I can’t pick just one thing! There’s so much to love: the cool people, the beautiful architecture, the culture and art museums, the beer, and, of course, the sandwiches. :)