Live data from Hacker News

How Quake.exe got its TCP/IP stack

fabiensanglard.net

151–158 of 158 posts

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

#151

Earlier quoted context omitted.

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 b…

STREAMS isn’t a networking protocol, it’s an internal data routing thing some UNIXes use locally, and amongst other things to implement the network stack in it. You’d still be talking of stuff like IP addresses and the like with it. Probably with the XTI API instead of BSD sockets, which is a bit more complex but you need the flexibility to handle different network stacks than just TCP/IP, like erm…

https://web.archive.org/web/20060716013234/http://www2.linux...

Sadly no images.

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

#152
and let's not forget QuakeWorld that introduced latency compensation, allowing you to have an OK experience with up to 200ms ping, where as the normal Quake TCP/IP stack was basically unplayable with anything over 70-80ms. https://quakewiki.org/wiki/QuakeWorld

my first multiplayer Quake was with Qtest in February 1996 using a null modem cable between two machines, and later on using coax cables and IPX in DOS

getting a multiplayer game running was a tech feat compared to the plug & play nature of things now. the learning curve is gone now.

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

#153
post #126

Earlier quoted context omitted.

Amen to that! I think I remember there was some communication between ID and Charles Sandmann about CWSDPMI, so even though it's worded a bit strange for an open source project there's probably some thruth in it? Also a bit strange how the author is surprised about Quake running in a 'VM', apparently they don't really know about VM86 mode in x86 processors...

Is the author surprised by that, or did you just misread it? The only relevant quote on that page that I see is “It is impressive to see Quake run at full speed knowing that Windows 95 runs DOS executable in a virtual machine.” He is perhaps surprised that it runs _at speed_ in the VM, not that it runs in the VM which he already knows about.

I mean VM86 is not really a VM in the modern sense of the word. And the author doesn't seem to know.

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

#154
post #126

Earlier quoted context omitted.

Is the author surprised by that, or did you just misread it? The only relevant quote on that page that I see is “It is impressive to see Quake run at full speed knowing that Windows 95 runs DOS executable in a virtual machine.” He is perhaps surprised that it runs _at speed_ in the VM, not that it runs in the VM which he already knows about.

I mean VM86 is not really a VM in the modern sense of the word. And the author doesn't seem to know.

That and the fact Quake doesnt run in VM85 mode, it explicitly runs in _protected_.

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

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

As a sibling poster mentions, US universities often have a very open curriculum. At my university, I got PE credit for classical fencing!

The marching band could also count for PE credit. I believe you could only get credit for one semester for it, and my university required two semesters of PE, so I gave fencing a try, having never fenced before.

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

#156

Earlier quoted context omitted.

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.

Hamachi does not require you to open any ports on your firewall by nature. Except maybe the local firewall (Windows firewall, likely) which apps should automatically get asked for when they try to use a port.

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

#157

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…

I mean, internet standards kept up. IPv6 is a thing, and some form of dynamic IPv6 stateful firewall hole punching a la UPnP would be useful here. Particularly if the application used the temporary address for the hole punch--because once the address lifetime ends, it's basically not going to get used again (64-bit address space). So that effectively nullifies any longer term concerns about security vulnerabilities.

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

#158
post #154

Earlier quoted context omitted.

I mean VM86 is not really a VM in the modern sense of the word. And the author doesn't seem to know.

That and the fact Quake doesnt run in VM85 mode, it explicitly runs in _protected_.

That as well, yes.
Post reply on HN