[HN Gopher] How Quake.exe got its TCP/IP stack
___________________________________________________________________
How Quake.exe got its TCP/IP stack
Author : billiob
Score : 443 points
Date : 2025-11-18 08:18 UTC (14 hours ago)
(HTM) web link (fabiensanglard.net)
(TXT) w3m dump (fabiensanglard.net)
| afandian wrote:
| > I didn't work on the Chunnel. That was mainly a British guy
| named Henry
|
| The British guy named Henry might have named it after another
| feat of engineering completed around the same time.
|
| https://en.wikipedia.org/wiki/Channel_Tunnel
| torh wrote:
| Or from the Seinfeld episode "The Pool Guy" (Aired November
| 1995) which had a fictional movie called "Chunnel" -- probably
| based on the very same channel tunnel.
| ralferoo wrote:
| From Google (AI slop at top of search results): "Chunnel" is
| not a real movie but a fictional film from the TV show
| Seinfeld. It is depicted as a disaster movie about an
| explosion in the Channel Tunnel...
|
| Weird hearing that name now though. Around that time,
| everybody referred to it as the "Chunnel", but I don't think
| I've heard it as anything but the "Channel Tunnel" since
| maybe 2000. I suspect even that usage is now limited to only
| taking cars on the train from Folkestone. Every time I've
| travelled on it as a regular passenger from London, it's just
| been referred to as the Eurostar without any mention of the
| tunnel at all.
| afandian wrote:
| Yes, it's definitely a word from a 1990s geography
| textbook.
| sroussey wrote:
| I was half expecting something about how to get tcp into windows,
| but this is win95 where they shipped it inside the os and put
| some company out of business that used to sell that.
| jahnu wrote:
| I used to use Trumpet Winsock with Windows 3.1
|
| https://en.wikipedia.org/wiki/Trumpet_Winsock
| hypercube33 wrote:
| Didn't Win95 get tcp from FreeBSD?
| LeoPanthera wrote:
| That was Windows 2000.
| hypercube33 wrote:
| No I'm fairly certain that berkley sockets were used as a
| foundation to integrate a full network stack under
| winsockets so people wouldn't have to go buy things like
| Trumpet (Windows 3.1) and you could coax out messages
| saying as much from the commandline but Google is failing
| me (I'm sure most of this stuff is on usenet which no one
| seems to care about these days)
| zweifuss wrote:
| 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.kur
| o5h...
| kalleboo wrote:
| 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.
| xbar wrote:
| Berkeley, for disambiguation.
| kalleboo wrote:
| Oops, too late to edit my comment!
| justsomehnguy wrote:
| 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...
| EvanAnderson wrote:
| The story with the Windows NT IP stack is nuanced, but it
| wasn't just lifted from BSD: https://web.archive.org/web/20
| 051114154320/http://www.kuro5h...
| pak9rabid wrote:
| Win95 had its own stack, codenamed Wolverine
| ogurechny wrote:
| The turbulent times and the breakneck speed of computer
| development need to be taken into account. Not long before that
| computer networks were strictly corporate things installed by
| contractors choosing hardware, driver and software suppliers
| suitable for tasks performed by employees or students, and
| someone who installed it at home was the same kind of nerd who
| would drag an engine from the work into his room to tinker.
| Non-business-oriented software rarely cared about third party
| network functions. Then network card became a consumer device,
| and a bit later it became integrated and expected.
|
| Also, Windows did not install TCP/IP components on computers
| without a network card (most of them until the Millennium era),
| it was an optional component. You could not "ping" anything, as
| there was no ping utility, nor libraries it could call. In that
| aspect, those network-less Windows systems were not much
| different from network-less DOS systems. The installer probably
| still works that way (or can be made to, by excluding some
| dependencies), but it's hard to find hardware without any
| network connectivity today. I wonder what Windows 11 installer
| does when there is no network card to phone home...
| franga2000 wrote:
| > I wonder what Windows 11 installer does when there is no
| network card to phone home...
|
| One of "works fine", "needs a command line trick to continue"
| or "refuses to work completely" depending on which specific
| edition of win11 your computer has been afflicted with.
| ggambetta wrote:
| I learned to solder as a pre-teen so I could make a nullmodem :)
| Then I learned that resistors were a thing when I made a parallel
| port sound card (this thing
| https://en.wikipedia.org/wiki/Covox_Speech_Thing). Fun times!
| d3Xt3r wrote:
| 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 were the
| default movement keys, unlike these days where WASD is
| default.)
| jacquesm wrote:
| I wasn't allowed one either so I soldered with a screwdriver
| heated up on the gas stove when my parents weren't home...
| ggambetta wrote:
| That's pretty hardcore, respect :)
| giantrobot wrote:
| Your parents: A soldering iron is dangerous!
|
| You: I'll show you!
| pixl97 wrote:
| I am not in danger.
|
| I am the danger.
|
| [Sticks glowing hot screw driver in molten lead]
| orthecreedence wrote:
| "We need laws to keep children away from soldering irons"
|
| Later that day...
| khafra wrote:
| 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.
| ukuina wrote:
| I wonder if OpenOMF has the same limits.
| c-hendricks wrote:
| It's a keyboard thing and less of a software thing.
| lll-o-lll wrote:
| Really fun times. I "learned" to solder around that time and
| age also. Playing Mod files through a DIY version of that
| "thing" piped into a portable stereo speaker was awesome.
|
| Years later I learned what flux was, and soldering became quite
| a bit better and easier.
| nikanj wrote:
| " It is impressive to see Quake run at full speed knowing that
| Windows 95 runs DOS executable in a virtual machine. My guess is
| that, in full screen, memory writes and reads to the VGA are
| given direct access to the hardware to preserve performances"
|
| Virtual x86 mode had little to do with what we nowadays think of
| when someone says "virtual machine"
| skywal_l wrote:
| Not entirely related but Quake had a VM though, executing
| scripts written in QuakeC[0] which would drive the AI, game
| events, etc.
|
| [0]: https://en.wikipedia.org/wiki/QuakeC
| acchow wrote:
| But your link says that QuakeC was a compiled language
| vkazanov wrote:
| QuakeC was compiled into QuakeVM bytecode, which made all
| modes and logic portable between platforms without having
| to recompile things everytime, unlike what had to be done
| for Quake 2 (which was 100% native code).
|
| This hurt performance a bit but in the longer term
| benefited the modding scene massively.
| Luc wrote:
| Compiled to bytecode.
| FartyMcFarter wrote:
| It's compiled into bytecode, so it still requires a VM /
| bytecode interpreter (whatever you want to call it).
| hapless wrote:
| Arguably it had a great deal to do with what we think of as a
| "virtual machine."
|
| Virtual 8086 remapped all opcodes and memory accesses to let a
| program pretend to be on a single, real-mode 8086 when in
| reality it was one of many programs running in protected mode
| on a newer chip
|
| AMD-V and whatever the Intel counterpart is do the almost
| exactly the same thing: re-map all ia32 and amd64 instructions
| and memory accesses to let a program pretend to be doing ring 0
| stuff on an x86 box, when in reality it is one of many programs
| running with fewer privileges on a newer chip
|
| There are a few more wrinkles in the latter case -- nested page
| tables, TLB, etc -- but it is the same idea from the viewpoint
| of the guest.
| skrebbel wrote:
| 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", it just means they asked the
| maker of an open source tool they used to please add a feature. I
| wonder whether they paid him for it or whether DJ just hacked it
| all in at id's request for kicks. His "about me" page suggests he
| does contracting so might be the latter.
|
| DJGPP was spectacularly good back in the day. I didn't appreciate
| at the time what a monumental effort it must have been to port
| the entire GCC toolchain and runtime to DOS/Windows. Hats off to
| DJ Delorie!
| maybewhenthesun wrote:
| 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...
| trollbridge wrote:
| DPMI clients don't run in a VM, though. They're just a normal
| task like any other task / process in Windows.
| toast0 wrote:
| So... Win32 runs in virtual mode. In 2025, we don't think
| of that as a Virtual Machine, but it totally is. Hardware
| access is trapped by the CPU and processed by the OS/DPMI
| server.
| fredoralive wrote:
| No, in 386 mode 3.x and 9x the System VM and other DPMI
| clients runs in protected mode.
|
| Virtual 8086 mode, as its name somewhat suggests, only
| runs real mode code.
| zoeysmithe wrote:
| I think if you're relatively young is hard to know computing
| history. Its oddly older than one thinks, even concepts that
| are seen as new. Its sometimes interesting to see people
| learn about BBS's which flourished 40 years ago.
| bombcar wrote:
| It's a bit surprising because this is the author of the DooM
| Black Book and they know the underpinnings pretty well.
|
| However, the difference between a DOS VM under Windows 9x and
| a Windows command prompt and a w32 program started from DOS
| is all very esoteric and complicated (even Raymond Chen has
| been confused about implementation details at times).
| eknkc wrote:
| 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.
| Cthulhu_ wrote:
| 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.
| le-mark wrote:
| It would be an easy "A" for a lot of people in the US!
| 0x457 wrote:
| 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.
| simiones wrote:
| US colleges have a very open curriculum, where you have wide
| leeway in what classes you actually take, especially in the
| early years of study. If you're coming from more European-
| style universities, this is vastly different to the
| relatively rigid course set you'd take (with a few electives
| here and there).
| mortehu wrote:
| US colleges last one year longer, and the first year is more
| academically similar to the last year of high school in
| Europe.
| kbolino wrote:
| It's definitely not common. My US university required 2
| physical education classes, but only if you were under 30 and
| hadn't served in the military. They may have offered
| marksmanship, but I just took running and soccer (aka
| football). The classes were graded pass-fail and didn't even
| count for academic credit.
| stronglikedan wrote:
| We have myriad available "electives" that contribute towards
| our degrees. I have college credit for "bowling and
| billiards" and "canoeing and kayaking".
| expressadmin wrote:
| MIT offers a Pirate Certificate:
| https://physicaleducationandwellness.mit.edu/about/pirate-
| ce...
| marpstar wrote:
| I took an 8-week, 1-credit badminton course to fulfill my PE
| requirements. I wouldn't be surprised to find a marksmanship
| course.
| cardiffspaceman wrote:
| My college required its graduates to pass a minimal swimming
| test. Just enough swimming ability to give a potential
| rescuer some extra time to effect the rescue, rather than
| have us go straight to the bottom of the sea. We all took a
| test in the first week or so. Those who failed had to take a
| course and retake the test.
| toast0 wrote:
| 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.
| kevin_thibedeau wrote:
| 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.
| gpderetta wrote:
| It was great indeed. DJGPP is how I learned to to program.
| bluedino wrote:
| Would love to see some interviews etc with DJ if he's up for it
| ddtaylor wrote:
| Same. I only have experience from M.U.G.E.N fighting engine
| with respect to DJGPP.
| EGreg wrote:
| I remember back in the day using DJGPP (DJ Delorie) with
| the Allegro library (Shawn Hargreaves), building little
| games that compiled and ran on Windows and other OSes, and
| being part of the community.
|
| You can still play the little game I made in under 10K for
| the Allegro SizeHack competition in 2000: https://web.archi
| ve.org/web/20250118231553/https://www.oocit...
|
| Back then I was also writing a bunch of articles on game
| development:
| https://www.flipcode.com/archives/Theory_Practice-
| Issue_00_I...
|
| Anyone on HN was active around that time? :) Fun time to be
| hacking!
| jasomill wrote:
| I was, but my application was less fun: porting Perl code
| from Windows NT to MS-DOS to integrate with software that
| required direct hardware access to a particular model of
| SCSI card.
|
| Worked great, and saved a bunch of time vs writing a VDD
| to enable direct hardware access from NTVDM or a miniport
| driver from scratch.
|
| IIRC, the underlying problem was that none of the NT
| drivers for any of the cards we'd tested were able to
| reliably allocate enough sufficiently contiguous memory
| to read tapes with unusually large (multi-megabyte) block
| sizes.
| olau wrote:
| Yes. DJGPP and Allegro was a great help, and a big step
| up from the old Borland Turbo Pascal I started out with.
| I remember trying to rotate an image pixel by pixel in
| Pascal. Allegro simply had a function to do it. And yes,
| the mailing list was great - Shawn Hargreaves and the
| couple of people in the inner circle (I seem to remember
| someone called George) were simply awesome, helpful
| people.
|
| I eventually installed Red Hat, started at university and
| lost most of my free time to study projects.
| EGreg wrote:
| George Foot :)
| djdelorie wrote:
| 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.
| skrebbel wrote:
| Omg I'm totally starstruck now!
|
| Purely out of curiosity, was that all a volunteer open source
| effort or was the entire DJGPP group acting as a consulting
| organization?
| djdelorie wrote:
| The DJGPP project and its contributors were 100% volunteer.
| I'm sure some of the contributors took advantage of their
| involvement to obtain consulting gigs on the side (I did ;)
| but DJGPP itself didn't involve any. The Quake work was a
| swap; we helped them with optimizing, and they helped us
| with near pointers. Win-win!
| thatjoeoverthr wrote:
| 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.
| djdelorie wrote:
| You're welcome!
| jhgb wrote:
| I too need to thank you for the very first C compiler I
| ever had access to in 1999, after 10 years of having a
| book on C in my possession that I couldn't use until
| then.
| ec109685 wrote:
| This article makes it seems like 1996 was ancient times. There
| was the internet then, browsers, Mac's had a tcp stack for a
| while by then, quake was an extremely advanced game.
|
| Yeah, the dos to windows transitions was a big deal, but it was a
| pretty ripe time for innovation then.
| hylaride wrote:
| Yeah, but dial-up was slow, laggy, and what 95% of people used
| to access the internet in those days. Real-time gaming was not
| fun with anything that used it. I grew up in a rural area in
| the 1990s and was no match for people that started to get cable
| modems as time went on.
| 1718627440 wrote:
| Dial-up, has better latency, since their is no packet-
| switching. So it is slow, but not laggy.
| ipython wrote:
| Dialup has a ton of latency (100+ms), but little jitter.
| toast0 wrote:
| If you're dialed up directly, you should be able to get a
| little bit better latency as you won't need IP, UDP, and
| PPP/SLIP headers; at modem bandwidth, header bytes add
| meaningful latency. But data transmission is still pretty
| slow, even with small packets.
| pak9rabid wrote:
| Dialing-up a friend to play Quake, there essentially was
| no lag.
|
| Dialing-up to the Internet to play Quake via
| TCP/IP...shit tons of lag (150+ ms).
| giantrobot wrote:
| You're using confusing terminology so you look very wrong.
| What you _mean_ to say is direct modem-to-modem connections
| were not laggy because there was no packet switching. This
| is a true statement.
|
| What the GP comment was talking about was dial-up
| _Internet_ being most people 's exposure to TCP/IP gaming
| in the 90s. _That_ was most assuredly laggy. Even the best
| dial-up Internet connections had at least 100ms of latency
| just from buffering in the modems.
|
| The QuakeWorld network stack was built to handle the high
| latency and jitter of dial-up Internet connections. The
| original Quake's network was fine on a LAN or fast Internet
| connection (e.g. a dorm ResNet) but was sub-par on dial-up.
| kleiba wrote:
| And then there was also this:
| https://superuser.com/questions/419070/transatlantic-
| ping-fa...
| hylaride wrote:
| > Dial-up, has better latency, since their is no packet-
| switching. So it is slow, but not laggy.
|
| It was laggy as there was buffering and some compression
| (at least for later revisions of dial-up) that most
| definitely added latency.
| bombcar wrote:
| Even when people had dial-up, a huge majority were using
| portal-dialers like AOL or Compuserve, and it took extra
| steps to use those to "get" the Internet directly as opposed
| to within the walled garden.
|
| And even then they'd often just use the bundled browser.
|
| I remember the first friend who got a cable modem, that shit
| was _insane_ compared to dial-up.
| cubefox wrote:
| 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 implement as the new 3D engine.
| bitwize wrote:
| And then you had Romero saying that Quake wasn't ambitious
| _enough_...
| pak9rabid wrote:
| That's the difference between an engine and game developer.
| PeterHolzwarth wrote:
| Is this the sign that Fabian is beginning his look and research
| at Quake (ie, in slow preparation for another Game Engine Black
| Book)?
| bombcar wrote:
| 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).
| klaussilveira wrote:
| 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.
| skywal_l wrote:
| Also "The Black Book"[0] of Michael Abrash who worked on
| Quake with Carmack.
|
| [0]: https://www.amazon.fr/Michael-Abrashs-Graphics-
| Programming-S...
| bombcar wrote:
| Which itself is the inspiration for the DooM/Wolf3d Black
| Books.
| klaussilveira wrote:
| 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
| skywal_l wrote:
| He said he was working on something in a comment a couple of
| months ago on a thread about typst:
| https://news.ycombinator.com/item?id=44356883
| fallingfrog wrote:
| Ah I remember running a serial cable from my bedroom to the
| hallway so we could play 1v1 quake via direct connect. Good
| times! I think we used to play age of empires that way too.
| sempron64 wrote:
| 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.
| kamranjon wrote:
| I wonder if there is a way to use tailscale to make it easy
| again?
| blackcatsec wrote:
| Quite literally folks have done this for decades using
| Hamachi.
| sempron64 wrote:
| 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.
| klaussilveira wrote:
| 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.
| ryandrake wrote:
| Glad you mentioned DOOM! Sometimes people forget that DOOM
| supported multiplayer as early as December 1993, via a serial
| line and February 1994 for IPX networking. 4 player games on a
| LAN in 1994! On release, TCP/IP wasn't supported at all, but as
| the Internet took off, that was solved as well. I remember
| testing an early-ish version of the 3rd party iDOOM TCP setup
| driver from my dorm room (10 base T connection) when I was
| supposed to be in class, and it was a true game changer.
| jandrese wrote:
| What was even more amazing is you could daisy chain serial
| ports on computers to get multiplayer Doom running. One or
| more of those links could even be a phone modem.
|
| Downside is that your framerate was capped to the person with
| the slowest computer, and there was always that guy with the
| 486sx25 who got invited to play.
| bombcar wrote:
| Or slave two copies to yours and get "side view" which was
| only supported for a few releases IIRC -
| https://doomwiki.org/wiki/Three_screen_mode
| badocr wrote:
| Yes, Doom with multi-monitors! There's (at least) one
| video on Youtube showing it in action with 3 monitors
| plus a fourth one with the map:
| https://www.youtube.com/watch?v=q3NQQ7bPf6U#t=1798.333333
| mrguyorama wrote:
| 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 much money from skins and
| do not want you to be able to run a version of the server that
| does not check whether you paid your real money for those
| skins. Weirdly, despite literally inventing loot boxes, Valve
| does not suffer from this sometimes. TF2 had a robust custom
| server community that had dummied out checks so you could wear
| and use whatever you want. Similar to how Minecraft still
| allows you to turn off authentication so you can play with
| friends who have a pirate copy.
| bitwize wrote:
| 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".
| klaussilveira wrote:
| 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.
| mmastrac wrote:
| I still get Google hits on my 25 year old DJGPP/NASM tutorial...
| anthk wrote:
| On DOS runnning fast under W95, how no one created a SVGALIB
| wrapper trapping i386 code and redirecting the calls to an SDL
| window?
| badocr wrote:
| I recall reading about TCP/IP-powered Internet multiplayer DOS
| Quake in TECHINFO.TXT that shipped with the retail version of the
| game, and I quote: Beame & Whiteside TCP/IP
| ------------------------ This is the only DOS TCP/IP
| stack supported in the test release. It is not
| shareware...it's what we use on our network (in case you
| were wondering why this particular stack). This has been
| "tested" extensively over ethernet and you should encounter
| no problems with it. Their SLIP and PPP have not been
| tested. When connecting to a server using TCP/IP (UDP
| actually), you specifiy it's "dot notation" address (like
| 123.45.67.89). You only need to specify the unique portion
| of the adress. For example, if your IP address is 123.45.12.34
| and the server's is 123.45.56.78, you could use "connect 56.78".
|
| I looked around a little and sure enough, a copy of the software
| was avaiable in a subdirectory of idgames(2?) at ftp.cdrom.com. I
| knew nothing about TCP/IP networking at the time, so it was a
| struggle to get it all working, and in the end, the latency and
| overall performance was miserable and totally not worth it.
| Playing NetQuake with WinQuake was a much more appropriate
| scenario.
| pragma_x wrote:
| From that first graph: Who was using WinNT in 2005?!
| bombcar wrote:
| Businesses. And I knew a few diehards who swore Windows 2000
| was shit and Windows NT 4.0 was where it was at, even as a
| workstation.
|
| Windows 95 and MS-DOS in 2004 worry me a bit more.
| pak9rabid wrote:
| I'm guessing none of these diehards were running domain
| controllers.
| toast0 wrote:
| > 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...
| nu11ptr wrote:
| What a blast from the past. I recall my own experimenting with
| DJGPP and DPMI in my own software. It felt futuristic at the
| time. I was blown away.
|
| Another fond memory: I was playing Star Wars: Dark Forces (I
| think that was the one) and was frustrated with the speed of
| level loading. I think it used DOS/4GW and I recall renaming it,
| copying in a new dos extender (was it CWSDPMI? not sure), and
| renaming it to the one Star Wars used. I was shocked when it not
| only worked, but the level loading was MUCH faster (like 3-5x
| faster I recall). My guess is whatever one I had swapped in
| wasn't calling the interrupt in DOS (by swapping back to real
| mode), but perhaps was calling the IDE disk hw directly from
| protected mode. Not sure, but it was a ton faster, and I was a
| very happy kid. The rest of the game had the same performance
| (which makes sense I think) with the new extender.
| jhallenworld wrote:
| In the early years of Linux, before it had networking, we used
| KA9Q for the TCP/IP stack:
|
| https://www.ka9q.net/code/ka9qnos/
|
| This worked in DOS, but was easily ported to Linux.
|
| As far as DPMI: I used the CWSDPMI client fairly recently because
| it allows a 32-bit program to work in both DOS and Windows (it
| auto-disables its own DPMI functions when Windows detected).
|
| https://en.wikipedia.org/wiki/CWSDPMI
| Rodeoclash wrote:
| > 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!
| lizknope wrote:
| Of course Quake had to support DOS but id developed Quake on
| NeXTSTEP which of course had TCP/IP and they had been supporting
| Linux and other commercial Unix versions like Solaris since Doom
| a few years earlier.
___________________________________________________________________
(page generated 2025-11-18 23:00 UTC)