hckrnws
> The NET indicator is displayed when a client has not received any packets from the server in the last 300ms. This was likely aimed at players to help them determine how bad their ping was.
This is not an indicator of high ping. It's an indication of loss of connectivity. Even if your ping is 2 seconds, the server should be sending you updates regularly. If you haven't received anything in 300 ms, either you're losing lots of packets or you have some epic buffering somewhere.
Example: the slow-motion replay of this demo causes the flashing of the net icon due to the packet frequency red-shift:
> packet frequency red-shift.
Hmmm. Is that a term of art? I thought you were being funny, but I found at least one paper talking about packet red-shift: https://upcommons.upc.edu/server/api/core/bitstreams/00bbf88...
In practice if you have a very high ping, you're losing packets or there's buffering somewhere. Not because you have a 30,000 km long ethernet cable.
When Quake(world) was released, it was common to play games on dial-up modems, where 250+ milliseconds was a normal ping time. If you played on a distant server, you could easily get over 500 milliseconds or even much worse.
We used to play these games on dial-up where ~300ms pings were pretty common.
Moving to a cable connection in ~2001 was shocking in comparison!
Funny, my first cable connection was waaay worse than dailup. Abysmal pings and speeds maxing out around 3kb/sec. It took a few years to reach 32kb/sec which felt insane.
Geostationary satellite internet has garbage pings too.
Unless you are playing Quake through Iridium.
Oh sweet summerchild.
When OG games were released we were playing on LAN with BNC terminators. That's why the Q1 netcode is so bad.
When we moved to online we didn't had the infra we have today.
Bonus point: CS at one point just halved the ping in the UI so players would think it was more responsive.
The turtle/tortoise note is correct for UK English, but in the US (where Id software was headquartered during the development of Quake), tortoises are considered a subset of "turtles". Per Webster:
> Turtle (noun): any of an order (Testudines synonym Chelonia) of terrestrial, freshwater, and marine reptiles that have a toothless horny beak and a shell of bony dermal plates usually covered with horny shields enclosing the trunk and into which the head, limbs, and tail usually may be withdrawn.
The naming of the ‘showturtle’ command may be a Logo reference https://people.eecs.berkeley.edu/~bh/docs/html/usermanual_6.... . It’s highly likely that Carmack encountered Apple Logo on the Apple II at some point. Someone should ask him …
> Trivia: The icon doesn't actually depict a turtle but a tortoise. A turtle swims in the water while a tortoise walks on land.
Turtles walk on land, too. All turtles are tortises? /s
[dead]
Always awesome content from Fabien Sanglard! +1
Quake 1/Quakeworld gladly live on! I'm a big fan for many years so I always encourage anybody to try it. [0] Still one of the best FPS ever built imho.
The community [1] keeps on improving the game and infrastructure and we can now even spectate games straight through the browser without having to download anything. [2]
[0] Download free (and legal) at https://nquake.com
[1] EU Discord: http://discord.quake.world | US Discord: http://discord.usquake.world
[2] Check out the "Web QTV" links at https://hub.quakeworld.nu
I saw that NET indicator plenty when playing on 56k back in the day. Funny to see it written about as some curious historical artifact.
I believe it still lives on in the Call of Duty series, being based on id tech. There's even memes about it: https://www.reddit.com/r/memes/comments/edmai1/connection_in...
Yeah. Looks like an ethernet jack. True, buts its a modem jack (rj11 maybe?)
Are you sure it’s not meant to be an RJ45 plug? The cylindrical thing to the bottom left corner of the wall socket looks like it might be a BNC plug. Which would make sense for the era of quake when Ethernet wasn’t yet ubiquitous.
RJ45 next to BNC implies a token ring network, not ethernet :)
My combo 10base2/10baseT card begs to differ.
Yes i look closer. Maybe it is a rj45.
The proportions look more like RJ11 than RJ45 to me. Not how big the clip is compared to the plug. Of course this is a hand drawn icon so take everything with a grain of salt.
You can still see it while playing in 2025, for Quake 2 at least, on Tastypleen servers in the U.S. The servers crash for some reason. Or if you connect to Chinese servers, sometimes I experience it, but rarely.
Mr. Sanglard's blog is one of my favorites. I hope the recent posts on Quake are indicative of his intent to write a Game Engine book on Quake. His others were excellent.
When I read the title I was expecting it to talk about indicators in the inheritance sense, say how you can tell if an engine has a Quake Engine pedigree. Like looking at the graphics or the online behavior of a game and tracing it back to Quake's renderer or netcode.
Still a cool article though.
along those lines, I saw a video where a light strobing pattern from quake was still used in a section half-life alyx (with much better lighting lol)
the fact the quake engine’s internals still live on in so many modern games is quite a feat
Half life was built on quake 1 code and the codebase was never abandoned but they kept improving and improving on it, essentially all valve games have something inherited from it from TF2 to Dota to Alyx.
Cool curiosities! The chocolate quake source port is great as well. I've always wondered why there wasn't a chocolate doom equivalent for quake. It was nice to see its announcement earlier this year, so I've been quietly following its development ever since. The guy behind it did a great job, now we just need a crispy doom equivalent for quake!
I also wonder where is that tortoise texture from. Seems such a small thing to have the effort to create art for during development.
I think nobody tackled it because Quake is so fast. There is quake.exe but also glquake.exe and winquake.exe. Each have different capabilities.
And of course there is quakeworld which is a complete fork with different net protocol, prediction, and commands. Example of new features is that skins can be downloaded on the fly, you no longer needed skinpacks.
I am not familiar with chocolate doom what makes it better than any other doom source port?
There are many good source ports of quake, I always liked darkplaces but it intentionally and willfully tries to push improvements so not really for purists. There is stuff like fitzquake/quakespasm that stays much closer to vanilla quake and if you like quakeworld ftequake.
> I am not familiar with chocolate doom what makes it better than any other doom source port?
The earliest doom variants once the source code released started adding features that weren't faithful to the original dos version 1.9.
Even Boom which was a pretty conservative codebase that focused on limit removal for level editing added weird things like weapon recoil pushing the player back when you shoot a weapon.
So chocolate doom's name is wordplay on "vanilla doom" - it's the version of doom we all played in the 90s just updated with current i/o libraries (libSDL) so it can run on modern platforms.
Chocolate even has same bugs and visual glitches beyond original limits. This helps when making maps you want to work in DOS without having to boot DOSBox or ancient hardware.
Quakespasm needs a flag so your system doesn't nearly halt if it's running under an old 32 bit machine. And by old I mean an N270 CPU based netbook.
Chocolate Doom attempts to replicate the original Doom experience in a modern source port, without the embellishments, bug fixes, and features offered by source ports like GZDoom. It's like the difference between building a modern clone of the Amiga 500, hewing as close to the original designs as possible, and building a "modern Amiga" with a PPC CPU, modern GPU, AmigaOS 4.x support, etc. Sure, the second is neat, but some people want to work within the exact constraints and quirks of the first.
Comment was deleted :(
[dead]
Lovely read.
Just a curious question if the authors or any maintainers read this comment:
Does this bug fix break the functionality of re-connecting the client? Or how would the client know they need to use the same port as the previous session?
(My understanding is that a new client coming from the same IP and different port will now be treated as a new player instead of a reconnect)
> My understanding is that a new client coming from the same IP and different port will now be treated as a new player instead of a reconnect
Indeed. It could be a gap of my understanding but I believed that in pre-QuakeWorld there was no "coming back". How would a connect differ from a reconnect from a user experience perspective? Was it expected they keep their previous score/name?
I might be wrong but it seems the DISC part needs some correction:
> The DISC indicator wraps HDD access done via Sys_FileRead. ... The code for this indicator is in SCR_DrawRam.
I can't find the image itself but just judging by its name SCR_DrawRam is for displaying the image for the RAM indicator.
You are right, the link and the text should have said `Draw_BeginDisc`. Fixed.
When I was young I got the plans of the Titanic, and I started implementing it in Quake, after an afternoon of hard work building out the outer hull to scale, that was the first time I saw that RAM icon :)
Quake 1 was such a vibe when it first came out. It was nearly an utterly unique experience for that time.
Engines used to be cool. The original Theme Park engine was it's own application in it's emulator. You had SCRUMM which was another interactive cool thing of it's own. DOS games amazed me as a kid.
The ZMachine it's its own computer too (an emulator in the end).
Amazing, after playing all the Quake series (still playing Quake 2 daily), I learnt something new about it. I will definitely try the turtle command and try to make it appear (somehow), maybe artificially with the maxfps command. There is no way I can organically produce it on a 32-core CPU. Maybe I can try with a VM with very low specs.
... Now I want to add these to slack.
Crafted by Rajat
Source Code