The best ones and zeros we've ever released, uLink 1.5.7 (2014-03-03).

66 views
Skip to first unread message

Aidin Abedi

unread,
Mar 3, 2014, 1:17:49 PM3/3/14
to unitypark-news

My Fellow Developers,


We’ve been giving a lot of talent and sweat to the upcoming and epic uLink 1.6. It has some very cool and exciting new features. In the meantime, we’ve also been working hard to make sure your uLink 1.5 is at the top of its game and includes the best ones and zeros we've ever released. As we speak, we’re also improving and going through both the manual and API documentation to ensure you know how to best utilize your uLink and find what you need. Without further ado, I’m happy to finally put a new awesome uLink into your creative hands:



uLink 1.5.7 Lina (2014-03-03) [Windows] [Mac] [Linux (tools only)]





New manual pages


  • Submitting Bugs - How to send about a bug report, so that we can fix it quicker.

  • Hardening The Suite - What you need to think about when reporting a potential security issue.



Improvements:


  • Published latest improved API references online.

  • Added ipAddress, port and endpoint to NetworkPlayerApproval, so that the server knows the source of a connecting client before approving or denying it.

  • Added allowInternalUnconnectedMessages to Network.config and NetworkP2P.config. Tells uLink whether internal unconnected messages like LAN discovery etc is allowed or not. Disabling this is useful if the server can be a target for DDoS volume attacks. For backward-compatibility reasons it is allowed by default.

  • Added additional source information to error logs that fail to parse incoming RPCs.

  • Significantly optimized each internal collection by switching to custom implementations for each respective data-structure.

  • Added public equality comparers (IEqualityComparer) to NetworkPlayer, NetworkViewID, NetworkGroup, NetworkPeer etc. The comparer can be passed to a collection (like a Dictionary) during construction to optimize comparisons for respective type.

  • Added codec for serialization of an embedded BitStream.

  • Radically optimized BitStream serialization of string, float, double and IPEndPoint etc. Both in terms of CPU performance and memory usage.

  • Added Equals methods to types like LocalHostData, LocalPeerData, HostDataFilter, PeerDataFilter and NetworkP2PHandoverInstance.

  • Minor optimization of time measurement functions.

  • Minor improvements to the uLink Editor GUI windows.



Fixes:


  • Added workaround for potential socket send & receive buffer size issue if uLink is used outside Unity’s Mono (like in uServer). The issue lies in some official Mono versions which corrupt the socket buffer size, in most cases shrinking it substantially. This can now be avoided by setting size to 0, which will keep the OS-default.

  • Fixed potential local time drift due to some loss of precision (especially on CPUs with low clock frequency) when using TimeMeasurementFunction.StopWatch.

  • Added fallbacks for TimeMeasurementFunction.StopWatch, if CPU clock frequency is suddenly changed during run-time. This can be triggered by for example CPU-manufacturer-specific-tweaking tools like Asus EPU-6 Engine utility.

  • Fixed frequency bug when using TimeMeasurementFunction.DateTime.

  • Fixed potential issue with cleanup of a disconnected player, if groups are made empty.

  • Added additional safety checks in internal communication channels.

  • Fixed issue when initializing server in callback message uLink_OnFailedToConnect.

  • Fixed potential bug with NetworkMessageInfo.flags for reliable and encrypted RPCs.

  • Added proper error handling when host is unreachable or internet connection is unstable (important for mobile devices).



Changes:


  • Renamed BitStream.ReadBitStream() to BitStream.GetRemainingBitStream() and renamed BitStream.WriteBitStream() to BitStream.AppendBitStream(). This is to emphasize that these functions are not intended for embedding. Added new ReadBitStream() and WriteBitStream() methods for that use case.

  • Removed BitStream type-safety because the current implementation is not ideal. Type-Safety is being re-designed for uLink 1.6.x, and will be much more optimized and reliable.

  • Changed license text to reflect the new policy on security and statistics.






Yours truly,

Aidin

Aidin Abedi

unread,
Mar 5, 2014, 5:50:22 AM3/5/14
to unitypark-news

Hello My Developers,


One hotfix is ready for you. All the reported 1.5.7.1 issues from yesterday have been fixed. Thank you for reporting them!



uLink 1.5.7.1 Lina (2014-03-05) [Windows] [Mac] [Linux (tools only)]





Fixes:


  • Fixed bug preventing clients from accepting unconnected internal message responses (like LAN discovery etc), although Network.config.allowInternalUnconnectedMessages is true.

  • Fixed incorrect prime number size check in custom internal HashSet implementation.





Sincerely,

Aidin


Reply all
Reply to author
Forward
0 new messages