v2.0.0 Release Notes
Install this version with Unity's Package Manager using the following URL (step-by-step instructions):
https://github.com/RiptideNetworking/Riptide.git?path=/Packages/Core#2.0.0
It can also be installed a number of other ways for use outside of Unity, including as a NuGet package.
For a full list of source code changes, check out the version comparison on GitHub.
Additions
- Added a documentation site.
- Made a NuGet package (#12).
- Made it possible to accept or reject connections by setting
Server.HandleConnection
. - Made it possible to send custom data when kicking a client (#20).
- Made it possible to retrieve connected clients by their ID using
Server.TryGetClient
. - Added disconnect reasons.
- Added support for adding
sbyte
s to messages. - Added support for adding custom types to the messages class, as long as they implement
IMessageSerializable
. - Added an option to disable the timeout system for individual connections using
Connection.CanTimeout
. - Made it possible to change the maximum message payload size using
Message.MaxPayloadSize
. - Added an option to disable dual-mode sockets for the UDP transport.
- Made the default transport's socket buffer size configurable.
- Added a TCP transport (primarily for use as a fallback in situations where UDP doesn't work).
Changes
- Renamed a lot of things (including the base
RiptideNetworking
namespace—now it's justRiptide
). For a full list of what was renamed, see the updating to v2 guide. - Made calling
Client.Disconnect
invoke theClient.Disconnected
event. Previously, this event was only invoked when the disconnection was not initiated by the client. - Removed the
isBigArray
parameter from theMessage
class'sAdd
/Get
methods. This is now determined automatically. - Reduced the default maximum message payload size to 1225 bytes (from 1247 bytes) to ensure messages are smaller than the MTU.
- Made
Client.Connect
return abool
to indicate whether a connection attempt will be made or an issue occurred (#39). - Completely overhauled the transport system (which resulted in the removal of the
RudpListener
,RudpServer
,RudpClient
, andRudpConnection
classes). For more information on the transport rework and all of the changes involved, see pull request #56. - Made the default transport single-threaded, as the multithreading didn't provide much benefit but caused difficult-to-debug issues.
- Improved error handling.
- Made error messages more descriptive.
- Gave servers authority over which messages are automatically relayed. This is customizable via
Server.RelayFilter
. - Removed customizable maximum send attempts for messages. In a future update, this system will be replaced by a system which disconnects clients if their connection health deteriorates too much.
- Removed
LanDiscovery
class. It will be overhauled and re-added in a future update. - Removed unused
DoubleKeyDictionary
class. - Removed unused
ActionQueue
class. - Removed unnecessary custom type size constants.
- Made event args' properties readonly fields.
Fixes
- Fixed some message handler methods not being found (#44).
Sponsor Shoutout
Thank you so much to all of my GitHub Sponsors for making this update possible, and an extra special thank you to the following individuals for their extreme generosity:
- oalpar
- those who wish to remain anonymous (you know who you are!)
If you too would like to financially support Riptide's development and get access to various perks, you can do so through GitHub Sponsors. Thank you!