I'm trying to understand the Q1 networking code in order to make it more portable, but i have no idea what those files are for. Can anyone give me an overview of how the game communicates with low-level system parts? Is there any kind of abstraction?
I was thinking about replacing it with enet or something simpler, like a basic abstraction layer to make future ports easier. Or SDL_net, maybe.
net_wipx, net_wins, net_vcr, net_dgrm?
Re: net_wipx, net_wins, net_vcr, net_dgrm?
wipx is dead. dos drivers for udp were kinda crap, so maybe you'd still want to use this if you've still got a dos port.
wins gives you udp / winsock support. if you're okay with requiring win95 users (lol) to install updates so they actually have winsock installed, then you can merge this with the linux/bsd socket code.
win provides the list of packet drivers (basically it names various wipx and wins functions)
dgrm provides the protocol layered on top of those unreliable packet devices.
vcr is dead. I assume id used it to record client->sever packets for debugging, but the output kinda requires too much determinism for regular demos. for anything else you can just use regular demos. this is just playback stuff. the record parts are in net_main assuming you want to strip that out too...
also, kill the IDGODS junk.
wins gives you udp / winsock support. if you're okay with requiring win95 users (lol) to install updates so they actually have winsock installed, then you can merge this with the linux/bsd socket code.
win provides the list of packet drivers (basically it names various wipx and wins functions)
dgrm provides the protocol layered on top of those unreliable packet devices.
vcr is dead. I assume id used it to record client->sever packets for debugging, but the output kinda requires too much determinism for regular demos. for anything else you can just use regular demos. this is just playback stuff. the record parts are in net_main assuming you want to strip that out too...
also, kill the IDGODS junk.
Re: net_wipx, net_wins, net_vcr, net_dgrm?
Where's the linux/bsd socket code? net_loop? Also, what's IDGODS?
Re: net_wipx, net_wins, net_vcr, net_dgrm?
Except from the linux makefile from vanilla quake source:
$(BUILDDIR)/x11/net_dgrm.o \
$(BUILDDIR)/x11/net_loop.o \
$(BUILDDIR)/x11/net_main.o \
$(BUILDDIR)/x11/net_vcr.o \
$(BUILDDIR)/x11/net_udp.o \
$(BUILDDIR)/x11/net_bsd.o \
QuakeWorld engines (including my own) do not use any of these, so I'm really only guessing.
IDGODS is id's backdoor. Kill it.
$(BUILDDIR)/x11/net_dgrm.o \
$(BUILDDIR)/x11/net_loop.o \
$(BUILDDIR)/x11/net_main.o \
$(BUILDDIR)/x11/net_vcr.o \
$(BUILDDIR)/x11/net_udp.o \
$(BUILDDIR)/x11/net_bsd.o \
QuakeWorld engines (including my own) do not use any of these, so I'm really only guessing.
IDGODS is id's backdoor. Kill it.