Seems everyone’s getting in on Doom’s birthday nostalgia. After John Romero revealed a ton of unseen art, Rebecca Heineman has released the original 3DO port source code, along with an explanation of why it wasn’t so great.
The 3DO port is widely considered to be the worst of the bunch, with low framerates and a tiny, windowed screen. The cause of that, says Rebecca Heineman (apparently known as ‘Burger,’ because of her habit of storing them in her desk drawers), was that she was “misled about the state of the port when I was offered the project.” She’s now posted the code over at GitHub along with an explanation of what happened.
When she’d originally been asked to port the game she’d been told that “there was a version in existence with new levels, weapons and features and it only needed ‘polishing’ and optimisation to hit the market.” That turned out to be not the case: “after numerous requests for this version, I found out that there was no such thing and that Art Data Interactive was under the false impression that all anyone needed to do to port a game from one platform to another was just to compile the code, and adding weapons was as simple as dropping in the art.”
In the end she started the port around August of 1995, with a target completion date of mid October. According to Rebecca “I literally lived in my office, only taking breaks to take a nap and got this port completed.”
The technical side of things sounds like a nightmare: “I had no time to port the music driver, so I had a band that Art Data hired to redo the music, so all I needed to do is call a streaming audio function to play the music. This turned out to be an excellent call because while the graphics were lackluster, the music got rave reviews.”
The 3DO couldn’t even handle logos without memory leaks (unwanted data filling the system’s memory up until it breaks). Because of this, she had to write specific apps to show the 3D0 and Logicware logo at the start of the game and then delete them completely from memory. This build even has an unused EA logo because they were working on a deal to distribute the game, which, ultimately, never happened.
The game’s poor framerate and windowed view seem to result from a few technical issues such as the hardware’s inability to handle 3D perspective, “so the floors and ceilings were drawn with software rendering.”
Rebecca’s final word on the project? “I hope that everyone who looks at this code learns something from it, and I’d be happy to answer questions about the hell I went through to make this game. I only wished I had more time to actually polish this back in 1995 so instead of being the worst port of Doom, it would have been the best one.”