In effort to better Godot’s networking, two main changes were worked on in June and are now merged in the current master branch:

  • The third party library used to implement WebSocket in non web export has been changed.
  • PacketPeerUDP multicast support has been added.

WebSocket update

Third-party library change

In an effort to make Godot’s WebSocket implementation more portable, maintainable and lightweight we recently swtiched from libwebsocket to wslay.

This new library allows us to use our own networking classes, making it more portable across different platforms, and solving some long lasting problems we had with the previous library, while also decreasing the overall code size.

More details are provided in the merged pull request.

If you are using WebSocket in your project please try out these changes and report any issue you might encounter.

WebSocket tutorial and demos

A new WebSocket tutorial and three new WebSocket demos (minimal, chat, multiplayer) have been added to Godot’s documentation and demo projects.

UDP multicast

Multicast support is finally coming for PacketPeerUDP, this is useful for network discovery (e.g. finding LAN peers, servers, etc.). See the documentation for join_multicast_group and leave_multicast_group.

Along with this change, it is now also possible to get more information about the network interfaces of the machine on which Godot is running via the new IP.get_local_interfaces() function.