   Design principles behind Doom and Quake
  The Doom and Quake engines seem to have been ported to more systems than I can count.  What exactly makes them so portable?  Are they designed with minimal system dependencies or is it just simply because they released there source code?  I'm working on a project and I would like to make it as portable as these games.  Any tips would be appreciated.   
  The code itself really isn't that portable, all of the rendering code is written in x86 assembly for instance.I'd assume it's because it's a popular engine (There's a lot of mods and total conversions), and being open source, anyone can have a crack at porting it to their platform of choice.   ;Quote:Original post by Evil SteveThe code itself really isn't that portable, all of the rendering code is written in x86 assembly for instance.This is only partially true. The Doom source code is the Linux version and all the code is in C. The Quake rendering code contains both assembly and C versions, all you have to do to get rid of the assembly code is change one #define.   ;Quote:Original post by ScetThis is only partially true. The Doom source code is the Linux version and all the code is in C. The Quake rendering code contains both assembly and C versions, all you have to do to get rid of the assembly code is change one #define.Ah, I wasn't aware of that (I only briefly looked into the original Quake source before my eyes started bleeding [smile]).   