Live data from Hacker News

How Quake.exe got its TCP/IP stack

fabiensanglard.net

101–110 of 158 posts

Re: How Quake.exe got its TCP/IP stack

#101

Earlier quoted context omitted.

Back then, DJGPP was a much bigger group, and most of the Quake kudos go to Charles Sandmann, author of cwsdpmi, who worked directly with Id to help them optimize their code for our environment.

Thank you for this work. It was my first C compiler in 1998. Y'all helped me on the mailing list and you even replied to my e-mails! I was 11 and this was insane to me.

You're welcome!

Re: How Quake.exe got its TCP/IP stack

#102
post #16

Random drive-by nitpick: > From the beginning of the development, id had requested from djgpp engineers that their DPMI client would be able to run on djgpp's DPMI server but also Windows 95 DPMI server. I'm pretty sure that "DJGPP engineers" is just one guy, DJ Delorie. DJGPP was always open source so I bet he got some contributors, but if the rest of this sentence is true that "id has requested from djgpp engineers…

Completely off topic; So I just took a look at DJ’s website and he has a college transcript there. Something looked interesting. Apparently he passed a marksmanship PE course at the first year. Is that a thing in US? I don’t know, maybe its common and I have no idea. I’d love to have a marksmanship course while studying computer science though.

My high school had some marksmanship trophy's in their case dating back to the 70s. Responsible gun ownership was a real thing when a sizable portion of the male population were veterans.

Re: How Quake.exe got its TCP/IP stack

#103
post #16

Earlier quoted context omitted.

Completely off topic; So I just took a look at DJ’s website and he has a college transcript there. Something looked interesting. Apparently he passed a marksmanship PE course at the first year. Is that a thing in US? I don’t know, maybe its common and I have no idea. I’d love to have a marksmanship course while studying computer science though.

I wouldn't be surprised if it's a pretty normal thing in a few countries or regions in the world. Marksmanship and archery are also olympic sports.

Yeah, in Russia even thought everything is decided for you once you've selected your major, PE classes still for you to choose. Competition to get in was crazy too, none of that "first come, first served" - swimming only accepted top N students, table tennis held a tournament style competition (I went there with two friends and I had to play against both of them).

US colleges still have far more options, though.

Re: How Quake.exe got its TCP/IP stack

#104

Earlier quoted context omitted.

The history of the Windows TCP/IP stack went most likely like this: IBM (NetBEUI, no TCP/IP) -> Spider TCP/IP Stack + SysV STREAMS environment -> MS rewrite 1 (early NT, Winsock instead of STREAMS) -> MS rewrite 2 (make win2000 faster): https://web.archive.org/web/20151229084950/http://www.kuro5h...

It's interesting how STREAMS pervaded everything for a short while (Apple's Open Transport networking stack for System 7.5 and up was also based on STREAMS) but everyone almost immediately wanted to get rid of it and just use Berkley sockets interfaces.

I still don't quite get how you should had communicate with the other systems over the network with STREAMS.

With IP you have an address and the means to route the data to that address and back, with TCP/UDP sockets you have the address:port endpoint so the recipient doesn't need to pass a received packet to the all processes on the system, asking "is that yours".

So if there is already some network stack providing both the addressing and the messaging...

Re: How Quake.exe got its TCP/IP stack

#105

Earlier quoted context omitted.

I wonder if there is a way to use tailscale to make it easy again?

Quite literally folks have done this for decades using Hamachi.

Hamachi and STUN were what I was thinking of when I referred to user-unfriendly NAT busting. It's true that these are not much harder to get working than a modem, but they don't match up with modern consumer expectations of ease-of-use and reliability on firewalled networks. It would be nice if Internet standards could keep up with industry so that these expectations could be met. It's totally understandable where we've landed due to modern security requirements, but I still feel something has been lost.

Re: How Quake.exe got its TCP/IP stack

#106

It's amusing to me that in the 90s you could easily play Quake or Doom with your friends by calling their phone number over the modem whereas now setting up any sort of multiplayer essentially requires a server unless you use some very user-unfriendly NAT busting.

[deleted]

Re: How Quake.exe got its TCP/IP stack

#107
post #29
post #8

Earlier quoted context omitted.

I wasn't allowed a soldering iron as a kid, so I ended up just chopping and splicing a regular serial cable and turned it into a null modem, all so that I could play OMF2097 with my friends without having to share the same keyboard (we would always fight over right side, which defaulted to using the arrow keys for movement - and so the person who got the right side generally had the advantage, as back then arrow keys…

Shared-keyboard OMF 2097 also had an overwhelming advantage for the first mover, since most keyboards had 2-3 key rollover--if you hit wd to jump forward, your opponent had to be fast to do anything before you hit your attack key.

I wonder if OpenOMF has the same limits.

Re: How Quake.exe got its TCP/IP stack

#108
post #107
post #29

Earlier quoted context omitted.

Shared-keyboard OMF 2097 also had an overwhelming advantage for the first mover, since most keyboards had 2-3 key rollover--if you hit wd to jump forward, your opponent had to be fast to do anything before you hit your attack key.

I wonder if OpenOMF has the same limits.

It's a keyboard thing and less of a software thing.

Re: How Quake.exe got its TCP/IP stack

#109

Earlier quoted context omitted.

Quite literally folks have done this for decades using Hamachi.

Hamachi and STUN were what I was thinking of when I referred to user-unfriendly NAT busting. It's true that these are not much harder to get working than a modem, but they don't match up with modern consumer expectations of ease-of-use and reliability on firewalled networks. It would be nice if Internet standards could keep up with industry so that these expectations could be met. It's totally understandable where we…

But how are you going to circumvent the user firewall? He still has to open ports there, even using STUN or Steam Relay or Hamachi.

Re: How Quake.exe got its TCP/IP stack

#110
> If you wanted to play a multiplayer game on the internet, either you needed to have explicit host & port information, or you needed to use an online multiplayer gaming service.

Technically true, although tools like Kali existed which could simulate IPX style networks over the internet. I know this because I played a substantial amount of Mechwarrior 2 online when it designed only for local network play!

Post reply on HN