New: uLobby 1.2.0 Werecat (2012-09-10)

41 views
Skip to first unread message

Lars Liljenberg

unread,
Sep 10, 2012, 6:27:49 PM9/10/12
to unitypa...@googlegroups.com
Dear UnityPark developers,

A new version of uLobby has just been released into the wild. Named after the mythical shapeshifter that possesses the ability to transform itself from human into cat - the werecat - you'll have to catch it yourself at our download page! Below are the release notes.

uLobby 1.2.0 Werecat (2012-09-10)

Improvements:

  • Added encryption support, allowing the connection to the lobby to be secured using encryption algorithms based on a public-private key scheme. The API mimics uLink's encryption API, with the main methods being Lobby.InitializeSecurity and Lobby.UninitializeSecurity. The private and public keys are set using Lobby.privateKey and Lobby.publicKey.
  • Added support for specifying RPC flags for customising how RPCs are sent. Some Lobby.RPC method overloads now accept a parameter of type LobbyMessageFlags that contains the RPC flags. This allows for optimising the communication by specifying that an RPC is to be sent unreliably, unencrypted, or type unsafe.
  • Added new statistics API that allows for monitoring the activity in the lobby, such as what operations are being performed, how many packets are sent per second, or how many database writes have been made. This API is accessible through a nestled Statistics class in each of Lobby, ServerRegistry, AccountManager and FriendManager.
  • Separated the notions of peer type and the status of the connection. Peers now get their peer type immediately upon calling one of the connect methods, and retain it until they are disconnected. The LobbyPeerType.Connecting enum value is therefore obsolete. The new enum LobbyConnectionStatus and property Lobby.connectionStatus are now used for representing the status of the connection (i.e. whether it is connected, connecting, disconnected or disconnecting), while Lobby.peerType only represents whether the peer is a lobby instance, server or client (or, if none, disconnected).
  • Added optional timeout to Lobby.Disconnect to allow for specifying for how long the connection will linger before closing.
  • Added DisconnectImmediate method in Lobby that immediately closes the network socket.
  • Added optional argument to FriendManager.Master.GetFriendList for specifying whether to verify that the specified account exists before continuing with the operation. The default value is true.

Changes:

  • The meaning of the properties isLobby, isServer and isClient in the Lobby class has changed as a consequence of the new connection status API. These properties now return true while connecting or disconnecting (if the peer type is correct), whereas previously they would return false in this case. In order to retain the previous behaviour you can replace expressions such as Lobby.isClient with Lobby.isClient && Lobby.isConnected.
  • The GetAccount method in AccountManager.Master now fails with an exception if the specified account was invalid or does not exist, instead of returning null as the request result. A new method TryGetAccount has been added that has the old behaviour.
  • To make more clear its general responsibility and to reduce typing, FriendListManager is now called simply FriendManager. The old name can still be used but is marked as obsolete.
  • Renamed FriendListException to FriendException. The old name can still be used but is marked as obsolete.
  • Renamed FriendListError to FriendError. The old name is no longer available.
  • LobbyPeerType.Connecting is now marked as obsolete, and no peer will ever have this peer type. Use LobbyConnectionStatus.Connecting instead.
  • The Lobby.RPC method overloads that take a list of RPC targets now use IEnumerable as the type of the list instead of IList.

Fixes:

  • FriendManager.Master.GetFriendList now fails with an exception if the specified account was invalid or does not exist, instead of returning an empty friend list.
  • Numerous enhancements to the stability regarding connecting and disconnecting.

Extras:

  • Added new client-side DLL that only includes code usable by clients. This DLL is smaller than the standard DLL and does not depend on uGameDB, helping to minimise the size of deployed applications. It is included in the Plugins/uLobby/Extras folder in the uLobby package with the name uLobbyClient (without filename extension, to prevent Unity from building it together with the standard DLL). To use it, rename it to end with ".dll" and remove the original DLL, Plugins/uLobby/Assembly/uLobby.dll.
  • Added link.xml file in the uLobby package, located in the Plugins/uLobby/Extras folder. This file can be used when stripping has been enabled, in order to prevent Unity from stripping away code used by uLobby. To use it, place it directly under the Assets folder (possibly merging it with any existing link.xml file).

Sincerely,

Lars Liljenberg
Reply all
Reply to author
Forward
0 new messages