So I’ve been thinking, the DOOM game code was made available openly and if I am not mistaken, was based off the linux version.
Is it right to say that’s why DOOM got incredibly popular with the “It can run on anything i.e a cash machine”
I say this because we all know Linux is a rock solid and efficient system compared to the bloat of Windows.
If anyone can enlighten me, This is pretty much why you can find DooM on almost any platform BECAUSE of its Linux code port roots?
Consider me a nutcase but I genuinely thought this was the case.
The reason that Doom is so portable goes beyond Linux and is an artefact of its development. id developed Doom on NeXTSTEP (i.e. Unix) machines and obviously targeted DOS. This is pretty unique among DOS games at the time and required id to write as much code as possible in a platform agnostic way. This means that the main engine does not care about where it is running and the usual DOS hacks are contained to DOS-specific files. In order to port Doom to a new platform, ideally one only needs to rewrite the system-specific implementation files for video, sound, filesystem access, etc., and this mostly holds true today. (These files are prefixed with
i_
in the Doom source).The Linux port is just one of many versions developed at the time. I don’t believe that it was commercially released; it was more of a portability test. The reason that the Linux version was chosen for the source release over the DOS version was because it didn’t rely on the proprietary DMX sound library that the DOS port used.
John Carmack, author of the Doom engine, is a long time Linux user and for a while the policy was to open source the idTech engines once they had moved on.
However, Doom was hugely popular on its own before this, and was actually more pivotal for making Windows a gaming platform (over DOS).
The reason it runs everywhere is a combination of it’s huge popularity, it’s (now) open source and it’s generally low system requirements.
He releases compatible WAD files for his current game Sigil for 6.66
We played Doom on MS DOS. It was hugely popular because it was a breakthrough for PC gaming. So nothing to do with Linux.
Someone already talked about the platform agnostic development process and the platform agnostic code that it produced, but no one has talked about what doom itself is and how the limitations of its operations meant that it could reasonably run on a wide variety of hardware.
Doom doesn’t have much of what we expect of games now, the objects are 2d sprites and the level geometry is very simple. The music is midi and the play area is 2d.
Some of what people refer to as bugs in doom are simply artifacts of the design and the good source ports have compatibility levels that can be invoked to match those original bugs and whatnot. By aggressively cutting away anything that wasn’t required, doom became a program that could be ported to anything.