8 ms·
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 nor
by kvark 3y ago
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.
- tomxor 3y agoYeah 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.
- shadowgovt 3y agoIt 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.
- deleted 3y ago[deleted]
- jcl 3y agoTo 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 3y agoNot 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 ;)
- deleted 3y ago[deleted]
- ChuckNorris89 3y ago>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.
- miramba 3y agoQuake 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 3y agoThat'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.
- Eisenstein 3y agoGood 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 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 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 https://github.com/id-Software/Quake
- ben7799 3y agoRanking 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.
- deleted 3y ago[deleted]
- Eisenstein 3y ago> 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 3y ago[deleted]
- phoboslab 3y agoI'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 https://twitter.com/phoboslab/status/1653707447586922498 [2] https://phoboslab.org/log/2016/05/quake-for-oculus-rift https://phoboslab.org/log/2016/05/quake-for-oculus-rift
- sjm 3y agoSure, 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 3y ago> 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 3y agoThe 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/ https://phoboslab.org/wipeout/
- HeckFeck 3y agoThat's class! Would you object if I typed up a quick review and listed it on my Well Made Web gallery? I'd slot it in under Artistic https://wmw.thran.uk/artistic/index.html https://wmw.thran.uk/artistic/index.html