It's not often that developers get a chance to re-release their games for a new generation. That's why earlier this year, we were excited to sit down with Outcast: Second Contact lead developer Franck Sauer, who had the rare opportunity to port the late-'90s open-world game Outcast for modern consoles.
It was an interesting look back at how the game development world has changed so much, and what it takes to preserve assets and try to deliver a functional, yet historical experience for casual players. And we were semi-surprised to learn that Outcast has quite a cult fanbase who was eager to pepper Sauer with questions.
We've transcribed some of the more relevant parts of our conversation below. You can also watch the stream embedded above, or click here to see it on Twitch.
Bryant Francis, contributing editor at Gamasutra
Franck Sauer, lead developer on Outcast: Second Contact
Alex Wawro, editor at Gamasutra
Wawro: I assume you're not using the same engine you were back in the '90s? I'd like to know a bit more, if you can, about the process of bringing this game to a new engine, and revamping it to look the way it does. What was that like, what engine is this running on, for example? I should probably know that but I don't.
Sauer: That's physically the original game running in the background, the original C++ code. What we did is replace all the visual-related aspects of the game with the Unity engine. So there is a plug-in, which is the original game, which is running inside Unity. On the Unity side, we did all the rendering of the environment, the characters, the new heads-up display and stuff like that.
Sauer: We also added more refined collisions on the Unity side. It was a fun development because we had something to start with. We had to remove the parts that we didn't want to keep, one by one, and replace those with the new technology. Regarding the environment, what we did was to generate from the original dataset a kind of polygon soup with all the stuff from the original, and then we used that as a base from which to build the new content and assets.
Wawro: How did you decide what to keep and what to replace. Like, Bryant and I notice that the voices seem the same but the opening cutscene is different. What was the thought process behind that?
Sauer: It was basically down to the budget. We were a very small team. Originally we planned to make the game in one-and-a-half years, and it ended up to be two years. And we knew we had to replace the environments, the characters and most of the animations. We always had this in mind to minimize the effort, in order to stay within our budget while maximizing the output, which is what you see in the actual product.
Francis: How fruitful was it to dig up the original source material for this game? You're obviously working with the source audio, right?
Sauer: We had all the original files regarding the game code and the art assets, and the Redbook audio for the music. But we didn't have the source CD recordings for the voices. So that's why the voices are the original ones. We did what we could to clean up the files, but they were compressed. That's why the sound is not top-notch in term of the dialog. But for the rest we had all the original source files. We had to recompile and debug the legacy C++ code a lot, but from there we build the new assets and code on the Unity side.
Francis: I'd like to comment real quick, I love the way the scale of this zone plays out. The flow of it in this maze-like structure that goes around the center of the island, where right now I'm navigating around trying to figure out some quests. This is really impressive. It's one thing to say it's impressive that an open-world game was doing this way back in the day. It's another thing for there to be this very coherent structure you can study and see how it shapes player direction.
Sauer: At the time it was actually a 2.5D game. We built the whole game from the top view using tile systems, so you could have a good view of the entire game. Probably it helped to create something coherent on that front. Now we have less constraints, but sometimes it can be more messy if you do it the wrong way.