5 ms·
As a counterpoint, the Quake -> Quake 2 -> Quake 3 original open source releases are remarkably clean. Quake 2 in particular is very minimalist and the game wa
by CoolGuySteve 7y ago
As a counterpoint, the Quake -> Quake 2 -> Quake 3 original open source releases are remarkably clean. Quake 2 in particular is very minimalist and the game was developed in something like 10 months.
Granted, it's not really fair to compare anyone to the id software team of the time. But the requirements of the Quake series, basically a BSP renderer that is easy to modify and extend, probably forces it to be extensible and clean.
- tluyben2 7y agoEngines (Doom, Quake) need to be much cleaner and more consistent than (one-off) games.
- AstralStorm 7y agoMind you both reused many ideas from previous ones. Doom reused Wolfenstein 3D, Quake reused pieces from Doom. (WAD format for example.) The engines made for the games were indeed intended to be one offs. Reuse of design and formats does not imply reuse of code. This is very different from new "universal" engines like Unity, Unreal Engine, Ogre, Frostbite, Dawn Engine or Unigine. Those were designed to be separate from games.
- tluyben2 7y agoTrue; I guess ID had this internal engine strategy or it grew out of the culture there naturally? I read the Doom book but don’t remember if that was explained. I have the Doom black book but did not read it yet.
- tracker1 7y agoSometimes the best code comes from making something that's meant to be temporary, replaced or duplicated instead of reused.
- winrid 7y agoAlso, Carmack had a philosophy of rewriting things instead of just adding code.
- perseusmandate 7y agoThe fast inverse square root algorithm Carmack invented for Quake 3's lighting is the definition of elegant code https://en.wikipedia.org/wiki/Fast_inverse_square_root https://en.wikipedia.org/wiki/Fast_inverse_square_root
- xsmasher 7y agoIt's EFFICIENT, but it's the opposite of elegant. If you looked at the code you would have no idea what it is doing or meant to do. Elegant code should be simple, readable, and apply some leverage to make a difficult problem more clear.
- dwd 7y agoIt was a very different time with serious limits on graphics, memory and disk space. Going back even further some of the early 8bit games were engineering marvels where the only hacks were to squeeze out every last bit of memory.