Live data from Hacker News

How Quake.exe got its TCP/IP stack

fabiensanglard.net

81–90 of 158 posts

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

#81

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…

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.

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

#82

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.

You can kinda solve that problem with STUN servers. Most games on Steam use Steam Datagram Relay, which also solves this: https://partner.steamgames.com/doc/features/multiplayer/stea...

It's like in-engine Hamachi. Works really well with P2P games.

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

#83

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.

You usually just need to forward a port or two on your router. That gets through the NAT because you specify which destination IP to forward it to. You also need to open that port in your Windows firewall in most cases. Some configuration, but you don't have to update the port forwarding as often as you would expect. The reason you can't just play games with your friends anymore is that game companies make way too mu…

Starcraft could only do internet play through battle.net, which required a legit copy. Pirated copies could still do LAN IPX play though, and with IPX over IP software you could theoretically do remote play with your internet buddies.

By the way, this is why bnetd is illegal to distribute and was ruled such in a court of law: authenticating with battle.net counts as an "effective" copy protection measure under the DMCA, and providing an alternate implementation that skips that therefore counts as "circumvention technology".

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

#84
post #41

In an interview with Lex Fridman, John Carmack said that in retrospect, Quake was too ambitious in terms of development time, as it both introduced network play and a fully polygonal 3D engine written in assembly. So it would have been better to split the work in two and publish a "Network Doom" first and then build on that with a polygonal Quake. Which seems to imply that the network stack was about as difficult to…

And then you had Romero saying that Quake wasn't ambitious enough...

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

#85

Is this the sign that Fabian is beginning his look and research at Quake (ie, in slow preparation for another Game Engine Black Book)?

He most definitely is cooking something. Seen contributions from him to chocolate-quake: https://github.com/Henrique194/chocolate-quake/pull/60

As well as bug reports: https://github.com/Henrique194/chocolate-quake/issues/57

I personally would love to get some help with my chocolate Doom 3 BFG fork, specially with pesky OpenGL issues: https://github.com/klaussilveira/chocolate-doom3-bfg

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

#87
> And in 1995 there were only two: us, and Total Entertainment Network. You might think game creators would come to us and say "please put my game on your service!", but... nope! Not only did we have a licensing team that went out and got contracts to license games for our service, but we had to pay the vendor for the right to license their game, which was often an exclusive. So, we had Quake and Unreal; TEN got Duke Nukem 3D and NASCAR.

FWIW, the Total Entertainment Network (TEN) got Quake later, here's a press release from September 30 1996 [1]. Wikipedia says QTest was released Feb 24, 1996, and I can't find when MPath support launched, so I don't know how long the exclusive period was, but not very long. Disclosure: I was a volunteer support person (TENGuide) so I could get internet access as a teen; I was GuideToast and/or GuideName.

[1] https://web.archive.org/web/20110520114948/http://www.thefre...

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

#88
post #67

Is this the sign that Fabian is beginning his look and research at Quake (ie, in slow preparation for another Game Engine Black Book)?

I feel he's stepping his way to that, but Quake is an entire other world of complexity from DooM (which is simple enough that a 400+ page book can "explain" it and the OS and the computers it ran on).

Andre Lamothe's "Tricks of the 3d Game Programming Gurus: Advanced 3d Graphics and Rasterization" is a great book for anyone interested in graphics programming from those days.

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

#89
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.

I needed one PE credit to get a degree from my community college. My school didn't offer marksmanship, but I would imagine it would fit into PE, archery certainly would and there's synergy. I took Table Tennis to graduate. I don't think my engineering school where I got my BS required Physical Education though.
Post reply on HN