[HN Gopher] Quake's lightning gun bug explained [video]
       ___________________________________________________________________
        
       Quake's lightning gun bug explained [video]
        
       Author : henning
       Score  : 397 points
       Date   : 2023-06-13 19:22 UTC (2 days ago)
        
 (HTM) web link (www.youtube.com)
 (TXT) w3m dump (www.youtube.com)
        
       | jamesu wrote:
       | I would love an explanation of Tribes' skiing bug presented in
       | the style of this video. There have been so many differing
       | explanations of it in blog posts over the years which haven't
       | completely sat right with me.
        
       | bakugo wrote:
       | I love finding explanations for weird bugs and inconsistencies
       | like this in games by looking at their code. Here's one I
       | personally found myself:
       | 
       | https://www.youtube.com/watch?v=ljl1jBEY3_A
        
       | grandpoobah wrote:
       | Does it work in quakeworld (multiplayer) ?
        
         | sjm wrote:
         | I was curious about this too. The QW code is different and I
         | believe has fixed this. Example source for W_FireLightning in
         | KTX: https://github.com/QW-
         | Group/ktx/blob/6b8a50833d0ef738182cf7a...
        
       | tmikaeld wrote:
       | Suddenly, a wild John Carmack appears and explains the real
       | reason for the bug ;-)
        
         | NovaDudely wrote:
         | Probably to busy off doing new things to worry about this. ;)
        
           | viraptor wrote:
           | Possible, but not necessarily. I've just seen Romero playing
           | a Doom mod this week for example:
           | https://youtu.be/gIl_TqFJNO8
        
             | lgl wrote:
             | Just FYI, John Romero also streams occasionally on Twitch
             | at https://www.twitch.tv/theromero
        
         | coolspot wrote:
         | Real reason: he ran out of diet Coke.
        
         | UberFly wrote:
         | John was eaten by a Grue.
        
           | tleilaxu wrote:
           | Armed with a lightning gun.
        
       | fabiensanglard wrote:
       | I wish someone wrote a book about Quake with cool interesting
       | stuff like that.
        
       | eps wrote:
       | I don't follow.
       | 
       | This code is not C or C++, so it's not actually from Quake. So
       | what's with "this is how this was coded" and "here are the bugs,
       | but it's only my guess"? The code _is_ avaialble, why guess at
       | all?
        
         | mewse-hn wrote:
         | It's QuakeC - quake's proprietary scripting language that
         | compiled down to a file called progs.dat
        
           | nottorp wrote:
           | I remember Carmack announcing that the scripting language for
           | Quake will be "interpreted ANSI C". Never checked how
           | standard he made it though.
           | 
           | That was back when he posted dev updates in his .plan file.
        
             | vkazanov wrote:
             | QuakeC looks like C on the surface but is a much, much
             | simpler language. Modern dialects are quite a bit more
             | advanced (while still targeting the same vm).
        
         | poglet wrote:
         | He mentioned QuakeC. Maybe this part of the game was coded in
         | that.
         | 
         | https://en.m.wikipedia.org/wiki/QuakeC
        
           | vkazanov wrote:
           | Almost all of Q1 gameplay is in quakec, which is a a simple
           | c-like language targeting a little VM. Eventually they've
           | opersourced all of the code making the community possible.
           | 
           | I recently started playing Q1 again and it's amazing: the
           | community still supports a number of derivative engines, as
           | well as numerous amazing mods and maps. Arcane Dimensions are
           | insane!
        
         | kubb wrote:
         | [flagged]
        
         | kipi wrote:
         | Hello, video creator here. This is indeed the actual code, and
         | it is written in QuakeC, a language created specifically for
         | the game logic in Quake. The part I'm not sure about is why the
         | creators wanted to add in extra side beams at all.
        
           | 2c2c2c wrote:
           | in the era of arrow keys and ball mice, lg probably felt like
           | trash. who knew it would end up so iconically broken :-)
        
           | eps wrote:
           | Oh, didn't know about QuakeC. Shame on me.
           | 
           | So both the "normalize" and the improper swap are the part of
           | the original source?
        
             | tecleandor wrote:
             | Yep, right here:
             | 
             | https://github.com/id-
             | Software/Quake/blob/bf4ac424ce754894ac...
             | 
             | :)
        
             | klaussilveira wrote:
             | Check this out:
             | https://fabiensanglard.net/quakeSource/index.php
        
           | simias wrote:
           | I think your guess seems plausible, although maybe it was
           | simply an effort to widen the beam to better match the
           | graphics? The lightning effect is rather wide and it may have
           | been surprising for the player if the hitbox ended up too
           | narrow.
           | 
           | I haven't played Quake in the better part of 20 years so I
           | can't comment from first hand experience, but judging by your
           | top-down view at around 41 seconds, the single beam visually
           | seems to intersect with a bunch of enemies while not dealing
           | any damage (probably as a combination of narrow hitboxes on
           | both the beam and the enemies).
        
           | Sakos wrote:
           | Btw, I love this type of video where you breakdown and
           | explain code like this and I've subscribed. Looking forward
           | to seeing more of your videos.
           | 
           | Especially with games, I think the video format lends itself
           | well to demonstrating the effects of the code organically.
        
           | squeek502 wrote:
           | I wrote a breakdown of a different Quake engine quirk
           | (rampsliding) that might be a fun topic for a video if you're
           | looking for new topics:
           | 
           | https://www.ryanliptak.com/blog/rampsliding-quake-engine-
           | qui...
        
           | somedude895 wrote:
           | Probably just to make the gun more powerful, so you get some
           | area of effect damage and not just hit the target right under
           | your crosshair.
        
       | drawkbox wrote:
       | Lots of hacks like this in games.
       | 
       | It could have been solved by limiting the two side vectors
       | lengths to less distance (maybe even tuned by speed) and fixed it
       | _enough_ if the reason was for side damage. If it was to fix some
       | other issue like maybe floats losing precision far out that would
       | not be a good idea.
        
       | [deleted]
        
       | cammikebrown wrote:
       | Quake was the first PC game I played and still in my top 10
       | favorite games of all time. The movement STILL feels fresh!
        
         | Rodeoclash wrote:
         | I'm quite curious to see what Quake would look like given a
         | similar treatment as the new Doom games got. That is, distilled
         | down to a pure essence of what the original was trying to
         | achieve.
        
           | xwdv wrote:
           | Would rather see Quake as a top down roguelike RPG.
        
             | duskwuff wrote:
             | Doom, not Quake, but:
             | 
             | https://drl.chaosforge.org/
        
               | xwdv wrote:
               | Need Quake RL
        
           | newsclues wrote:
           | Quake Live not taking off as a popular eSports title greatly
           | disappointed me.
        
             | arpa wrote:
             | bethesda helped by nuking it completely.
        
             | tekmate wrote:
             | worse even, it killed off many vibrant quake 3 communities
             | that had been going from 1999 to 2008 because half the
             | people started playing quake live and the other half
             | stopped playing alltogether
        
               | boredemployee wrote:
               | Exactly that!
               | 
               | They just killed a really cool (somewhat toxic)
               | community.
               | 
               | To me Quake World is the best multiplayer game of all
               | time.
               | 
               | But Quake 3 comes next and was really really fun to play.
               | 
               | Quake Champions is a great disappointment.
        
               | newsclues wrote:
               | Quake Live was just Quake 3.
               | 
               | Champions was something different.
               | 
               | The community was on life support, and the attempt (Quake
               | Live) wasn't enough to bring people back to good eSports,
               | as the market had moved on from pure skill based games.
        
               | a_subsystem wrote:
               | It was extremely difficult to play for newcomers. You
               | almost didn't even get a chance to frag old school
               | players once because of the skill discrepancy. I could
               | hang with most of the higher tier guys, but there were
               | some that just seemed nearly invincible. They should have
               | had more resources for developing skills. After I stopped
               | playing, I discovered that some were playing Q3 at ramped
               | up physics speeds in single player. When going back to
               | playing at regular speed, it feels like you're playing in
               | slow motion.
        
               | boredemployee wrote:
               | >> It was extremely difficult to play for newcomers. You
               | almost didn't even get a chance to frag old school
               | players once because of the skill discrepancy.
               | 
               | I think games say a lot about generations.
               | 
               | In the old days you had to persist a lot and be a bit of
               | a "hacker" to play Quake, or at least have basic computer
               | skills. I remember how difficult it was to configure
               | Qizmo for Quake World.
               | 
               | Nowadays everything is ready for you to play and even if
               | you are a beginner you can play with the most
               | experienced. In Quake you can spend 1 year playing and
               | not win a single match.
        
               | gambiting wrote:
               | >>Nowadays everything is ready for you to play and even
               | if you are a beginner you can play with the most
               | experienced. In Quake you can spend 1 year playing and
               | not win a single match.
               | 
               | I mean......saying this as a game developer - this is a
               | good thing. You want people to come in and enjoy the
               | game, and not be frustrated by it. Obviously there should
               | still be a mode somewhere where you can truly test your
               | skills and where the top players hang out(in multiplayer
               | shooters that's usually what the ranked mode is for), but
               | new players should be able to just jump in and have a
               | good time. I believe this is a huge part of why games
               | like Fortnite are so successful - because no matter what
               | is your skill level, you will always have a good time,
               | but it also offers an incredibly high skill level ceiling
               | for people who really want to put in the hours.
               | 
               | >>I think games say a lot about generations.
               | 
               | I'm not sure if that is about generations, more about the
               | market - when Q3 came out the only other major game in
               | that space was Unreal Tournament. Nowadays you have so
               | much choice that if a game frustrates you you can always
               | pick a different one. And the market has been completely
               | "ruined" by gamepass and endless promotions, so people
               | don't have attachment to games like they used to. Sure
               | some of them do if they spent PS50 on a game, but for an
               | increasing number of games and people, that just isn't
               | true anymore. There is no cost associated with trying a
               | game on Gamepass for 20 minutes and abandoning it.
        
               | boredemployee wrote:
               | I 100% agree with you, thanks for your point of view.
        
               | user24 wrote:
               | > I discovered that some were playing Q3 at ramped up
               | physics speeds in single player. When going back to
               | playing at regular speed, it feels like you're playing in
               | slow motion.
               | 
               | That's amazing, like training at altitude but for
               | e-sports.
        
               | tekmate wrote:
               | it's not actually that helpful because a lot of the skill
               | comes from muscle memory and that's not just for aiming
               | but mousemovement also has a significant influence on
               | movement
               | 
               | for example there's something called a circle jump where
               | you use precise mouse movement to get the most efficient
               | angles so that your movement speed is maximized from your
               | first jump
        
               | Eisenstein wrote:
               | Quake 3 was really all about map control. If you can get
               | the cadence down to run through the map and grab all the
               | goodies you will dominate in 1v1.
        
           | cubefox wrote:
           | The new Doom games have little to do with the original Doom
           | gameplay, perhaps because it wasn't that good in retrospect.
           | For Quake there would be more potential for something like a
           | remake.
        
             | TheBigSalad wrote:
             | Strongly disagree that the new Doom games have better
             | gameplay than the old ones. Every fight is a giant monster
             | trap. IMO it showcases the worst aspect of the original
             | doom games.
        
               | slothtrop wrote:
               | > have better gameplay
               | 
               | That isn't exactly what they said.
        
               | webkike wrote:
               | But gunplay and movement is the essence of Doom, unless
               | you're saying that the best part of the original Doom
               | games were the labyrinthine level design
        
               | George83728 wrote:
               | > _unless you 're saying that the best part of the
               | original Doom games were the labyrinthine level design_
               | 
               | Not _the_ best part, but certainly one of the best parts.
               | Doom and Doom 2 did labyrinths _really_ well, much better
               | than wolf3d (wolf 's labyrinths were too samey and dull
               | due to engine constraints) and I think better than nearly
               | any game since. Games started foregoing labyrinths around
               | when Half Life 1 came out (see also: Daggerfall vs
               | Morrowind), I think because labyrinths filter plebs. But
               | if you stick with Doom it'll teach you to have better
               | spatial awareness that trivializes level learning in most
               | other games. The new doom games particularly have linear
               | level design very reminiscent of Half Life with some
               | arena sections interspersed; they don't feel like Doom
               | levels at all (except in very superficial ways, like
               | "mars/hell themed".)
               | 
               | Such modern games lend themselves to navigating levels
               | without maintaining a working knowledge of where you've
               | been; at each instant your navigation choices may be
               | informed by what you see on the screen right then without
               | regard for what you've seen before. You can play Doom
               | that way too, you'll get to the end eventually through
               | brute force, but Doom does an excellent job of
               | encouraging you to do better and develop your skill. If
               | you remember where you are in relation to where you've
               | already been, you can anticipate when a path is looping
               | around to where you've already been before you actually
               | round that corner. Maintaining orientation in this way,
               | especially in a labyrinth, is a skill Doom excels at
               | teaching. When you get good at it, such awareness of the
               | level instills a sense of presence that just can't be
               | conveyed any other way. Most modern games don't try to
               | teach it; they expect that novice players won't be good
               | at navigation and so, in the name of accessibility and
               | mainstream appeal, refrain from challenging those
               | players.
        
               | cubefox wrote:
               | Many early first-person games (pre Wolfenstein 3D) were
               | dungeon crawlers, not shooters, so the labyrinth design
               | of early Id games reflects that heritage. Modern single
               | player shooters have now very much abandoned this
               | approach in favor of linear level design (Half-Life /
               | Call if Duty approach), or they went straight into the
               | "open world" direction (Farcry approach), which also
               | doesn't feature dungeon/labyrinth levels. Closer in terms
               | of non-linear level design is perhaps Metroid Prime
               | (which recently got a remake), but it focuses more on
               | environmental puzzles than on shooting.
               | 
               | There are probably indie games which are close to the
               | original Doom formula. They often feature genres that
               | have been neglected by big studios.
        
           | markus_zhang wrote:
           | The community pretty much brought it to a new height. The
           | custom engine looks cool and the new map packs/mods reflect
           | the height of Quake level design.
        
         | newqer wrote:
         | You never forget your first.
        
         | Xenoamorphous wrote:
         | When it came out I didn't quite like it. I was like, what's the
         | advantage of 3D when it all looks so polygon-y? Duke Nukem "3D"
         | looks better!
         | 
         | The atmosphere was brilliant though.
        
           | [deleted]
        
           | johnwalkr wrote:
           | Have you played the remaster? It has a lot of subtle upgrades
           | (and more polygons of enemies is one of them). It's really
           | good.
        
             | [deleted]
        
             | another2another wrote:
             | I also loved playing Tenebrae Quake on the Mac. Not sure if
             | it's still around though.
        
               | ascagnel_ wrote:
               | It's not, but the DarkPlaces engine [0] reimplements
               | many, if not all, of the realtime shadow features and has
               | an X64 Mac build (but no ARM build, as far as I'm aware),
               | and is still getting active contributions on its Github
               | repo[1].
               | 
               | [0]: https://icculus.org/twilight/darkplaces/index.html
               | 
               | [1]: https://github.com/DarkPlacesEngine/darkplaces
        
           | willvarfar wrote:
           | Duke Nukem 3D was built on the 'build' engine, which was
           | built by a super cool 18yo called Ken Silverman
           | http://advsys.net/ken/ .
           | 
           | Back in the 90s John Carmack was asked "If you could just
           | hire anybody from the 3D world, who would you hire?", and he
           | named Ken http://advsys.net/ken/carmken.htm
        
             | z3phyr wrote:
             | John Carmack, Ken Silverman and Tim Sweeney.
             | 
             | The three legends / rivals of their time (but with mutual
             | respect)
        
             | methodin wrote:
             | Thanks for the link! This really took me back to the games
             | I grew up on that influenced me (haven't heard the names
             | ROTT or Redneck Rampage since the 90's)
        
         | beebeepka wrote:
         | The movement? It was just dull but they fixed it with
         | QuakeWorld.
         | 
         | Bunny hopping is fun until you encounter stairs. They fixed
         | that mechanic in Quake 2 but then everything else about this
         | game is crap. Q3 was OMG, simply amazing
         | 
         | Movement wise, CPM/CQ3 or QuakeLive is where things became fun
         | again
        
           | fatline wrote:
           | The amazing thing about QuakeLive is that it initially ran in
           | a browser window. I'm not sure how it was implemented, but it
           | was amazing and it supported Mac and Linux as well. I wonder
           | why they then decided to make it into a Windows only desktop
           | app.. :-(
        
             | George83728 wrote:
             | > _The amazing thing about QuakeLive is that it initially
             | ran in a browser window._
             | 
             | The performance was complete dogshit. Just simply awful. I
             | had modern hardware at the time which ran both the original
             | Q3A and ioquake3 at hundreds of fps if uncapped but
             | QuakeLive in browser burned my computer up for sub-60 fps
             | even with the graphics turned down. Unplayable. Not to
             | mention they dropped Linux support. QuakeLive made me quit
             | playing Quake. If I sound bitter about it now, you should
             | have heard me then.
        
             | ThatPlayer wrote:
             | I'm pretty sure it was just a browser plugin. So probably
             | native code unlike nowadays when you can get proper 3D with
             | WebGL.
        
               | beebeepka wrote:
               | Yes, it was a plug-in. The game was released
               | simultaneously too early for WebAssembly, and too late
               | for the masses who might have liked it
        
           | Zardoz84 wrote:
           | I'm sorry, but I don't agree with you. Quake 2 was the BEST
           | Quake
        
             | beebeepka wrote:
             | No, it is not. I still play a few matches every now and
             | then.
             | 
             | 1. Movement is weird. Teleports suck immensely.
             | 
             | 2. Weapons are slow to fire, and somehow, even slower to
             | recharge/change. The 15km/h rocket projectiles don't make
             | any sense.
             | 
             | 3. Stock maps are crap. Thank God for ZTN
             | 
             | 4. Has the worst community. Clients and mods are horrible.
             | Zero quality of life stuff
        
               | sjm wrote:
               | Q2 being so slowed down compared to QuakeWorld makes a
               | lot of sense when you read that John Carmack _hated_ the
               | bunnyhopping bug in QW, and wanted everyone to be slow
               | moving Terminators walking down hallways.
               | 
               | I'm with you though, I hated it, and my friends and I
               | quickly went back to QW (+ QWTF) after trying Q2 briefly.
               | I did have a soft spot for Rocket Arena 2 in Q2 though,
               | that was fun.
        
           | drzel wrote:
           | Modern QuakeWorld has the option of enabling 'air step' which
           | allows surfing up stairs. I don't think the deathmatch
           | purists use it, but it's become standard in FortressOne
           | (modern QWTF fork).
        
         | miramba wrote:
         | I bought the recently released dusted up version, it's still
         | fun to play against the bot in DM4.
        
         | divan wrote:
         | I recently tried it on Quest 2 headset. Quite playable in VR!
        
           | cubefox wrote:
           | Really? I thought such shooters with quick movement don't
           | work in VR.
        
             | divan wrote:
             | https://www.youtube.com/watch?v=VKLGyYXvs6I
        
               | cubefox wrote:
               | Yet modern VR games usually don't work like this for some
               | reason.
        
             | mmh0000 wrote:
             | They work REALLY well. Ever since getting my HTC Vive in
             | 2017, and recently upgrading to a Valve Index, I haven't
             | played a non-vr FPS game.
             | 
             | Check out                 PavlovVR (CS:GO ripoff):
             | https://www.youtube.com/watch?v=OPMllOHfxCc
             | Serious Sam VR: https://www.youtube.com/watch?v=3-Qgx70_P8E
        
           | hoherd wrote:
           | Quake 1 was the first stereoscopic game I ever played. Back
           | in the late 90's, some local computer store had a 3D rig with
           | glasses that had LCDs in the lenses that would turn the whole
           | lens opaque. On the CRT, the left eye view would render on
           | one refresh while the right lens was blacked out, and then it
           | would alternate. It was such an amazing effect to see on a
           | 120hz screen.
        
         | jojobas wrote:
         | Quake 2 soundtrack is up there with the angriest, cleanest
         | metal albums in existence.
        
       | idiomaticrust wrote:
       | Did anyone had a situation after entering the portal that it
       | didn't teleport you, but you were in some different space with
       | purple color and you had to move forward to be teleported? I had
       | this once on the DM2 map. I tried to repeat this, but I never
       | succeeded.
        
         | lgl wrote:
         | That should be a known bug on a specific teleport that exists
         | on the DM2 map. Not sure if it's also present on "regular"
         | Quake but it's been on QuakeWorld for as long as I can
         | remember.
         | 
         | On the backroom (where there is Red Armor and Mega Health)
         | there is a teleport that goes to the main (BIG) room of the
         | map.
         | 
         | If you jump just before the teleport and "aim" your jump so you
         | go in the top left corner of the teleport, you'll get stuck
         | inside the teleport but not go through until you move a bit.
         | 
         | Also, staying stuck for too long on that teleport during a
         | game, will drown your player, which should definitely confuse
         | your opponent as there is no water deep enough to drown players
         | on DM2.
         | 
         | Good times! Long live QuakeWorld!
        
           | robertlagrant wrote:
           | DM2 was awesome.
        
           | idiomaticrust wrote:
           | Yes, IIRC it was exactly that teleport. I'll try to repeat
           | this using hint from you :)
           | 
           | I was really confused when I hit that.
        
             | idiomaticrust wrote:
             | I tried on Q1 from steam and the original and I can not
             | repeat. I'll have to check how to run QW these days :)
        
               | lgl wrote:
               | Yeah it's probably qw only. It's pretty easy to get it
               | running these days with the recent clients. You can just
               | download a qw client (ezquake recommended [0]) and
               | extract the executable to your quake folder.
               | 
               | Alternatively you can download nQuake [1], a full pack
               | with most things included except for the non-shareware
               | maps. You can then just place the pak1.pak file inside
               | the id1 folder and make it complete.
               | 
               | Good luck ;)
               | 
               | [0] https://ezquake.com/
               | 
               | [1] https://nquake.com/
        
         | [deleted]
        
       | dmead wrote:
       | i just used to set r_picmip to 15 or whatever an the LG beam
       | fills the entire space.
        
       | kzrdude wrote:
       | What does he mean by "enemy blocking"?
        
         | dharmab wrote:
         | The enemies within the player's field of view but to the side
         | of the single beam are physically blocking the player model
         | from moving. This is a jarring gameplay experience.
        
       | driggs wrote:
       | I parsed this title as "lightning bug gun" and wondered why I
       | didn't recall a bioluminescent insect powered weapon in that
       | game.
        
       | NotYourLawyer wrote:
       | Pretty interesting. Was this code just never tested at all?
        
         | jcl wrote:
         | So, it seems that the intent of the code is to add two
         | parallel, invisible kill beams to augment the main beam. The
         | nature of the bugs are such that the added beams are positioned
         | in roughly the right place, for a certain axis-aligned view.
         | 
         | I'd guess that the feature was tested manually in such a view,
         | and seemed to work OK. And that the feature was subtle enough
         | of a behavior tweak that no one noticed that it didn't work
         | correctly in most other situations, since the main, visible
         | beam worked correctly, and no one could see it killing enemies
         | behind walls.
        
       | kvark wrote:
       | They missed the 3rd(!) bug in those few lines of code? The
       | normalization was done before zeroing out the Z component, so the
       | resulting vector isn't actually normalized.
        
         | [deleted]
        
         | shadowgovt wrote:
         | It turns out you can do a lot of work with non-normalized
         | normal vectors as long as you don't trip over the math that
         | actually cares whether they're normalized.
        
         | tomxor wrote:
         | Yeah that's the first thing that drew my attention, if you
         | normalise and then remove a component... now you know for sure
         | length whatever you are doing is dependent on the direction of
         | the input vector.
         | 
         | I still find vector programming hard though, so if I was
         | writing anything like this I'd always visualise it as part of
         | my testing. i.e temporarily render out the other beams and
         | possibly the intermediate vector as necessary (pretty much what
         | they did in this video). That makes testing easier to verify
         | and debugging way more intuitive.
        
         | jcl wrote:
         | To be fair, bug #1 was that the normalization call had no
         | effect, so the fact that it's also being done in the wrong
         | sequence doesn't actually have a further effect on gameplay.
        
         | isoprophlex wrote:
         | Not saying I never conjure the spaghetti but whoever coded that
         | really was deep into the tail end of a caffeine, coding and
         | sleep deprivation binge ;)
        
           | phoboslab wrote:
           | I've been working with the leaked wipEout source code for a
           | while[1] and I can assure the quality of the Quake source is
           | absolutely stellar in comparison. While Quake's source may
           | not be up to modern best practices, the overall architecture
           | certainly has a lot of structure and thought put into it.
           | 
           | Modifying Quake to run on the Occulus Rift was a breeze[2],
           | compared to the mountains of garbage I have to wade through
           | with wipEout.
           | 
           | [1] https://twitter.com/phoboslab/status/1653707447586922498
           | 
           | [2] https://phoboslab.org/log/2016/05/quake-for-oculus-rift
        
             | sjm wrote:
             | Sure, but there's a big difference between leaked code vs.
             | code cleaned up and officially released over 3 years after
             | launch. Who knows what the Quake source looked like on the
             | date they initially shipped. Quake also remained in
             | development for quite a while, with the latest patch
             | released ~March 1997 (original release June 96), and
             | QuakeWorld last released end of 1998.
        
             | HeckFeck wrote:
             | > the leaked wipEout source code
             | 
             | That's really cool, will you share your efforts anywhere?
             | Love a bit of anti-gravity racing myself. I recommend you
             | listen to the OST whilst coding it for maximum immersion.
        
               | phoboslab wrote:
               | The unlicensed source makes this difficult. My current
               | plan is to trim the game to a demo with one race track,
               | compile it to WASM, put it on my website and get Sony's
               | attention (maybe through Nightdive Studios?) for a proper
               | re-release.
               | 
               | In the likely event that this fails, I'll just YOLO it
               | and put it on Github. After all, Sony didn't care that I
               | published[1] all of wipEout's assets seven years ago.
               | 
               | [1] https://phoboslab.org/wipeout/
        
           | [deleted]
        
           | ChuckNorris89 wrote:
           | _> whoever coded that really was deep into the tail end of a
           | caffeine, coding and sleep deprivation binge ;)_
           | 
           | That's most indie game devs of the period, but more so at id
           | Software which splintered the team during Quake's development
           | due to internal squabbles, causing John Romero and others to
           | leave id.
           | 
           | You can even tell that from the quality of Quake's levels
           | which start with beautifully crafted and intricate levels,
           | and as you approach the end, progress into "whatever, let's
           | just ship it, this is gonna sell" kind of levels that were
           | mostly just boring repetitive filler to pad the play time.
        
             | [deleted]
        
             | rasz wrote:
             | > causing John Romero and others to leave id
             | 
             | afaik Romero was fired for not working. Cubicle walls came
             | down because Romero was playing Doom on the clock instead
             | of making the game(his form of protest for not making an
             | RPG or something). If you look at Quake code most
             | broken/lazy stuff was done by him. Example
             | https://www.youtube.com/watch?v=DEkjDkr0Qmc
        
               | ChuckNorris89 wrote:
               | AFAIK, Romero was a bit full of himself at that point in
               | time seeing himself as a godly game designer. He then
               | went on to start his own company and build the RPG he
               | wanted, Daikatana, which was late, over budget, and
               | flopped big time.
        
             | miramba wrote:
             | Quake is/was a multiplayer game with a single player mode
             | attached for initial training. Or, from a mod creators
             | perspective, a 3D engine with a demo mode for what was
             | possible. Qtest1, the "demo" that came out a few weeks
             | before release, was multiplayer only.
        
               | i_c_b wrote:
               | That's sort of how things ended up, but I don't think it
               | was the intention. Doom and Doom2 were (and are)
               | magnificent single player and co-op games, if you like
               | that sort of thing, which I do (Doom was my lode star
               | when I was working as a gameplay programmer / designer on
               | Soldier of Fortune).
               | 
               | The better single player levels in Quake are actually
               | really intricate and well-designed single player levels
               | too, in exactly the way that Doom levels were great.
               | 
               | Some of the enemy design in Quake is actually pretty
               | good, too, with sharply distinguished silhouettes between
               | enemies, and good discrete gameplay property
               | differentiation between them - well, at least for the
               | zombies, the fiends, and the shamblers. Some of the
               | others are fine, too (scraggs, grunts).
               | 
               | I think the bigger issue is they bit off way more than
               | they could chew.
               | 
               | Specifically, Doom's single player mechanics thrive on
               | having hordes of enemies interacting with highly
               | interconnected levels in interesting ways, making space
               | management a big part of the single player game play.
               | Trying to figure out where you're safe to pick a fight,
               | or how to steer the hordes around to create a space where
               | it's safe to fight, is a big part of the draw. But,
               | because rendering 3d monsters was so expensive compared
               | to 2d sprites, Quake couldn't do hordes when it shipped,
               | and fighting just a few enemies at a time (with their
               | health highly jacked up) was a totally different
               | experience. It could have been made to work, but they
               | would have had to stray a lot further from the Doom
               | gameplay recipe than they did.
               | 
               | And they also would have needed, I think, a lot more
               | monster variety. A single player game with 30 different
               | enemy types that were interesting and differentiated
               | would have been much stronger.
               | 
               | That's my two cents, anyway.
        
             | JD557 wrote:
             | > You can even tell that from the quality of Quake's levels
             | which start with beautifully crafted and intricate levels,
             | and as you approach the end, progress into "whatever, let's
             | just ship it, this is gonna sell" kind of levels that were
             | mostly just filler to pad the play time.
             | 
             | This rings really true to me. I only had played the
             | shareware version of quake and only recently played the
             | full game, and the second half really felt like padding.
             | 
             | Some gimmicks in particular were really overused later on
             | (I specifically recall that at a certain point I could just
             | tell "There's going to be an ogre hidden in this corner").
             | 
             | I'm not sure if there was also some other reasons - maybe
             | they decided to use some of the best designs for the
             | shareware, maybe ran out of space for more enemies or maybe
             | there's just way more nostalgia for the first levels - but
             | I'm happy to see that some people share a similar opinion.
        
               | RobotToaster wrote:
               | They probably didn't expect many people to get more than
               | half way through the game.
        
               | mrob wrote:
               | You can play the episodes in any order, so I expect most
               | people tried all of them.
        
               | ohthatsnotright wrote:
               | Doom, Doom 2, Quake, Quake 2, Descent, Descent 2 and Duke
               | Nukem 3D are pretty much the only games I've ever
               | completed because Steam didn't exist and that was
               | basically all there was to play at the time. Now it's
               | easy to get stuck or bored and move on to something else.
        
               | Sharlin wrote:
               | It was a different time. It's not like today when
               | everybody has a Steam collection full of games played
               | just a couple of hours and then abandoned.
        
               | ChoGGi wrote:
               | I swear I'll finish more of them when I get some free
               | time.
               | 
               | Though it certainly is nicer on my wallet to normally
               | grab games on sale.
        
               | ascagnel_ wrote:
               | I was looking at my Steam library and wishlist last
               | night, in anticipation of the upcoming summer sale season
               | (other storefronts have already begun their summer
               | sales), and I was somewhat disappointed in myself. Even
               | though I try to only buy games on sale, I think I'd
               | likely save money overall by only buying (and finishing,
               | if I'm enjoying them) games at full price when I'm ready
               | to play them vs. speculatively buying games on sale.
        
             | mrob wrote:
             | I disagree that the later levels are filler. Episode 4 is
             | my favorite, because it's the episode that best shows off
             | Quake's excellent movement. It's less cramped than the
             | others, and has better "flow", letting you bunny hop all
             | over the maps with minimal waiting. I agree with the common
             | consensus that it's the ugliest of the episodes, but I
             | think this suits the weird otherworldly theme that Sandy
             | Petersen was going for (influenced by the works of H. P.
             | Lovecraft).
             | 
             | The only real complaint I have is the use of the Spawn
             | enemy, which is generally considered the worst designed
             | enemy in the game. But the enemy placement in episode 4 has
             | the advantage that it makes relatively little use of the
             | Ogre, which I consider the second worst enemy, because it
             | has too much HP for something so common, and is too
             | predictable on Nightmare difficulty (to the point that some
             | people say Hard difficulty is actually more difficult than
             | Nightmare).
        
             | i_c_b wrote:
             | "You can even tell that from the quality of Quake's levels
             | which start with beautifully crafted and intricate levels,
             | and as you approach the end, progress into "whatever, let's
             | just ship it, this is gonna sell" kind of levels that were
             | mostly just boring repetitive filler to pad the play time."
             | 
             | IIRC (this is well-documented if you want to double check),
             | Tim Willits made most of the Episode 1 maps, John Romero
             | made most of the episode 2 maps, American McGee made most
             | of the Episode 3 maps, Sandy Peterson made most of the
             | episode 4 maps, and John Romero made most of the level 1,
             | military base themed maps in each episode.
             | 
             | The episode 4 maps are often barren, lacking in details,
             | and missing much of the beautiful interconnections of
             | earlier maps... but this is also true of Peterson's maps
             | from Doom (he did a lot of episode 3 in the original Doom,
             | IIRC). So I think it's more of "this guy might be a strong
             | game designer in a lot of other contexts, but the specific
             | needs of making cutting edge Doom/Quake style maps isn't a
             | great fit for him".
             | 
             | I was at Raven Software at the transition from the Doom
             | engine and other 2.5D engines to Quake (and then Quake 2,
             | and then Quake 3, and then Doom 3), and there were a number
             | of existing designers who were fine game designers in
             | earlier, 2d contexts who found their skills severely out of
             | sync with the changing demands of 3d map making, and most
             | of them eventually had to transition to other roles or
             | leave the industry.
        
               | badsectoracula wrote:
               | FWIW while i also found Petersen's maps on the weird side
               | geometrically, at the same time i think they were among
               | the most interesting to play (both in Doom and Quake) as
               | he often tried to come up with various gameplay tricks
               | and traps to break the "mold".
               | 
               | His Quake maps especially give me the impression that he
               | was more into trying to come up with ideas on what is
               | possible for the player to do in the freedom allowed in
               | 3D space than how to make a good looking environment
               | (especially in Quake's theme that didn't really have to
               | conform to any realistic constrains and could have shapes
               | floating in space, physically impossible architectures or
               | whatever).
        
               | i_c_b wrote:
               | I think there's a couple of orthogonal issues here.
               | 
               | One of them is the nature of interactivity in the levels
               | themselves. There's a spectrum between having a game
               | grammar made of distinct discrete interactive reusable
               | objects and then building unique situations by assembling
               | them in interesting ways, versus having (essentially)
               | unique scripted traps or interactive things or set pieces
               | that only show up in one place. Older action games that
               | inspired Doom tend to draw from that former tradition; a
               | lot of FPS games that came after Quake tended to go more
               | down that second road. Quake's trigger system
               | specifically opened up the door to a rudimentary kind of
               | visual scripting that made the latter style of design
               | more possible in a way that wasn't possible in Doom
               | (although it was possible in Hexen via HexenC(?)). I
               | think you could say that that style of design really came
               | more into its own with Half-Life, which foregrounded
               | unique interactivity grounded in very specific, themed
               | levels much more clearly. Doom at its best seems like
               | it's much more in the design space of, say, Robotron and
               | old Mario games. Fewer unique set pieces, much more focus
               | on discrete interactive toys to be recombined... and
               | given id's background with Commander Keen and their
               | earlier recreation of the first level of Mario 3, this
               | design influence shouldn't be a surprise. Anyway, Quake
               | feels like it is at the intersection of these two styles
               | of design.
               | 
               | I think it is true that Peterson did try to go more down
               | that second road of design in the episode 4 maps in a way
               | that there was less of in other maps, and that it
               | interesting.
               | 
               | But the other thing that sticks out to me more so, in
               | terms of level design, is about the way the space is
               | shaped. A lot of the very best Doom and Quake levels have
               | a tendency of having different parts of levels intersect
               | and interact in interesting, playful ways. The order that
               | you see areas is different from the order that you hear
               | areas is different from the order that you can attack
               | into or interact with areas is different from the order
               | you can move through areas is different from the order
               | that different kinds of enemies can move through areas or
               | attack areas. And that changes as you progress through a
               | level, get keys, and activate switches. There's a
               | tendency for levels to start somewhat linear and movement
               | constrained but give information about later areas in a
               | somewhat more non-linear, tantalizing way, and then as a
               | player progresses, for the player's movement in a level
               | to become more like a multiply connected graph as
               | switches, keys, and activated lifts make a lot of one-way
               | paths become two-way. And that style of design plays to
               | the strengths of Doom and Quake using BSPs for levels as
               | their fundamental data structure - BSPs specifically make
               | these kinds of weird and surprising visual and physical
               | intersections between areas manageable in terms of
               | computational performance on 90's era hardware.
               | 
               | Whether or not someone considers the design approaches I
               | just outlined appealing is fundamentally an aesthetic
               | issue, obviously - there's no one right way to enjoy a
               | game. But my general sense is that the Sandy Peterson
               | maps in Doom and Quake tend to explore these approaches
               | to play much less than the maps made by other designers.
        
             | phoboslab wrote:
             | You assume that the quake maps were built sequentially, but
             | that's not the case. Since this was all new technology, the
             | "best" maps were conceived at the end of development, after
             | the team was familiar with the tech. You want those maps to
             | be at the start of the game, as it's the first thing the
             | player sees.
             | 
             | Also, the distinct style of the last episode is easily
             | explained by the fact that all of its maps were built by
             | Sandy Petersen. E3 was mostly American McGee, while John
             | Romero and Tim Willits worked on E1 and E2.
             | 
             | I'm not a fan of Petersen's maps either, but they are
             | regarded (and liked) as quite unique, compared to the rest
             | of the game.
        
               | jasonwatkinspdx wrote:
               | Yeah, I didn't like Petersen's levels much at the time,
               | but looking back on them later as a designer (I worked on
               | a couple doomed Unreal projects) I can see he was trying
               | to be as creative as possible within the limits of the
               | engine, as far as getting away from "find the yellow key"
               | style design that frankly, everyone was already bored of.
               | 
               | I had a pirate pre-release copy of Quake that I'd wished
               | I'd saved. But in any case I do remember there were
               | changes to the maps all over the game, so the levels were
               | definitely not done in order. The biggest difference I
               | remember is the ending in the final game is totally
               | different. The pre-release had a more Doom style waves of
               | monsters fight on a sort of giant terrace. I didn't
               | particularly like that doom style ending, but also felt
               | the release game's ending was kind of an anti climactic
               | gimmick.
        
               | sjm wrote:
               | Yeah, the boss at the end of episode 1 (e1m7, House of
               | Chthon) was way more interesting than end.bsp, and I
               | remember really blew me away as a kid. Makes sense based
               | on what others were saying about having the best levels
               | up front.
        
             | drzel wrote:
             | Yep I'm in this code base a lot, and there's a lot of this.
             | Some of it by John's own hand. But you know, if it works,
             | it works. I've added plenty of my own bugs in the same
             | spirit.
        
               | dadarecit wrote:
               | Adding bugs intentionally? Based
        
           | Eisenstein wrote:
           | Good chance it was John Carmack, probably one the top 10
           | programmers of all time. He basically built the Quake engine
           | himself. There is a pretty decent analysis of it here:
           | 
           | * https://fabiensanglard.net/quakeSource/index.php
           | 
           | I recommend checking it out.
           | 
           | EDIT: i was thinking of the analysis done on Quake 2, which
           | is more about the engine:
           | 
           | * https://fabiensanglard.net/quake2/index.php
           | 
           | while the one about is regarding the multiplayer system,
           | which is still an amazing bit of dev.
           | 
           | Github:
           | 
           | * https://github.com/id-Software/Quake
        
             | hardware2win wrote:
             | >probably one the top 10 programmers of all time
             | 
             | By what metric?
             | 
             | Popularity? PR? Net worth? Complex software? Competitive
             | programming? Impact?
             | 
             | For every "top" SE there are tens of similarly skilled
             | engineers that you have never heard of
        
               | dadarecit wrote:
               | Amount of tickets closed on JIRA lmaoo
        
               | steve_mcdougall wrote:
               | [dead]
        
               | gokaygurcan wrote:
               | Please no. I know it's a joke, but please.
        
               | dadarecit wrote:
               | I know, the truth hurts
        
               | danmur wrote:
               | LoC, the ultimate metric
        
               | Eisenstein wrote:
               | > By what metric?
               | 
               | His record speaks for itself. I know it is tough to
               | imagine what it was like programming 3D engines meant to
               | run on graphics non-accelerated PCs running DOS, without
               | the internet knowledge or collaboration available to us
               | now, but the stuff he was doing was absolutely
               | revolutionary. He basically created PC gaming as we know
               | it today by creating a market for 3D accelerators and
               | before that by doing it in software very well. He also
               | did this stuff in an record amount of time. From
               | Wolfenstein 3D (1992) to Quake (1995) he made three
               | separate engines which each revolutionized the industry
               | one after the other.
               | 
               | EDIT: The metric I am using is 'impact' in an industry
               | and in society in general -- the impact of Doom and Quake
               | on culture and the adoption of computers and PC gaming
               | and many other things can not be overstated. You can draw
               | a direct line from Doom to Quake to nVidia to CUDA and
               | machine learning if you want.
        
               | gopher_space wrote:
               | > The metric I am using is 'impact' in an industry and in
               | society in general
               | 
               | If you correlate against lines of code written over a
               | lifetime then John Brunner and Vernor Vinge bubble to the
               | top. They're my go-to examples for people who think that
               | literature reviews "don't matter".
               | 
               | Kind of a fun exercise since we get to see all the
               | different values out there in the world.
        
               | pdntspa wrote:
               | I remember he dropped Doom 3 on us with fully dynamic
               | lighting and shadows in like fucking 2004 or something. I
               | remember getting my hands on the engine leak (in 2003?)
               | and absolutely getting my mind blown to see shadows
               | dancing on the wall (at like 8 FPS on my athlonXP
               | geforce4 rig) at something resembling real-time, in the
               | same map that was used at the Apple developer demo where
               | Steve Jobs announced mac support.
               | 
               | All of Carmack's engines were YEARS ahead of their time.
               | Everyone was doing baked lighting and employing various
               | gimmicks for dynamic-looking shadows, and this dude (and
               | his team) comes in and destroys everyone with this
               | fully-, actually-dynamic lighting system. I don't think
               | anyone else even came close until Crysis in 2007.
               | 
               | If that isn't a top 10 programmer performance than I
               | don't know what is.
               | 
               | 2001 macworld demo:
               | https://www.youtube.com/watch?v=80guchXqz14
        
               | JohnFen wrote:
               | > If that isn't a top 10 programmer performance than I
               | don't know what is.
               | 
               | Nobody's saying he isn't brilliant. But it's not possible
               | to declare him as a "top 10" programmer without actually
               | taking into account all the other programmers.
               | 
               | I think there are at least 10 other programmers that
               | you've never heard of, but that have had as much or more
               | impact on society in general as Carmack did.
               | 
               | Isn't it enough to just say he's brilliant? Ranking
               | programmers is a fool's errand and serves no purpose
               | other than to devalue other brilliant programmers.
               | 
               | (Also, I think measuring how brilliant someone is by how
               | much impact they've had on society doesn't make much
               | sense. Those are two entirely different things.)
        
               | pdntspa wrote:
               | I don't think anyone here means top 10 in a strict
               | ranking sense of the phrase. But I think Carmack very
               | easily has a place amongst the pantheon of programming
               | gods, whether you measure by 'brilliance' (whatever that
               | means) or impact. He has done a ridiculous amount of
               | innovation over the years, and set the pace for game
               | engine and real-time rendering development for something
               | like 20 years.
        
               | JohnFen wrote:
               | > I think Carmack very easily has a place amongst the
               | pantheon of programming gods, whether you measure by
               | 'brilliance' (whatever that means) or impact.
               | 
               | I guess? I don't know. There are so many programmers that
               | have had a much greater overall impact and such than
               | Carmack has (which in no way takes away from Carmack's
               | accomplishments!) that I find it hard to say either way.
               | 
               | That's part of why I think trying to rank people is a bit
               | strange. I doubt that there is even much consensus on
               | what it takes to be a "programming god" in the first
               | place.
               | 
               | But I do agree that Carmack is great!
        
               | pdntspa wrote:
               | Like who? I can think of Brian Kernighan, Dennis Ritchie,
               | Linux Torvalds, Steve Wozniak, Ada Lovelace, Grace
               | Hopper, Richard Stallman, Edsger Dijkstra, Bill Gates,
               | John Carmack. Maybe Alan Turing. With the exception of
               | the real OG's I think Carmack fits in that list quite
               | nicely.
        
               | ionwake wrote:
               | Excellent summary
        
               | magicalhippo wrote:
               | An interesting read into some of the insights that
               | Carmack had which lead to the revolution that was Quake
               | can be found in the "Ramblings in Realtime" articles[1]
               | by Michael Abrash[2], who helped John develop Quake's 3D
               | engine. Abrash wrote the rather famous "Graphics
               | Programming Black Book", now available for free[3].
               | 
               | [1]: https://valvedev.info/archives/abrash/
               | 
               | [2]: https://en.wikipedia.org/wiki/Michael_Abrash
               | 
               | [3]: https://github.com/jagregory/abrash-black-book
        
               | ThrowawayR2 wrote:
               | Hell no. As skilled as Carmack is as a coder, he falls
               | well below the pioneers for early operating systems and
               | programming language compilers and development in terms
               | of industry and societal impact. Even Bricklin's VisiCalc
               | and its descendants resulting in boring old modern
               | spreadsheet software has a better claim to lasting
               | societal impact than Carmack's 3D engines.
        
               | [deleted]
        
               | cubefox wrote:
               | The closest guy to Carmack today seems to be Brian Caris,
               | who developed virtualized geometry[1], a rasterization
               | based rendering technique where the geometric detail of
               | static objects is adjusted to the screen resolution in
               | real time. There is another talk (can't find it right
               | now) where he mentions Carmack as an inspiration. I
               | wonder what Carmack would be working on today if he was
               | still in the game engine business.
               | 
               | [1] https://advances.realtimerendering.com/s2021/Karis_Na
               | nite_SI...
        
               | nailer wrote:
               | Who made DLSS? Using ML to denoise ray tracing is
               | massive.
        
               | cubefox wrote:
               | I think DLSS doesn't do denoising. DLSS uses an ML
               | algorithm to upscale frames using additional information
               | like z buffer and motion vectors. Denoising is used to
               | drastically reduce the number of required rays for ray
               | tracing. I would guess denoising is done first, using a
               | non-ML algorithm, and DLSS is done afterwards.
        
               | nailer wrote:
               | DLSS does the upscaling since DLSS 1.0 see 5 mins 30 at
               | the DLSS announcement https://youtu.be/pgEI4tzh0dc
               | 
               | It adds frames since I think 3.0.
        
               | barbariangrunge wrote:
               | He was a little bit. I wonder what he was up at meta
               | before switching to agi
        
               | Cthulhu_ wrote:
               | There's some really big innovations happening in e.g.
               | rendering like that; I wouldn't be surprised if the
               | complexity and work involved in just Nanite is 10x that
               | of the whole Quake engine.
               | 
               | Similarly there's the work nvidia is doing, using AI
               | technology to upscale graphics instead of rendering
               | things at 4K.
        
               | itsagavin wrote:
               | The idea is that, the derivative came after the virtuoso.
               | Of course what came after is more complex costs more
               | takes more is more impressive blah blah. Dismissing those
               | that thought the thought or solved for a problem before
               | it was, is such a dumb thing people do.
        
               | vinyl7 wrote:
               | Hobbyists have already made their own implementation of
               | Nanite. It's not that complicated.
        
               | ehaliewicz2 wrote:
               | It has been over a year since the algorithm has been
               | explained in quite a bit of detail.
               | 
               | Hobbyists make complicated things quite regularly,
               | although I don't know about 10x quake.
               | 
               | 10x a quake for modern hardware, maybe (could be quite
               | simple)
               | 
               | 10x software rendered dos quake with loads of asm,
               | probably not.
        
               | ahahahahah wrote:
               | In that sense, neither is the quake engine.
        
               | nailer wrote:
               | He popularised BSP for FPS which meant doom ran faster
               | than SystemShock, despite having more complex level
               | geometry
        
               | paulryanrogers wrote:
               | Was Doom's geometry more complex? No room over room, no
               | slopes, vertical axis was awkward. Feels like apples and
               | oranges, even before considering the gameplay was also
               | very distinct between them.
        
               | xen2xen1 wrote:
               | Impact. He pretty much invented the FPS genre by reading
               | a paper about Z buffers from some guy in the Navy, IIRC.
               | All the Call Duty kiddies owe him a debt. Who knows how
               | long it would have taken for that whole genre to get
               | going without him?
        
               | otikik wrote:
               | I don't think a deep analysis is required here. It is
               | quite obvious that he'll not be the top-10 programmer on
               | every single metric that one can imagine.
               | 
               | He's very good. Enough people agree. I recommend letting
               | it at that.
        
             | Agentlien wrote:
             | I loved the video, I love this type of analysis of bugs and
             | glitches. This comment, however, just makes me nervous.
             | It's like my innermost worry.
             | 
             | I spend so much time trying to do a good job which I can be
             | proud of and yet I always know there are bugs and I just
             | hope not too many players notice and get annoyed by them.
             | 
             | And here we are, pointing out poorly written code in
             | practically ancient software and attributing it to one
             | particular programmer. Of course, Carmack has more than
             | shown his worth throughout his career. But I dread the
             | thought of a forum post pointing out mistakes I've made at
             | work like this.
             | 
             | It's part of why it took me so long to dare publish
             | articles about fun stuff I've done at work.
        
               | Eisenstein wrote:
               | I found this looking through Carmack's .plan files.
               | Perhaps you will appreciate it.
               | 
               | Snippet:
               | 
               |  _I want bug free software. I also want software that
               | runs at infinite speed, takes no bandwidth, is flexible
               | enough to do anything, and was finished yesterday._
               | 
               |  _Every day I make decisions to let something stand and
               | move on, rather than continuing until it is "perfect".
               | Often, I really WANT to keep working on it, but other
               | things have risen to the top of the priority que, and
               | demand my attention._
               | 
               | * https://raw.githubusercontent.com/ESWAT/john-carmack-
               | plan-ar...
        
               | otikik wrote:
               | Perhaps the Living Videotex slogan can help you:
               | 
               | -- "We Make Shitty Software... With Bugs!"
               | 
               | http://scripting.com/davenet/1995/09/03/wemakeshittysoftw
               | are...
               | 
               | I think it is a good mindset to have. We must all assume
               | that software is an imperfect thing done by imperfect
               | beings. Even celebrate it.
               | 
               | On this particular case, I recommend concentrating not on
               | the fact that there was a bug, but on the fact that the
               | code written so many years ago _is still relevant for
               | someone today_. Focus on that. Try to make something that
               | someone will find a bug in 30 years from now.
        
               | Eisenstein wrote:
               | Honestly why care? Everyone writes bugs -- the thing is
               | that Quake works fine -- if some quick runners want to
               | exploit a bug 32 years later to impress each other with
               | runs, after having dissected the code to bits to find
               | glitches, is that really a bad mark on anyone? I don't
               | remember anyone complaining about lightning gun glitches
               | when Quake was being played.
        
               | acomjean wrote:
               | I agree. Code that works well is a good thing even if not
               | perfect and super optimized.
               | 
               | I'm not an elegant coder. My code isn't perfect. It does
               | run however and is pretty efficient mostly bug free. It
               | does it's useful thing and I can be proud of that.
               | 
               | Having gone through enough code reviews to know there is
               | a huge amount of polish one can give code. It's a trade
               | off between perfect and Good enough.
               | 
               | I'm hopeful new languages and patterns leveraging
               | libraries help make our code better or at least let us
               | write more if it.
        
               | George83728 wrote:
               | If anybody cares enough to pick over your code 30 years
               | later, that probably means you were very successful at
               | what you did; at the very least you had a hand in
               | creating something people care about, which is more than
               | most programmers can say.
        
               | tomashubelbauer wrote:
               | People speed run this game. Understanding every line of
               | it is a part of the process and the reason people care
               | who wrote what line is because it has a lot of culture
               | and history associated with it. If you work on stuff that
               | will make this kind of impact that makes people care like
               | this you will feel proud having your bugs picked apart,
               | not ashamed for having put them there in the first place.
               | And if you don't rest easy knowing any bug you ever make
               | probably won't see a thousandth of the effort being put
               | into understanding and attributing it.
        
             | ndepoel wrote:
             | I'm not sure if it would've been John Carmack in this
             | particular case. He was more concerned with the engine and
             | rendering side of things, less with the gameplay logic
             | stuff. More likely it would've been either John Romero or
             | John Cash who wrote this code, but it's hard to say for
             | sure. Best thing we can hope for is that John Romero
             | pitches in with his impeccable memory :D
        
               | midasuni wrote:
               | So the only requirement to work at iD back in the day was
               | to be called John?
        
               | cfj wrote:
               | Or Carmack.
        
               | brookst wrote:
               | That's what my buddy said, yeah. Good old John Manyjohns.
        
               | klodolph wrote:
               | For those who haven't seen Buckaroo Banzai--all the
               | people working at Yoyodyne Propulsion are named John.
               | It's a plot point.
        
               | TechBro8615 wrote:
               | It seems like Amazon has the same idea when promoting
               | people named Andy or Jeff to executive roles.
        
               | i_c_b wrote:
               | You can read Carmack's .plan archive from 1996 here, if
               | you're so inclined:
               | 
               | https://github.com/ESWAT/john-carmack-plan-
               | archive/blob/mast...
               | 
               | It's a _fascinating_ snapshot into Quake's development.
               | 
               | I have no idea if his .plan is a record of what he,
               | specifically, was doing, or if he was just capturing what
               | the programming team was doing, but at the very least, it
               | makes clear that he was aware of huge amounts of very
               | highly specific game code issues as they were being
               | worked on and was almost certainly deeply involved.
        
               | baal80spam wrote:
               | Wow, this link is something else - you can track what
               | problems he tackled and what he worked on DAILY.
        
               | Solvency wrote:
               | Guessing you're on the younger side? I used to read these
               | voraciously as a 11 year old. Felt like a magic window
               | into the game industry.
        
               | sillysaurusx wrote:
               | Hello fellow I-was-once-11-and-fascinated-by-.plan! I
               | wasn't sure if I was the only one. St Louis in 2000 made
               | it seem like there were only a handful of people
               | interested in programming at all.
               | 
               | Hmm... 11 would put me at 19999, so I must've been more
               | like 12 or 13. I remember that's when I started taking
               | gamedev seriously.
        
               | mysterydip wrote:
               | "Hi Sandy, hope you're doing well."
        
             | hsjqllzlfkf wrote:
             | > Good chance it was John Carmack, probably one the top 10
             | programmers of all time.
             | 
             | Where would you rank Linus Torvalds?
        
               | otikik wrote:
               | Empathy is a trait that I value highly on a programmer.
        
               | account42 wrote:
               | Empathy and faux politeness are different things.
        
               | otikik wrote:
               | I'm not disagreeing. In fact I would say that faux
               | politeness is a strong sign of low empathy.
               | 
               | On this particular case, Linus has publicly admitted that
               | he struggles with empathy.
        
               | fragmede wrote:
               | It's tough to decide if the Linux kernel or git is his
               | bigger contribution to society.
        
               | yCombLinks wrote:
               | Git isn't even the best DVCS, it won on the back of
               | github more than it's own strengths.
        
               | ChoHag wrote:
               | [dead]
        
               | Eisenstein wrote:
               | In the top 10 as well. In fact not too long ago I was
               | asking someone to rate some piece of code and used 'from
               | Linus / Carmack to (something shitty I don't remember)'
               | as the metric.
        
               | TechBro8615 wrote:
               | It would be fun to make a game that showed you random
               | code snippets and asked you to identify the author.
        
               | [deleted]
        
               | Cthulhu_ wrote:
               | I honestly have no idea how good Linus is as a
               | programmer; he's proven his worth as a project manager,
               | he seems to know a thing or two (to make an
               | understatement) about operating systems, but I don't know
               | if he's a good programmer.
        
             | haburka wrote:
             | Since I'm actually a top 5 programmer of all time (self
             | decided) I can say with confidence that Carmack is actually
             | a top 50 programmer but no where near the top 10. He didn't
             | use ternaries nearly enough.
        
               | [deleted]
        
             | ben7799 wrote:
             | Ranking programmers is as dumb as ranking musicians.
             | 
             | Carmack is great but you can't really say he's better than
             | say some guy you've never heard of who wrote a bunch of
             | absolutely brilliant algorithms inside a missile defense
             | system and it's all super secret. Or someone who did
             | amazing work on a compiler Carmack used or brilliant work
             | in an OS kernel that you're never going to know about, or
             | some AI code, or something deep within a stock exchange's
             | platform.
             | 
             | Carmack's perceived greatness is elevated because almost
             | 100% of what he has worked on is directly visible to the
             | average consumer.
        
               | Eisenstein wrote:
               | > Ranking programmers is as dumb as ranking musicians.
               | 
               | If a musician had a noticeable impact on culture and was
               | prolific, I don't see why we can't put them in a bracket
               | of [in top #]. The ranking is really just to illustrate
               | my respect for his work, accomplishments, insightful
               | communications, and continued relevance as well as impact
               | on my life and those around me. You can call that 'dumb'
               | if you like, but I am human just like you and am not
               | above placing some people's accomplishments above those
               | of others.
        
               | [deleted]
        
               | saltcured wrote:
               | To me, Carmack equates more to an engineer who designed
               | wild equipment used by sound engineers and musicians.
               | Aside from Torvalds or Wozniak, I think most programmers
               | are unsung, regardless of how much their products impact
               | the world.
               | 
               | Most programmers are quickly forgotten if they were ever
               | known in the first place. In terms of cultural impact,
               | think of the programmers behind our PC or mobile
               | operating systems, major consumer app categories like
               | spreadsheets, word processors, photo or video editing,
               | etc. Of course some nerds of computing history can cite
               | folks behind all these, but it is niche trivia to most of
               | the population.
               | 
               | It also seems like an era coming to a close where a solo
               | programmer can deliver an impactful product. Who gets the
               | credit instead? Usually an executive or entrepreneur gets
               | the credit. Sometimes this person programmed early on,
               | but often they either transitioned to management or
               | started there and other programmers were responsible for
               | delivering the product we eventually know.
        
               | Eisenstein wrote:
               | > It also seems like an era coming to a close where a
               | solo programmer can deliver an impactful product.
               | 
               | This is true but you have to look at it differently.
               | There are generally two ways of looking at history: the
               | 'great man'[0] theory, or the 'of the times' theory.
               | 
               | If you look at it one way Woz and Carmack and Torvalds
               | and the others were instrumental in shaping their
               | surroundings and without those specific people we would
               | have lost out on basically the entire technological world
               | as we know it.
               | 
               | If you look at it another way, they were inevitable --
               | the times were such that it was bound to happen (or at
               | least extremely likely) because of a great confluence of
               | events that could never be arranged or predicted, and if
               | Woz had electrocuted himself making the Apple I power
               | supply module then someone else would have done something
               | similar around the same time and we end up at the same
               | spot (but Steve Jobs becomes a moderately successful Bay
               | Area Benz dealer and we all use Blackberry phones with
               | physical keyboards in 2023).
               | 
               | The era of an individual engineer or programmer making a
               | paradigm shifting breakthrough in his or her basement may
               | be over, but that just means the times have shifted into
               | another dynamic. What that is can not be predicted, but
               | if we do survive the oncoming crises upon us and somehow
               | also never end up turning the planet into smoldering
               | radioactive ash over a shipping lane dispute or
               | something, there will be a time when such a person can be
               | expected to emerge and do it again.
               | 
               | [0] excuse the masculine nature of this terminology, but
               | unfortunately that is what it is called, though I haven't
               | formally studied history in a while and it could have
               | changed
        
               | JadeNB wrote:
               | > Ranking programmers is as dumb as ranking musicians.
               | 
               | But also as much fun for people with appropriately
               | specialized interests, so it'll probably keep happening.
        
               | jonhohle wrote:
               | Coincidentally (or not), Carmack started Armadillo
               | Aerospace and was working rocket control and navigation
               | systems. So...
        
               | [deleted]
        
               | hyperman1 wrote:
               | Carmack's main superpowers seem to be tons of hard work,
               | not raw intelligence
               | 
               | 1) Perseverance and focus: He kept rewriting the quake
               | renderer, pushing it faster and better, where other
               | people had long ago settled for a lesser variant or given
               | up.
               | 
               | 2) Try everything, even the stupid ideas. When he wrote
               | quake, the wisdom was that the FPU was way to slow for a
               | game. He managed to do z-divisions for blocks of 16
               | pixels on it, while the integer code spit out the pixels.
               | 
               | 3) Attention to detail. The doom span renderer was sub
               | pixel precise, which was pretty unique for its time. It
               | looked better in a hard to define way.
               | 
               | 4) Code quality. Doom and quake are very readable, very
               | portable and heavily documented. The average 1-person
               | codebase tends to be messy and undocumented, as nobody
               | else ever takes a look. On the other hand, plenty of
               | fixmes in there. It was unabashedly special cased where
               | he could get away with it.
               | 
               | 5) He consumed whatever idea he could get. BSPs were an
               | obscure research trick before he took them and ran with
               | it.
               | 
               | He had huge holes in his 3D knowledge when writing doom,
               | as he admits himself. He didn't care until quake forced
               | him to level up. But he could look in the mirror, say he
               | needed to do better, and learn the extra things when he
               | had to.
               | 
               | I don't know if Carmack is that much smarter than the
               | average HNer, but he surely works a lot harder. And
               | that's an even better compliment, in my book
        
               | at-fates-hands wrote:
               | Not sure where I read it, but someone writing about the
               | history of DOOM basically said John was a machine and the
               | machine ran on Diet Coke and pizza. As long as he had
               | both, he could remain in the zone indefinitely, which is
               | pretty crazy when think about all the things he
               | accomplished that you listed.
        
               | baal80spam wrote:
               | > Not sure where I read it, but someone writing about the
               | history of DOOM basically said John was a machine and the
               | machine ran on Diet Coke and pizza.
               | 
               | I'm pretty sure I've read it in "Masters of Doom".
        
       | mock-possum wrote:
       | That's crazy. I've played a bunch of quake and never knew about
       | that.
        
       ___________________________________________________________________
       (page generated 2023-06-15 23:02 UTC)