Live data from Hacker News

Source code for Quake 2 rerelease

github.com

191–200 of 232 posts

Re: Source code for Quake 2 rerelease

#192

Earlier quoted context omitted.

That garbage code brought about the speed run culture, highlighted by charity events like Awesome Games Done Quick. The speed runner and their crew on stage will explain the latest level skips, wall clipping to avoid tedious areas, enemy weaknesses and exploits, and frame perfect input strings needed to accomplish those. And some will perform speed runs blindfolded with only the audio cues to work with.

That hardly has to do with code quality, but instead that some edge-case "features" were not anticipated by the game designers, programmers and QA team, but "discovered" later by speedrunners.

Sometimes it is about code quality. Defensively written, well-documented and well-tested code would not be as likely to suffer from such bugs.

It's not just subtle floating-point errors either, but also outright wrong maths that appears to work (see [1] for an example), memory leaks [2], buffer overflows [3] etc.

[1] https://www.youtube.com/watch?v=4gNYTqn3qRc

[2] https://news.ycombinator.com/item?id=20410166

[3] https://arstechnica.com/gaming/2021/03/how-to-beat-paper-mar...

Re: Source code for Quake 2 rerelease

#193
post #5

I saw grumbling elsewhere about how the re-release doesn't include a Linux version, but here they are with the source and it claims to be tested with clang. Big props to iD for sticking to their principles.

This is only the game code and not the engine source code, or am I missing something ?

Re: Source code for Quake 2 rerelease

#194

Earlier quoted context omitted.

I wish I could find a use for that, it is a funny idea. Unfortunately in a world where all of you stuff is in terminals, having one special drop down one is less useful.

I use Yakuake (KDE's equivalent) for my password manager at work. I find most DE's painful without that ability. The main exceptions are i3/sway or cwm, where I just launvh a terminal and then kill it.

I think that must be it, I use i3, so popping open a shell is always an easy option.

Re: Source code for Quake 2 rerelease

#195

Earlier quoted context omitted.

It did it all first . They did a lot to open the idea that game mods could be more than cheats and cracks, too. I still remember the grenade launchers and wild modded grenades fondly. the bouncing ones were so much fun in hallways.

One of my favorite modes for Quake II: Weapons of Destruction.

thanks for the prompt, i looked and found: https://github.com/ulatekh/quake2-WOD

Re: Source code for Quake 2 rerelease

#197
post #193
post #5

I saw grumbling elsewhere about how the re-release doesn't include a Linux version, but here they are with the source and it claims to be tested with clang. Big props to iD for sticking to their principles.

This is only the game code and not the engine source code, or am I missing something ?

Yes it seems to be missing the rendering code. game.h defines a generic list of imported function pointers which have no implementation in the repo.

Re: Source code for Quake 2 rerelease

#198

Earlier quoted context omitted.

Talking about clear and coherent, does anyone know if there is a deeper reason for using `break' and `continue' instead of pure structured programming? The snippet i = ent->client->chase_target - g_edicts; do { i++; if (i > maxclients->value) i = 1; e = g_edicts + i; if (!e->inuse) continue; if (!e->client->resp.spectator) break; } while (e != ent->client->chase_target); for instance, from the function ChaseNext in t…

I think it's debateable which is clearer. Your while condition requires some mental parsing of the booleans whereas the original can be analysed one at a time. I'd say I prefer the original.

Agreed. I think it's also a little easier to understand what's going on when stepping through the code in a debugger.

Re: Source code for Quake 2 rerelease

#199
post #74
post #40

Incredible and just sent me way back to the nineties. To be fair, I'm talking about the first Quake game here. I had a PC rig on my bedroom floor which as I recall was a Pentium 166MMX, and my friend came over with a similar machine which was a bit faster (a 233) perhaps. No LAN cards insight. Using one of my dad's ancient parallel cables and fooling Windows into thinking it was a LAN connection, which worked well en…

my dad's ancient parallel cables With a null modem? I had same setup with my college roommate in our apartment. This was mid 90s, so it was Doom 2 and other FPS from that time. Great memories.

Quake 1 (original DOS version only) supported null modem, but Quake 2 didn't -you had to use a null modem with Windows 95 dial-up networking, which was a bit more tricky to setup.

Re: Source code for Quake 2 rerelease

#200

Earlier quoted context omitted.

That hardly has to do with code quality, but instead that some edge-case "features" were not anticipated by the game designers, programmers and QA team, but "discovered" later by speedrunners.

Sometimes it is about code quality. Defensively written, well-documented and well-tested code would not be as likely to suffer from such bugs. It's not just subtle floating-point errors either, but also outright wrong maths that appears to work (see [1] for an example), memory leaks [2], buffer overflows [3] etc. [1] https://www.youtube.com/watch?v=4gNYTqn3qRc [2] https://news.ycombinator.com/item?id=20410166 [3] htt…

I think they made the right trade-off, back in the 90s on hardware that could barely run the game, sticking extra defensive checks to make sure you have not accidentally clipped through the geometry, or simpler ones like making sure you are not running too fast, seems excessive.

They weren't coding for some NASA space probe and they knew it.

Post reply on HN