Author Topic: Latest Version: 3.3.2 (Feb 27, 2019)  (Read 44905 times)

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Latest Version: 1.8.4
« Reply #15 on: December 11, 2013, 02:15:25 AM »
1.8.3:
- FIX: Server instance will now open ports via UPnP when starting a remote-registered server.
- FIX: Eliminated warnings in Unity 4.

1.8.4:
- FIX: Automatically set the TNO owner on startup to the host if the owner is missing.

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Latest Version: 1.8.4
« Reply #16 on: February 25, 2014, 04:12:08 PM »
1.8.5:
- NEW: It's now possible to add RCCs via TNManager.AddRCCs function that are not under TNManager.
- NEW: TNSyncRigidbody now has the "isImportant" flag just like TNAutoSync.
- FIX: TNManager.isActive set to false no longer prevents ping requests from being sent out.
- FIX: Added an extra step before enabling UDP traffic to avoid cases where it gets enabled erroneously.
- FIX: TNet.Tools.localAddress will now use GetHostAddresses instead of GetHostEntry.
- FIX: Unity 4.5 and 4.6 compile fixes.

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Latest Version: 1.8.5
« Reply #17 on: May 10, 2014, 01:24:43 AM »
1.9.0:
- NEW: TNManager no longer needs to be present in the scene for you to use TNet.
- NEW: You can now send just about any type of data across the network via RFCs, not just specific types.
- NEW: Added custom serialization functionality to send custom classes via RFCs more efficiently.
- NEW: Added a DataNode tree-like data structure that's capable of serializing both to binary and to text format.
- NEW: AutoSync can now be set to only sync when new players join.
- NEW: Added support for multiple network interfaces (Hamachi etc).
- NEW: Added a bunch of serialization extension methods to BinaryWriter.
- NEW: TNet will now show the inner exception when an RFC fails.
- FIX: Better handling of mis-matched protocol IDs.
« Last Edit: May 10, 2014, 01:33:12 AM by ArenMook »

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Latest Version: 1.9.1
« Reply #18 on: May 23, 2014, 09:42:36 PM »
1.9.1:
- FIX: Error about TNObjects with ID of 0 will now only show up when playing the game.
- FIX: If an RFC cannot be executed, the error message will explain why.

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Latest Version: 1.9.5
« Reply #19 on: June 17, 2014, 03:05:39 PM »
1.9.5:
- NEW: TNManager.SaveFile, TNManager.LoadFile, TNManager.Ping.
- NEW: TNManager.playerData, synchronized across the network. SyncPlayerData() to sync it if you modified it instead of setting it.
- NEW: Added DataNode.Read(byte[] data, bool binary) for creating a data node tree from raw data.
- NEW: Added OnPing, OnPlayerSync, and OnLoadFile notifications to the Game Client.
- NEW: Custom packet handlers will now be checked first, in case you want to overwrite the default handling.
- NEW: TNServerInstance.SaveTo can now be used to save the server's state manually.
- FIX: Variety of serialization-related fixes and additions.
- FIX: Better error handling when connecting and better error messages.

The "Player Data" feature is experimental right now and is in further development / testing phase. The idea is simple. Set TNManager.playerData to something, and it will be automatically sent to everyone else, accessible via their TNet.Player.data field. This means you can have an inventory class here, achievements, player profile, metrics, etc. The only clause is that each player owns their own data. You should not be trying to change other player's data. You can set this value before connecting to the server or after -- it's up to you. Either way it's going to be sent to the server alongside your player name -- so just think of it as an extension of each player.

To make using it more convenient, I advise using the DataNode class and assigning it to the playerData like so:
  1. DataNode node = new DataNode("Info");
  2. node.SetChild("Faction", 123);
  3. node.SetChild("Main Hand", someUberSword);
  4. TNManager.playerData = node;
Other players will then be able to access it, and if you wish to be notified, assign a delegate to TManager.client.onPlayerSync:
  1. TManager.client.onPlayerSync += YourListener;
