December 10th 2018 marks the 25th anniversary of Doom, the first-person shooter that changed everything, not only for PC gaming but for consoles too, as the hardware of the time attempted - with varying levels of success - to bring that classic PC experience to the living room. Last year, DF Retro revisited Doom on every console platform, using today's Digital Foundry tools and methods to assess the quality of each port. It's a piece we're happy to republish today!
One of the most popular and influential titles of all-time, id software's Doom played a key part in gaming's challenging 90s transition from two to three dimensions, and its legacy of technical innovation continues to this day. Last week, Nintendo and Bethesda announced a handheld version of the Doom 2016 reboot, seemingly a technological miracle in handheld form. However, back in 1993, full-fat Doom required a medium to high-end PC - and the race was on to accurately translate this incredible new experience to more affordable console hardware.
The irony is that back in 1993, PCs weren't exactly designed to support fast 3D graphics - or indeed 2D graphics, for that matter. The arrival of Doom left many wondering how John Carmack managed to pull off one of game's most impressive generational leaps in graphics technology. Ingenious coding is, of course, the answer. Doom doesn't actually deliver a full 3D engine: instead, it interprets and extrapolates out 2D level data while using clever tricks to give the illusion of 3D.
Before Doom, Wolfenstein 3D made use of raycasting, which uses the player's position and facing to determine what is drawn, by sweeping from left to right and drawing appropriately sized columns. Doom is not a raycaster though, instead relying on binary space partitioning. BSPs would become useful in many games going forward and in Doom, they allow the game to break up 2D map data into chunks or sectors, which are then stored in a BSP tree. By going through the tree, the game tests which walls are visible and draws them on-screen from front to back.
Wall textures are stretched and displayed using an almost scanline-like approach, drawing in strips from one side of the screen to the other while floors, or the 'visplane', use more of a flood fill approach. What this all means is that Doom can present more complex levels than Wolfenstein: walls can be placed at any angle, variable floor heights are possible, leading to stairs and even moving platforms can be added. It's still limited due to its two-dimensional nature, which is revealed by the fact that you can hit enemies at any elevation. Wall segments can move up and down but not horizontally, rooms cannot exist on top of one another and slopes can't be drawn.
Everything is powered by the CPU - the PC's core advantage over consoles of the period - which made ports to the likes of Mega Drive and Super NES virtually impossible, without custom hardware assistance, at least. The consoles had strengths of their own, of course, specifically bespoke scrolling and sprite rendering hardware, allowing for smooth 2D arcade games - game types that PC struggled to cope with.
But change was inevitable and new consoles were en route, with 3D acceleration capabilities and much faster CPUs, making them a better fit for Doom's requirements. John Carmack himself handled the initial Atari Jaguar port, tailoring aspects of the engine to better exploit the hardware's capabilities. It even delivered an upgrade of sorts over the PC game, supporting the CRY colour format, which sacrificed the range of colours available in favour of introducing a luminance element, allowing for smoother shading. The sense of depth in many scenes is significantly enhanced, with none of the depth banding seen on the PC original. When it launched at the end of November 1994, the Jaguar port of Doom was a revelation, though it was not without its compromises.
Reductions in map complexity and texture variation were inevitable given the limited cart size - an exercise that would have unwelcome implications for many ports to come - but the Jaguar port is rightly revered. It ran at a capped 20fps (with drop in heavy areas), making it the best-performing conversion of the period, and it offered a full-screen display, albeit using the PC's pixel-doubling low detail mode. Lowering the size of the display window cut down on the CPU requirement - an option in the PC version, and also deployed on a number of console ports, like the Sega 32X version.
The 32X game actually hit stores a week before the Jaguar port and once again, John Carmack is understood to have been involved in the work, and while running relatively smoothly, the cutbacks are considerable: there are only 17 levels, only front-facing enemy sprites are used, the music is awful and the limited colour palette is lamentable. There's a sense that the cart size was even more of an issue here - a more impressive September 1994 build that came to light revealed more complex levels derived from the PC original, along with a full-screen window. It ran more slowly, but it shows the original target the developers had, likely curtailed thanks to a compressed development period plus the crushing limitations imposed by the cartridge size.
It would take ten months for the next Doom port to arrive and it's safe to say that while only borderline playable, the technological achievement was stunning. In September 1995, Doom debuted on Super NES, powered by the SuperFX2 chip. Necessarily revamped with a very different engine, custom-built from the ground-up, the fact that it exists at all is remarkable and in some limited respects it was faithful to the original in ways that 32X and Jaguar were not, with some additional level detail retained. However, it's a chunky-looking release that updated at around 10fps, making it far from fun to play. For SNES fans and Doom completists alike though, it's an essential part of any collection.
Following SNES, we quickly saw the best and worst Doom ports of the era: PlayStation 1 and 3DO, both arriving in the holiday 1995 window. The flat-out terrible nature of the 3DO port is the stuff of legend, and the account of coder Rebecca Heineman is essential reading, and there's even detail more in Heineman's video, painting a picture of acute managerial mismanagement, impossible deadlines and a remarkably naďve viewpoint on game development. Rushed to the market, 3DO Doom cut back on artwork, level detail, window size (ironically marketed as having four different 'speeds') and featured game-breaking input lag issues.
Meanwhile, in the same time period, the promise of Doom on consoles was finally realised to almost its fullest extent with the PlayStation 1 port. It shipped with content from Doom, Ultimate Doom and Doom 2, delivering 59 maps in total. Unfortunately, the simplified Jaguar maps are used for the original Doom offerings, but in all other areas, it was magnificent. Even with its target 30fps frame-rate, low detail mode wasn't required, and a high colour mode was implemented, allowing for coloured sectors. Individual, localised areas of the map could now have a defined colour value, allowing for some very moody scenes. It was a feature unseen on the PC version, and leveraged the hardware, as did the inclusion of true alpha transparencies, animated skyboxes and a brilliant soundtrack from Aubrey Hodges. Even co-op and deathmatch were included - and multiplayer actually worked consistently, something that couldn't be said of the equivalent Jaguar functionality.
17 months elapsed until the next port shuffled into view - and it was a stinker. Rage Software handled the Sega Saturn port, forced to hand-in a software-driven port of the PS1 game, with John Carmack vetoing the hardware-accelerated engine crafted by veteran coder Jim Bagley, owing to its affine texture warping issues. It was a decision that left Rage in a tough spot, and Carmack himself would eventually concede that maybe he should have allowed the developer to experiment more. The end result was a disaster. From the 30fps target of PS1, Saturn's average 13fps turn-out had more in common with the earliest ports. The Saturn version was the last port of the 90s, and a sad way to conclude the decade. Things could have been so much different. Bagley reckons the hardware accelerated Saturn engine could even hit 60fps and given time, he believed that a port that exceeded both PlayStation and PC quality would have been possible.
In the here and now, we've reached the point where you can play Doom on virtually any piece of hardware. OK, so maybe Doom on a toaster is a hoax, but you can play it on a smartwatch, a calculator - and even a thermostat. As the years progressed, CPU power increased substantially, opening the door to better ports of Doom on what might be considered unlikely platforms. By 2001, there was even a creditable attempt at a handheld Doom on the Game Boy Advance. Compromises were inevitable - such as the use of the low detail, double pixel width mode - along with the removal of depth shading. Performance wasn't bad though - almost on par with 32X.
Curiously, Doom skipped the PS2 era but it did emerge on Xbox in 2005, almost 12 years after the original release. Despite its status as an almost throwaway release, it proved to be a stunning port. It was a bonus extra included in special editions of the excellent Doom 3 conversion, with all maps, enemies and weapons included from both the original Doom and its sequel.
It also ran at a perfect frame-rate, albeit with some judder. Doom was designed to operate at 70Hz with a frame-rate of 35fps or half the refresh. On a 60Hz display, however, this 35fps cap remains. Regardless, it's smoother than any other console version before it and still feels amazing to play. Dual analogue control was added too. Its only issue is that the full resolution visuals were upscaled to 480i or 480p, giving an image that isn't quite as crisp as the PlayStation game, while audio sample rate was also rather low.
But if you're looking for the best way to play the original Doom today, it's got to be the PS3 and Xbox 360 versions. Yes, the frame-rate is still capped at 35fps like the original game, but it's full-screen, runs at a higher resolution and features the entirety of Ultimate Doom and Doom 2. Networking options are available and the control is highly refined, taking full advantage of modern controllers. It feels absolutely spot-on and it's a blast to play. So why group PS3 and Xbox 360 together? While there are certainly minor differences here, these two ports are basically the same at their core and both are excellent. Ultimately, these versions of Doom are all about that original experience. There is no texture filtering here, the soundtrack is based on the original PC version, no additional effects are present - only the resolution is increased, and it is glorious.
But there's another version we also recommend checking out - Doom 64, one of the finest technological achievements for Nintendo 64, arriving within days of the staggeringly bad Saturn game. Doom 64 was developed by Aaron Seeler Productions and Aaron worked alongside John Carmack in building the hardware renderer used for the game. Remarkably, this makes Doom 64 the first 3D accelerated conversion of Doom. It takes full advantage of the N64 hardware, enabling effects and techniques never seen before in the Doom engine. It runs at 320x240 and, unlike other versions, operates at a rock solid, locked 30 frames per second.
This is the most fluid console conversion of Doom ever released, and taps into the N64's bespoke technology, supporting bilinear texture filtering and introduces effects such as fog, moving skies, advanced lighting and higher colour depth. It also features a brand new selection of maps crafted specifically for this version: these are tough, well-made maps that channel everything that makes Doom great. This version is an essential buy for Doom fans - it's basically a full-on hardware accelerated sequel to Doom 2 and as such, stands apart from all other ports.
While it took almost 12 years for a suitably authentic version of Doom to arrive on console, the reality is that the augmented PlayStation 1 conversion arrived less than two years after the original PC's shareware debut - a remarkable demonstration of the sheer pace of technological evolution back in the 90s. Compare and contrast with, say, Crysis - another huge PC exclusive. That took four years to transition across to consoles (actually arriving after its multi-platform sequel) and despite running on an evolved version of CryEngine, it still struggled to match the original game in many ways. What's fascinating about those early console versions of Doom isn't just the level of accuracy in the ports, but also the way that developers exercised the strengths of the fledgling 3D acceleration. This was the era where everything was up for grabs as hardware manufacturers across both the console and PC spaces competed to produce the best or the most cost-efficient 3D hardware solutions.
All of which brings us back to this week's big surprise - what looks like a fully armed and operational port of Doom 2016 running on Nintendo Switch. What we've seen so far looks impressive - perhaps not on par with OG Doom running on a thermostat, but still highly a genuine, pleasant surprise.
The fact that any kind of semblance with a triple-A game running on much more powerful hardware is possible on a handheld is an achievement, but equally, it's a factor of the homogenisation in gaming technology. After all, the Tegra processor inside Switch is essentially a scaled down GeForce graphics card, commonality in the programming languages and APIs meaning that fairly straightforward ports are possible, as opposed to massive engine rewrites.
But what it also means is that the variation and custom features seen in those older conversions - not to mention bespoke releases like Doom 64 - are now a thing of the past. And beyond that, the multi-platform status quo also raises another question: are games that technologically break the mould like the original Doom even possible in the modern era?