8 ms·
Valve to open source 'GameNetworkingSockets' for developers, Steam not required
- a_t48 9y agoThis looks potentially delicious. There's some other options out there, but they either felt a little aging (RakNet) or did too much (libuv) the last time I used\evaluated them. Interested to see what this one is like.
- pferde 9y agoYes, if it's any good, it can save game developers (and not only them) a lot of time.
- alloyed 9y agoProbably the most equivalent existing open source thing out there is ENet, which doesn't do encryption or detailed stats. If you've signed the steam NDA (which is free of charge iirc) you can check out the existing docs for the closed source version, which has extra features on top of this.
- deleted 9y ago[deleted]
- deleted 9y ago[deleted]
- deleted 9y ago[deleted]
- teilo 9y agoSeems like this would have a use well beyond gaming, particularly in the realms of real-time monitoring.
- EtDybNuvCu 9y agoI'll believe it when I see it; the authors are well-known for arbitrarily-long delays on upcoming releases as well as bare-bones git repositories with nothing inside. Unfortunately, I expect that this reference implementation will be a pile of C++, but hopefully the protocol itself will be sufficiently-well-documented to permit implementation in other languages.
- lallysingh 9y agoThis is lovely. But if you're developing something on the web:, here's a quick comparison with what you get in WebRTC in your browser: SCTP over DTLS: > Connection-oriented protocol (like TCP) -- yup > ... but message-oriented instead of stream-oriented. -- yup > Mix of reliable and unreliable messages -- yup > Messages can be larger than underlying MTU, the protocol performs fragmentation and reassembly, and retransmission for reliable -- yup > Bandwidth estimation based on TFP-friendly rate control (RFC 5348) -- I don't think so? > Encryption. -- yup > Tools for simulating loss and detailed stats measurement -- you can use linux's netem on containers to simulate loss; not but you have to collect your own stats.
- zamalek 9y agoA bit of background: I wanted to do some interesting stuff with actors interacting with some centralized arch - I believed (and still do) that some smarts around actors could be used for some interesting hard real-time applications. I decided that WebRTC data channels might be the best fit (as WebSockets are above TCP). The idea was to layer a server model over P2P (potentially branching out to hybrid for accessing actors in other clients directly). You either have to use a subset of Google's blessed languages (C/++ or Java according to a quick search I did today) for the backend, or you're stuck in serverless land. Building the native library requires a 10GB download and many steps. Implementing WebRTC is no small effort and not appropriate for quick weekend experiments. It's fantastic tech, but there is a serious lack of library support.
- lux 9y agoI recently found a Unity plugin for WebRTC that seems to work pretty well so far (no affiliation): https://assetstore.unity.com/packages/tools/network/webrtc-network-47846 https://assetstore.unity.com/packages/tools/network/webrtc-n... But I agree, the options for implementing WebRTC outside of the browser are still very limited and/or painful at the moment. Having options also helps de-risk what is a rather core feature of games/apps that need it, so this is really cool of Valve!
- pferde 9y agoWow, today I learned about netem. Thanks! :)