3 ms·
I don't know much about the topic - but from what I understand, Valve games use Protocol buffers and UDP connections to the lobby server, in their netcode (some
by fareesh 6y ago
I don't know much about the topic - but from what I understand, Valve games use Protocol buffers and UDP connections to the lobby server, in their netcode (someone correct me if I'm wrong).
Is there an equivalent way to do this with the same level of efficiency in the browser? What are browsers missing in order to achieve this?
- 8192kjshad09- 6y agoThere's nothing stopped anyone from using protobuf in the browser, it's just not that common since JSON is easier to work with. Not sure how the netcode on this game works though.
- blattimwind 6y ago> Valve games use Protocol buffers and UDP connections to the lobby server, in their netcode (someone correct me if I'm wrong). The netcode originally used in GoldSrc/1.6 came from QuakeWorld and predates Google. IIRC it got replaced at some point. The current iteration of Source's netcode doesn't have anything to do with that, though.
- reubenmorais 6y ago> IIRC it got replaced at some point. The current iteration of Source's netcode doesn't have anything to do with that, though. Do you have a source (heh) to back that? Lots of the networking configuration cvars from 1.6 are still there in CS:GO and do the same thing. Maybe it was cleaned up but I wouldn't be surprised if it's still mostly the same code.
- bmn__ 6y agohttps://github.com/SteamDatabase/Protobufs https://github.com/SteamDatabase/Protobufs
- reubenmorais 6y agoThose are GC (Game Coordinator, server list, matchmaking) and Steam (items, trading, etc) protobufs, not for the actual netcode of Source games. There also seems to be some demo (saved game replays) related messages there, but I don't see anything gameplay related.
- Jasper_ 6y agoAccording to Valve, they deployed https://github.com/ValveSoftware/GameNetworkingSockets https://github.com/ValveSoftware/GameNetworkingSockets successfully on CS:GO.
- reubenmorais 6y agoGameNetworkingSockets is pretty cool, and integrating it must have required some extensive changes, but it's more of a networking middleware library. I thought blattimwind was referring to the gameplay related netcode (prediction, interpolation, lag compensation, etc). My understanding is that it hasn't changed much since the 1.6 days, because all of the configuration knobs are still available today, but maybe they rewrote it and I'm just out of the loop. It'd be a major task to do that without affecting gameplay "feel", which is why I was interested in some source to read more about it.