Stock/Base RendezVous Support in games?

Hello,

I am curious as to Pretendo’s support/use for the stock RendezVous Quazal library, (of which NEX is based off partially.) I am aware a few games used this library (I believe many Ubisoft games) and was wondering if this was implemented or is being implemented into Pretendo as a service? I understand it would take quite a bit to support the stock library, but I was just curious.

Big Thanks to anyone who may know.

Rendez-Vous is the original library, developed by Quazal, which Nintendo licensed and modified for their own use on Nintendo Network and early NSO games. They changed the packet structure a bit, simplified parts of the transport protocol, added some custom service protocols, and rebranded it as NEX

Ubisoft does heavily use Rendez-Vous, yes, because Ubisoft bought Quazal in 2010. They still release games which use Rendez-Vous as far as I’m aware (iirc The Crew, which is a big focus of Stop Killing Games, uses Rendez-Vous?)

However since Quazal would license Rendez-Vous out to anyone, there are many more games out there which use these libraries (or some version of them) outside of Nintendo and Ubisoft

We do not support any non-Nintendo Network (NEX) titles, and we don’t have any current plans to do so ourselves. But our long-term goals is to make our libraries flexible and accurate enough to support Rendez-Vous games, and we have had pretty good success in that regard:

That being said, Rendez-Vous support is very complex. Not just because it uses more complex features than Nintendo uses (it uses packet compression, multiple data streams, multiple transport modes for reliable/unreliable packets, etc.), but also because Rendez-Vous was designed to be extremely modifiable

One of the selling points of Rendez-Vous was that you could change just about everything in the library. I don’t mean “we gave you some configuration options to change a select amount of features”, I’m talking “you can completely gut out core parts of the library and replace them with your own implementations”. In fact, Nintendo did just that! Rendez-Vous typically only uses UDP for transport, but when moving to the Switch Nintendo gutted out the UDP parts and replaced them with WebSocket connections, and at the same time they completely changed how packets are encoded (not just the overall structure, but also completely removing encryption and such since they use WebSockets)

That makes supporting ALL games which use Rendez-Vous nearly impossible to do on our own. Many developers made tweaks to how their copy of the libraries work. We try to support as many possibilities out of the box, and for the ones we can’t directly support (like if the game uses a custom payload compression system), we try to provide interfaces where developers can hook in their own implementations

But even then, what we can support is limited. The original libraries were written in C/Python (yes, Python was involved), which made them VERY modifiable. We use Go, which is much more strongly typed and not as flexible as other languages. We don’t even get function overloads, which Rendez-Vous/NEX use quite often. In these cases, we unfortunately just take the stance of “fork it for your own needs”

A good example of this is WATCH_DOGS. When making this game, Ubisoft completely changed the packet checksum system to use something unique to this game, and also completely changed the structure of how request/response messages are encoded. We added support for these modifications directly in our libraries, but support EVERYTHING ourselves in not really possible long-term

We try our best to support as much as possible, so that other dev teams can make use of our libraries and more easily support more games outside of what our scope supports. But some compromises had to be made

1 Like

Thank you so much for making a response with such detail. I understand that not all games from the original library would be supported as that would certainly take quite the workload. I find it interesting that the base RendezVous library used Python, that certainly peaked my interest.

I also found this very interesting.

Of course, I appreciate all the effort that has been poured into the service over the years, as it simply amazing.

Thank you very much for the response, have a nice day.