A Proper HTTP Client
KitsuneLunae
VRChat is more than a social game. We've been shown that many times, and even more with the recent(ish) launch and popularity explosion of FISH!. This is a community that welcomes dynamic games and activities.
We already have access to
DownloadString
in Udon, which is a undeniably a great tool for creating Dynamic Experiences. Combined with "Allow Untrusted URLs", it has powered popular experiences like "Geolocator", among others, for quite a while now.I believe that API should be extended, providing a proper HTTP Client (including URL interpolation). Being able to dynamically craft URLs and issue POST Requests (with content bodies) would enable creators & technical developers to easily connect to their own backends. This would allow for creator-driven experiences such as global leaderboards, dynamic content, and much more, without creating any extra strain in the VRChat Infrastructure. Furthermore, potentially adding WebSocket capabilities to the client would allow for realtime-intensive games to propagate their information using external infrastructure, reducing or completely removing the strain that they create.
Some may argue that in the sense of content/world moderation, such an API would add an extra attack surface for "badly intended" users, however, I would like to state that any I cannot see any form in which this would be riskier than the current API we have. Information like User IP address can already be gathered via DownloadString, and any potentially dangerous hosts can be dynamically blocked via a global blocklist (combine that with a Roslyn analyzer, and creators could even be warned at build-time).
Log In