Your listener can then be:
  1. void YourListener (Player p)
  2. {
  3.     Debug.Log("Player " + p.name + " has updated their data");
  4.  
  5.     DataNode node = p.data as DataNode;
  6.  
  7.     if (node != null)
  8.     {
  9.         Debug.Log("Faction: " + node.GetChild<int>("Faction"));
  10.         //Debug.Log("Main Hand: " + node.GetChild<YourWeaponType>("Main Hand"));
  11.     }
  12. }

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Latest Version: 1.9.5c
« Reply #20 on: July 13, 2014, 06:47:19 PM »
1.9.6:
- NEW: TNet will now use UDP multicasting instead of broadcasting by default.
- NEW: Added convenience methods to retrieve player data in DataNode form.
- NEW: Faster way of getting the external IP address.
- NEW: Example menu now shows your internal and external IPs.
- NEW: TNet.Tools.ResolveIPs can now be called by itself with no callback.
- NEW: TNet.UdpProtocol will now choose the default network interface on its own.
- FIX: LAN server list is now no longer cleared every time a new server arrives.
- FIX: Read/write/delete file functions are now wrapped in try/catch blocks.
- FIX: Fixed the TCP lobby server (it was throwing exceptions).
- FIX: Fixed the ability to host a local TCP-based lobby server alongside the game server.
- FIX: Added Ping packet handling to the lobby servers.
« Last Edit: July 15, 2014, 02:40:55 AM by ArenMook »

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Latest Version: 1.9.6b (July 15th, 2014)
« Reply #21 on: August 08, 2014, 09:50:44 AM »
1.9.7:
- NEW: TNet is now fully Unity 5-compliant.
- NEW: SendRFC sent to the player's self will now result in immediate execution (think Target.Host).
- NEW: Added better/more informative error messages when RFCs or RCCs fail.
- NEW: TNObject inspector will now show its player owner and whether the player owns this object (at run time).
- FIX: TNManager.JoinChannel will now load the level even without TNManager.
- FIX: TNObjects will now have valid IDs even without TNManager.
- FIX: Added a null check in PrintException for when working with static RCC functions.
- FIX: OnNetworkDisconnect will now be called when the connection is shut down in a non-graceful manner.
- FIX: DataNode should have been clearing the child list after resolving custom data types.

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Latest Version: 1.9.7 (August 8th, 2014)
« Reply #22 on: September 13, 2014, 04:25:17 AM »
1.9.8
- NEW: TNBehaviour's DestroySelf() function is now virtual.
- NEW: TNManager.onPlayerSync and TNManager.SyncPlayerData().
- NEW: String arrays are now serialized more efficiently within the DataNode.
- NEW: TNSyncRigidbody's updatesPerSecond is now a float so you can have 1 update per X seconds.
- NEW: TNManager.isJoiningChannel, set to 'true' between JoinChannel and OnNetworkJoinChannel.
- NEW: TNet's server instance can now be single-threaded for easier debugging in Unity.
- NEW: You can now pass TNObjects as RFC parameters.
- FIX: It's now possible to save the server properly even while it's running.
- FIX: TNet will no longer save non-persistent game objects when saved to disk.
- FIX: Int values can now be auto-converted to floats.
- FIX: Quite a few DataNode serialization changes/fixes.

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Latest Version: 1.9.8 (September 13th, 2014)
« Reply #23 on: September 19, 2014, 10:30:34 PM »
1.9.9
- NEW: TNManager.serverTime (in milliseconds)
- NEW: Added automatic serialization support for long, ulong, long[] and ulong[] types.
- NEW: TNObjects now have a DestroySelf function which TNBehaviours call that ensures the object's destruction.
- FIX: tno.isMine was not set properly for new players after the original owner left.
- DEL: Removed the setter from TNObject.ownerID, as it's handled properly on the server now.

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Latest Version: 1.9.9 (September 19th, 2014)
« Reply #24 on: September 25, 2014, 08:07:23 PM »
2.0.0
- NEW: Added the ability to send messages players by name rather than ID (think private chat messages).
- NEW: Saved/loaded files should now be kept in a dictionary for faster lookup.
- FIX: TNSerializer's WriteInt didn't work for negative values.
- FIX: Custom RCCs didn't seem to work quite right on the stand-alone server.
- FIX: More tweaks regarding object ownership transfer.

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Latest Version: 2.0.0 (September 25th, 2014)
« Reply #25 on: October 19, 2014, 12:08:48 PM »
2.0.1
- NEW: TNet can save files in the user's My Documents folder if you like.
- FIX: Fixed an issue with RFCs not being stored correctly in some cases.
- FIX: TNManager.Destroy will now also mark objects as destroyed, so RFCs sent between the destroy request and the response will be ignored.
- FIX: TNet will now automatically block outgoing messages between JoinChannel/LoadLevel and level loaded/channel joined notifications.
- FIX: Fixed System.Collections.Generic.List<> serialization.

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Latest Version: 2.0.1 (October 18th, 2014)
« Reply #26 on: November 22, 2014, 04:40:50 PM »
2.0.2
- NEW: Added tno.Send via player ID. No need to FindPlayer anymore.
- NEW: Added a #define to TNSerializer you can use to ignore errors.
- NEW: TNet will now automatically remove the read-only flag when using Tools.WriteFile.
- FIX: TNSyncRigidbody will no longer try to set velocity if the rigidbody is kinematic.
- FIX: Added some extra code to ensure that sockets get cleaned up properly.
- FIX: Got rid of the != Component comparison, fixing the CompareBaseObjectsInternal error.
- FIX: Added 'long' type serialization for DataNode.
- FIX: TNAutoSync's updates per second value is now a float, matching TNSyncRigidbody.
- FIX: WP8 compile fixes.

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Latest Version: 2.0.2 (November 22nd, 2014)
« Reply #27 on: January 04, 2015, 08:28:25 AM »
2.0.3
- NEW: Added an option to TNServerInstance.Start to not open the port via UPnP (for private servers).
- NEW: TNServer.exe can now be run as a background process and will save periodically.
- NEW: Added int[] and float[] serialization.
- FIX: Added a try/catch to multicasting membership subscription as it apparently doesn't work on some computers.

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Latest Version: 2.0.3 (January 4th, 2015)
« Reply #28 on: January 18, 2015, 05:15:30 AM »
2.0.4
- NEW: Added timestamps and player IDs to the server log messages.
- NEW: Added a new packet that can be used to send messages to be printed directly to the server's log.
- NEW: TNet's ReadFile and similar functions can no longer access files outside the executable's folder and Documents.
- FIX: Added some extra code to ensure that stale servers get removed from the Lobby Server's list.
- FIX: UPnP should now work better.
- FIX: Fixed string[] serialization (apparently there is a strange edge case in C#)
- FIX: Strings sent via RFC parameters can now be empty.
- FIX: Renamed players should no longer affect other clients.
- FIX: TNManager.isHosting should now check for the connected state as well.
- FIX: Game servers should now respond to UDP pings correctly.
- FIX: You can no longer receive NaNs through TNet. They will now automatically get set to zero.
- FIX: Removed warnings from web player compilation.
- FIX: TNet should now handle packets that have been sent only partially.

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Latest Version: 2.0.4 (January 18th, 2015)
« Reply #29 on: April 02, 2015, 12:02:59 AM »
2.0.5
- NEW: TNet's level loading is now asynchronous.
- NEW: Added SortByPlayers() and SortAlphabetic() functions to the TNServerList.
- NEW: Added support for LZMA-based DataNode compression. It's used in Windward and requires the public LZMA library.
- FIX: File saving should now work on Android properly.
- FIX: TCP lobby link now sends "keep alive" messages to ensure that the stale servers get removed properly.
- FIX: Variety of minor tweaks and improvements merged from Windward's development branch.
- FIX: UDP multicasting will now be off by default on iOS devices.
- FIX: Float parsing from text format should now work with floats specified as "1,23", not just "1.23".
- FIX: Disconnect() call will now properly shut down a connection attempt in progress.