Skip to content

Releases: FirstGearGames/FishNet

1.4.7

02 May 20:49
Compare
Choose a tag to compare
  • Fixed broadcast handlers not unregistering properly.
  • Added CodeAnalysis to catch common mistakes such as using IsOwner in Awake or Start.
  • Added support for nested NetworkObjects within scenes and prefabs.
  • Fixed Awake being called on inherited NetworkBehaviours without the users intent.
  • Added networkObject/gameObject.Spawn, to spawn the extended object using InstanceFinder.
  • Added base.Spawn(networkObject).
  • Fixed timed observer conditions causing incorrect visibilities and flickers for clientHost.
  • Improved Tugboat utilizes Get/SetServerBindAddress.
  • Obsoleted transport.Get/SetServerBindAddress().
  • Improved Transport.Get/SetServerBindAddress now takes IPAddressType argument.
  • Added ListCaches.GetXYZCache/StoreCache which enables use of caches as a pool.
  • Improved several debug messages and handled more potential exceptions.
  • Added TimeManager.FrameTicked.
  • Improved timed ObserverCondition performance considerably.
  • Obsoleted ListCaches.TransformCache/NetworkObjectCache.

1.4.6

26 Apr 02:13
Compare
Choose a tag to compare
  • Added nested NetworkObject support!
  • Added SyncDictionary.Dirty(key) and SyncDictionary.Dirty(value).
  • Improved XML on SceneLookupData.
  • Improved NetworkTransform.SynchronizeParent reliability. Feature is still being worked on.
  • Fixed DefaultScene not changing scenes when older NetworkManagers are destroyed.
  • Fixed incorrect method being used to debug log spawn warnings.
  • Improved PredictedObject setup process.
  • Added additional constructors to SceneLoadData, SceneLookupData.
  • Changed Refresh Default Prefabs removed from NetworkManager in favor of Fish-Networking menu.
  • Changed NetworkManager.IterationOrder is no longer experimental and is now hard-coded.
  • Improved NetworkObject.IsNetworked XML.
  • Added SyncList.Dirty(T), to allow setting dirty by type reference.
  • Improved NetworkObserver.GetObserverCondition by removing required cast.
  • Added SceneManager.OnActiveSceneSet, which is called immediately after scenes load.
  • Fixed NetworkTransform updates occasionally skipping a tick.

1.4.5

20 Apr 17:38
Compare
Choose a tag to compare

IMPORTANT: this update requires you to delete your FishNet folder when importing from GitHub!!
IMPORTANT: this update requires you to delete your FishNet folder when importing from GitHub!!

  • Fixed automatic code stripping not working on some Unity versions.
  • Improved error message on missing SceneObjects.
  • Improved TransportManager.GetTransport signature.
  • Fixed TransportManager.GetTransport now returns Multipass when T is Multipass, rather than looking for a transport within Multipass.
  • Fixed RollbackManager not accumulating snapshots.
  • Improved NetworkAnimator no longer warns regularly when runtimeAnimatorController is null.
  • Added TimeManager.TimePassed to return time passed between current and previous ticks.
  • Improved default prefabs population speed.
  • Added SyncBase.WriteHeader in place of SyncBase.WriteDelta when only needing to write the header.
  • Added NetworkConnection.GetAddress to get the clients remote address.
  • Added Refresh Default Prefabs to the Fish-Networking menu.
  • Fixed NetworkAnimatorEditor not properly displaying parameters for AnimatorOverrideControllers.
  • Improved TimeManager.Tick is now set on clients during the authentication process.
  • Improved TimeManager readability.
  • Improved description of several codegen warnings.
  • Improved TimeManager.RoundTripTime accuracy.
  • Added TargetRpc and ObserversRpc attributes can be used on the same method.
  • Added NetworkManager.SpawnPacking, to control transform compression during spawns.
  • Added NetworkTransform.Packing, to control transform compression during updates.
  • Improved OnStartServer/Network, no longer call before active scene is set during a scene load.
  • Fixed IEnumerator Awake codegen errors when inheritance involved multiple assemblies.
  • Fixed Server and Client attribute methods not logging when NetworkBehaviour was not initialized.
  • Improved prediction example prefabs to use PredictedObject.
  • Added TimeManager.PingInterval is now configurable.
  • Added TimeManager.PredictionTimingInterval is now configurable.
  • Added experimental PredictedObject component.
  • Improved bandwidth usage on timing updates.
  • Improved performance on timing updates.
  • Fixed NetworkConnection.Broadcast using InstanceFinder instead of the NetworkManager reference.
  • Fixed objects not respawning for clients after they regain ownership.
  • Changed re-enabled RPCLinks.
  • Improved network objects in DDOL scene now initialize over the network.
  • Improved ObserverCondition performance when using timed conditions.
  • Changed RunLocally on RPCs will now only run once as host.
  • Added MatchCondition.
  • Changed Yak namespace to match other transports.

