Daivuk / PureDOOM

Pure DOOM - Single Header Doom Source Port
GNU General Public License v2.0
288 stars 23 forks source link

Multiplayer thoughts... #20

Open DEF7 opened 6 months ago

DEF7 commented 6 months ago

I just thought I'd share that supporting multiplayer should also work like everything else, where Doom is just encoding/decoding packets, opening/closing connections, etc... and doesn't do any actual API interaction, and users can implement their own network layer on top of that - just like with the framebuffer and audio buffer, except perhaps with a callback, i.e. doom_get_packet() which it calls to retrieve pending packets that have been received. That setup would be much more versatile than having hard-coded network APIs being utilized.

I don't know if this was already the plan, I just thought I'd share my vote on the issue :]

Daivuk commented 6 months ago

I didn't really know how to test multiplayer with OG DOOM. Not sure what's the flow to boot a server and connect from a client. I think whatever they use for sockets should be used if we enable the right preprocessor, or override the BSD sockets.

But I agree that a nicer interface could be useful.

Multiplayer wasn't really the point of this project originally, as it is just a project to "run this on your microwave". Not sure what is the value for MP.

DEF7 commented 6 months ago

Doom required that you started (and joined) a multiplayer game via the setup.exe program. There was no way to start a game, or join an existing game, from Doom itself.

I believe there have been reworks of Doom's networking to be client/server based so that a server can be started and clients can join/leave as they wish. Those might be worth looking at.

Daivuk commented 6 months ago

I see. I'm guessing it can all be done from command line parameters? We dont need to add options to the menu for it.