Early Switch games used NEX, correct. More recent ones use a new system called NPLN which is gRPC based rather than UDP based, and provides some more features.
The Switch has used various technologies for its services over its lifespan, and has swapped out several of the older ones for more modern solutions.
With the v2 rewrite of our NEX libraries we’ve transitioned from hyper-focussing on the Wii U and 3DS specifically (though it is our target platform), and instead are aiming for a more general/complete implementation of the libraries.
Nintendo did not make NEX themselves. They licensed an existing piece of software called Rendez-Vous from a company named Quazal (sometimes referred to as “RDV” or “QRV”). RDV is designed to be extended, being able to add custom protocols and replace large portions of it’s internals for your own.
This is what Nintendo did. They licensed RDV, modified it, simplified the protocol (Nintendo does not use the more advanced features of RDV like compression, unreliable packet transmission, etc.), and rebranded it as NEX. When they transitioned to the Switch, they completely swapped NEX’s transport protocol to make it function over WebSockets rather than UDP connections.
Our v2 rewrite of the NEX libraries is now a more general RDV implementation, being closer to how Quazal originally implemented it (which can be seen by our changes in our own naming conventions). By default the libraries are configured to act as Nintendo’s variant of RDV for the Wii U and 3DS, but they can be reconfigured to work for both the Switch and non-NEX RDV clients.
In fact, this has already been done. During our testing of the v2 rewrite Dani would sometimes test the libraries with Rayman Legends, a non-NEX RDV game on the Wii U:
A project called GoCentral also made Rock Band 3 servers for the Wii, Xbox 360, and PS3 using forked/modified versions of our v1 libraries (there’s some irony there). So they’re also usable on totally different platforms.
Some new 3DS games also use the Switch variant of NEX (minus the Web Sockets), which is why we support it.