Note: this is an accumulated release. Some of these changes were performed in 1.4.4, which was not released to the asset store.

1.4.4

05 Apr 19:37
Compare
Choose a tag to compare
  • Improved prediction example prefabs to use PredictedObject.
  • Added TimeManager.PingInterval is now configurable.
  • Added TimeManager.PredictionTimingInterval is now configurable.
  • Added experimental PredictedObject component.
  • Improved bandwidth usage on timing updates.
  • Improved performance on timing updates.
  • Fixed TimeManager.Tick not synchronizing, from 1.4.3.
  • Fixed NetworkConnection.Broadcast using InstanceFinder instead of the NetworkManager reference.
  • Fixed objects not respawning for clients after they regain ownership.
  • Changed re-enabled RPCLinks.
  • Improved network objects in DDOL scene now initialize over the network.
  • Improved ObserverCondition performance when using timed conditions.
  • Changed RunLocally on RPCs will now only run once as host.
  • Added experimental MatchCondition.
  • Changed Yak namespace to match other transports.

1.4.3

27 Mar 00:28
Compare
Choose a tag to compare
  • Added DistanceChecker.HideDistancePercent to reduce spawn messages and better control visibility.
  • Added ability to disable automatic frame rate setting on Client/ServerManager.
  • Changed Yak transport namespace to match others.
  • Improved Exposed SceneManager.AddOwnerToDefaultScene.
  • Improved Exposed PlayerSpawner.Spawns
  • Added additional exploit protection.
  • Fixed connection scenes unloading for all players when clientHost would leave the scene.
  • Improved renderers now hide for clientHost when a scene is loaded for another connection that clientHost is not within.
  • Added TimeManager.SetPhysicsMode to set PhysicsMode at runtime.
  • Fixed NetworkManager.PersistenceType potentially destroying the wrong NetworkManager.
  • Changed ReadBytesAllocated now retrieves from ByteArrayPool.
  • Added prefabs can now be serialized.
  • Improved performance on SyncType initialization.
  • Added synchronize properties to NetworkTransform.
  • Improved reduced client to server bandwidth by up to 8 bytes per tick.
  • Improved how server handles client timing resulting in better scalability.
  • Added Spawn can now take a NetworkObject reference.
  • Fixed deserialization errors when using unreliable SyncVars.
  • Improved DefaultPrefabObjects from refreshing more than once while playing.

1.4.2

23 Mar 21:10
Compare
Choose a tag to compare
  • Fixed scene objects network initializing before server was set as started.
  • Improved state change messages for local client and local server are more descriptive.
  • Fixed NetworkObject not being removed in time when as a child of another NetworkObject while also a scene object.

1.4.1

22 Mar 21:50
Compare
Choose a tag to compare
  • Added experimental NetworkManager.Incoming/OutgoingIterationOrder.
  • Improved NetworkAnimator performance marginally.
  • Improved NetworkBehaviours are now found even when disabled on prefabs.
  • Fixed delay in CSP replication when a client loses ownership upon disconnect, then reconnects regaining ownership.
  • Improved SceneManager now prevents MovedObjectsHolder from becoming the active scene.
  • Improved compression on some numeric types using IntVar.
  • Improved NetworkObject initialization speed and made changes in preperation of nested NetworkObjects.
  • Improved several debug messages.
  • Fixed NetworkTransform sometimes incorrectly extrapolating slightly when using exceptionally low tick rates.
  • Improved CharacterController Prediction example now disables CharacterController for non-owners.
  • Improved spawn rotation now sends uncompressed to prevent initial alignment problems.
  • Improved all files have proper line endings.
  • Removed non-functional ServerBindAddress from Tugboat.
  • Changed ConcurrentQueues to Queues in Tugboat.
  • Fixed Tugboat polling order which would sometimes cause clients to send packets before being confirmed as connected.
  • Added Multipass, a transport that allows a server to run multiple transports at once.
  • Improved codegen to throw when attempting to create generic RPCs.
  • Fixed codegen error when implementing a generic field within a generic class that inherits NetworkBehaviour.
  • Improved exposed 'force' parameter in SyncList.Set.
  • Improved NetworkObserver no longer destroys itself with no conditions while using Ignore Manager. This is to allow global visibility.
  • Added SyncHashSet.
  • Improved unreliable packets by reducing bandwidth an additional 2 bytes.
  • Fixed NetworkAnimatorEditor possible null reference exception while the component was selected in the inspector, and while setting the animator controller to null at runtime.
  • Changed client connections are no longer considered added to a scene if they own an object in that scene; clients must specifically be loaded into scenes now.
  • Added serialized field PlayerSpawner.AddToDefaultScene. While true the player will be added to the scene where the player prefab is instantiated only if there are no global scenes already.
  • Improved NetworkObject removed warning no longer displays on nested NetworkObjects while NetworkObject.IsNetworked is false.
  • Fixed missing object errors when server-host unloads a scene and unexpectedly destroyed object data is sent to client-host.
  • Improved NetworkBehaviours no longer add NetworkObjects to root at runtime.
  • Added SyncList.Dirty(index). This allows users to mark a SyncList index dirty such as if they are changing properties within a reference type on that index.
  • Improved ListCache.AddValues can now take ISet.
  • Improved Tugboat incoming handling speed slightly.
  • Improved ReadDictionary speed slightly.
  • Changed NetworkManager.RefreshDefaultPrefabs is now false by default.
  • Improved NetworkManager tries to refresh default prefabs in a more intelligent manner now.
  • Added TransportManager.GetTransport to better support Multipass.
  • Added several ServerObject.RebuildObservers overloads to support upcoming MatchCondition.
  • Fixed codegen not creating a deserializer for dictionaries when they were used in RPCs.

