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.