WhatsNew /
uLink
1.1 Julia (2011-07-07)
Improvements:
- Added property uLink.Network.config to fine-tune low-level network settings such as: timeBetweenPings, timeoutDelay, handshakeRetryDelay, handshakeRetriesMaxCount and maximumTransmissionUnit. For example modifying timeoutDelay is useful when the server or client has a low CPU priority and they’re busy loading a level and can’t keep their connection alive. See Advanced Topics.
- Added function uLink.BitStreamCodec.Add() variant without specifying type code.
Changes:
- Renamed all “args” parameters in BitSream’s functions to “codecOptions” to emphasize their purpose.
- Deprecated BitSream.Read(out T) since it’s recommend practice to use BitStream.Read() or BitStream.TryRead(out T) instead.
Improved Manual Chapters
- Advanced Topics - New section: Fine-tuning network parameters.
1.1 Julia (2011-06-20)
Improvements:
- Further internal optimizations when writing to BitStream and sending RPCs.
- Added “show frame rate” option to utility component uLinkStatisticsGUI.
- Further improved API documentation with more example code and explanations.
Changes:
- Mistakenly connecting to or from older uLink versions (with different protocols such as 1.0 and 1.1) will now also be logged.
New Manual Chapters:
- Connecting Client and Server - Describes the process of client-server connection in detail and the order of the uLink callbacks involved.
- Editor Integration - Describes the Unity Editor menus and windows that are added by uLink.
- Utility Scripts - Describes the helpful utility script components that are included with uLink.
Improved Manual Chapters:
- Network Views - New section: uLinkNetworkView vs. uLink.NetworkView.
- RPC Details - New section: RPC calling options.
- State Synchronization Details - New section: Synchronizing script components.
- Instantiating Network-Aware Objects - New sections: NetworkPlayer roles, Instantiate() variations, Instantiation sequence.
- Peer-To-Peer - New section: Inter-server or inter-client communication with P2P. Better description of handovers.
- Server Operations - New section: Logging.
- Lots of small improvements throughout the manual.
New Tutorial Projects:
- Advanced Bootcamp Multiplayer
1.1 Julia (2011-06-08)
Changes:
- AllocateViewID() returns the least recently used viewID from the allocatable pool (in a “First In, First Out”-manner) instead of always returning the one with the lowest viewID number.
Fixes:
- Fixed incorrect formatting of uLink build date.
1.1 Julia
Major Features:
- Convert a whole project made using Unity’s network to uLink in two clicks, including scenes, prefabs and script
- Comprehensive logging that can be customized in 5 different log levels for over 20 categories.
- A built-in Proxy Server in the Master Server, to circumvent firewalls and similar issues on client hosts. The Master Server also automatically determines whether to use a proxy or not upon each server registration.
- Edit all settings easily in a new editor window and save them as project settings, making them the default values when you play or build. Or apply them directly in play mode.
- A new editor window for viewing statistics quickly at any time.
- Generate authentication keys for security and server verification directly in a new editor window, with instructions on how to use them.
- Check for updates and view release notes directly in a new editor window.
New Manual Chapters:
- Authoritative Server Guide (Appendix B)
- Proxy server (Chapter 8)
- Pikko Server MMO (Chapter 16)
- Migration to uLink (Chapter 12)
- Server Operations (Chapter 17)
- Culling & LODing (Chapter 10)
New Example project:
- Authoritative Server example project
More Improvements:
- Support multiple NetworkViews per prefab.
- Support coroutine RPCs.
- Added 7 different predefined emulation modes including: Broadband, DSL, ISDN, Dial-Up, Local WiFi, 3G, GPRS. All of which can be further customized.
- A built-in connection tester in the Master Server, to determine whether a server upon registration has correctly forwarded it’s port or if not take appropriate action.
- Added uLink.NetworkView.RPC(MonoBehaviour type, string rpcName, ...) to fire a RPC only on a specific type of script.
- Added a lot of JavaScript-friendlier API variations of for ex. uLink.BitStream.Serialize, uLink.Network.Instantiate etc.
- Added a lot of flexible variations of APIs such as for ex. uLink.Network.Instantiate<T>.
- Added huge amounts of Unity-Network-backward-compatibility APIs such as for ex. uLink.Network.Connect(string), uLink.Network.InitializeServer(int, int, bool), uLink.Network.Destroy(GameObject) etc.
- Added new utility scripts uLinkOverrideSettings to override any category of settings just before they are used.
- Added support for authoritative server in uLinkSmoothCharacter.
- Added uLink.Network.emulation, which is also accessible from the Unity Editor editor window.
- Added uLink.NetworkLog, which is also accessible from the Unity Editor window.
- Added uLink.Network.DeallocateViewID and uLink.NetworkView.DeallocateViewID to be able to cleanup previously allocated ViewIDs.
- Added a new command line option “-test” in the Master Server and Policy Server to be able to test and debug a remote Master Server or Policy Server.
- Added a new event uLink_OnPreStartNetwork(uLink.NetworkStartEvent), which is called just before any one of 4 types of connections are started. This can be used for ex. to debug or override settings in one place.
- Added uLink.Network.DestroyAll, uLink.Network.RemoveAllRPCs, uLink.Network.RemoveAllInstantiates to remove everything at once.
- Improved uLinkStatisticsGUI with more options and statistics.
- Informative and nicely formatted output from ToString() overrides in uLink.NetworkView, uLink.NetworkP2P, uLink.NetworkViewID, uLink.NetworkPlayer etc.
- Added uLink.Network.Connect(HostData) which will connect to that host appropriately, if it for ex. uses a Proxy Server.
- Added HostData.timestamp, which tells when that host information was created.
- Added built-in serialization of DateTime.
- Added uLink.NetworkView.AllocateViewID, uLink.NetworkView.SetUnassignedViewID and other simplifying APIs.
- Added uLink.NetworkUtility with useful functions. For ex. parse and resolve "ipOrHost:Port" and convert error codes and status to string.
- Added NetworkAddressInfo to improve detecting if IPs are in the same subnet.
- Improved IP redirecting when servers are in the same LAN upon P2P handover.
- Improved preformance of listing all peers in uLink.NetworkP2P.connections.
- Improved so uLink_OnPeerDisconnected is triggered much sooner.
- Added uLink.NetworkLogUtility with useful functions to override the log writers.
- Added uLink.NetworkViewID.isManual and uLink.NetworkViewID.isAllocated.
- Added uLink.NetworkVersion to be able to compare different uLink versions.
- Added GUI draw order parameter to utility scripts so they can fit perfectly with other GUI scripts.
- Added catch for security exception internally and add information on what to do.
- Added easy to use “Enter License” window in the Unity Editor GUI.
- Added Unity Editor menu shortcuts to online resources such as the Manual, Community Q&A, API References etc.
- Added Unity Editor menu shortcuts to quickly start external tools like the Master Server and Proxy Server.
Fixes:
- Fixed uLink.Network.time and timestamp issue after 25 days.
- Fixed requesting host list from multiple MasterServer sequentially.
- Fixed security issue on webplayer when using Dns.GetHostName internally.
- Fixed issue when some viewIDs where not cleaned up correctly after shutdown.
- Fixed connection status and other issues in the Master Server.
- Fixed so multiple calls to RegisterHost doesn’t disconnect from the MasterServer.
- Fixed error when initializing or registering server in webplayer.
- Fixed so uLink_OnFailedToConnectToPeer won’t be triggered on the connectee, if it was full.
- Fixed issue where OnFailedToConnectToMasterServer was sometimes not correctly triggered.
- Fixed so more errors and warnings are logged.
- Fixed possible error when server is full and registered.
- Fixed uLink.NetworkView registering issues on awake.
- Added checks for incorrect parameters to uLink.Network.Connect or uLink.Network.InitializeCellServer.
- Fixed possible bug when connecting to Master Server.
Changes:
- Changed so license key is only checked on the server side.
- Changed default uLink.NetworkView.owner and uLink.NetworkView.creator to uLink.NetworkPlayer.server, for backwards compability with Unity’s Network.
- Changed so uLink.NetworkPlayer.server.ipAddress and port is your external IP and port.
- Changed uLink.NetworkView.Assign to uLink.NetworkView.SetViewID and added a simplified variation.
- Changed uLink.NetworkView.AssignManualViewID to uLink.NetworkView.SetManualViewID
- Changed uLink_OnNetworkBufferWasRecived to uLink_OnPreNetworkBuffered
- Changed uLink.Network.RemoveInstantiatingRPC(s) to uLink.Network.RemoveInstantiate(s)
- Changed uLink.Network.useUniqueStateSyncWhenOwner to uLink.Network.useDifferentStateForOwner
- Changed uLink.NetworkView.GetPrefabPath and .SetPrefabPaths to uLink.NetworkView.GetPrefab and .SetPrefabs.
- Changed uLink.Network.version to uLink.NetworkVersion.current.ToString()
- Changed uLink.Network.isSecurityInitiallyRequired to uLink.Network.requireSecurityForConnecting and is now used by both client and server. Furtermore, it is now also assignable.
- Changed so uLink.Network.GetAveragePing and .GetLastPing returns 0 if the target is the same as uLink.Network.player
- Removed some settings in uLinkSimpleServer and uLinkClientGUI because they are now editable globally in the uLink Settings window, in the Unity Editor.