1.3.4

24 Feb 04:18
Compare
Choose a tag to compare
  • Fixed SyncList and SyncDictionary doubling initial values for clients under rare circumstances.
  • Fixed Vector2Int and Vector3Int not deserializing properly.

1.3.2

20 Feb 20:34
Compare
Choose a tag to compare
  • Fixed SyncDictionary/SyncList clearing when client host would disconnect but server would remain running.
  • Removed unnused InitialState from ComponentStateSync.
  • Fixed SyncDictionary and SyncList adding double entries as host.
  • Fixed serializing null GameObjects causing read error on clients.
  • Improved ServerManager now errors when a third party transport provides an invalid clientId.

1.3.1

18 Feb 18:16
Compare
Choose a tag to compare

If coming from Fish-Networking 1.2.0.Nightly.0 or lower and NOT updating from the asset store delete your FishNet folder first.

  • Improved MirrorUpgrade tool to support Mirror57x+.
  • Improved objectIds are randomized in release builds.
  • (Pro) Added Yak transport, an offline transport which doesn't create sockets.
  • (Pro) Added automatic build code stripping.
  • Fixed SceneManager not clearing values when the server would disconnect.
  • Improved several logging and codegen messages.
  • Fixed clientId and RPCLinks not working properly after exceeding 32,767 concurrent connections or spawned objects.
  • Added Configuration window under Fish-Networking menu.
  • Added additional IL2CPP support for older Android devices.
  • Improved PredictedRigidbody.
  • Changed RigidbodyPrediction default prediction ratio to 0f.
  • Added PredictedRigidbody2D.
  • Fixed scene objects being disabled on clients with NetworkObject.IsNetworked unchecked.
  • Fixed SceneManager unloading scenes that were in scenes to be loaded, while using SceneLoadData.ReplaceOption.
  • Fixed incorrect parsing when sending multiple split packets in the same tick, one immediately after the other.
  • Added RPC overloading support.
  • Fixed ServerManager not sending Id to owner with ShareIds off.
  • Changed NetworkTransform send checks from OnTick to OnPostTick.
  • Improved Pro tools now only show locked message if user does not have Pro.
  • Fixed NetworkTransform in rare cases not completing a rotation with extremely low tick rates.
  • Improved NetworkTransform movement by turning on a feature that wasn't supposed to be turned off.
  • Improved Physics simulation mode and times revert to user settings on exit/stop play.
  • Improved codegen warns against directly accessing SyncVars which are being inherited from different assemblies.
  • Fixed broadcasts no longer warn when nothing is registered to a broadcast.
  • Fixed Client/ServerAttribute creating IL errors when used on a static method in a class that inherited NetworkBehaviour.
  • Added Manually Refresh Default Prefabs button to NetworkManager inspector.
  • Fixed Tugboat client timeout sometimes not working in editor.
  • Fixed scene objects sometimes not spawning when using Enter Play Mode Options with Reload Domain unchecked, and Reload Scene checked.
  • Fixed SyncType values not resetting on scene objects when server or client were stopped, while also not exiting play mode.
  • Improved TimeManager.TicksToTime to now take an optional boolean for using LocalTick or Tick.
  • Added TimeManager.TicksToTimeDouble methods.
  • Removed old files.
  • Fixed ClientAttribute.RequireOwnership not working properly.
  • Added more constructors to SceneLoadData.
  • Added RunLocally field to all RPC attributes. This allows the logic to run on the caller as well send the RPC.
  • Improved disabled socket timeout when acting as host.
  • Added TimeManager.SetTickRate to allow setting TickRate at runtime. This change must be synchronized manually.
  • Improved when server frame rate is default value(9999) it changes to tick rate.
  • Removed ServerManager.MaximumClientMTU. This feature will be greatly improved upon over the next release.