Commit Graph

221 Commits

Author SHA1 Message Date
Karrar
e0b6616f93 Fixed a codegen issue with Guid type. 2025-07-09 14:23:18 +03:00
Karrar
cccdbffd65 Fixed a null reference exception in Sandbox.SetPlayerObject when passed a null player object. 2025-07-09 07:13:48 +03:00
Karrar
f6ea3fd0f6 Added Sandbox.GetBehavioursOfType to performantly get all scripts (in the simulation) of a specific type. 2025-07-08 15:43:01 +03:00
Karrar
3e235a3bf6 Changed Sandbox.GetPlayerObject to return null gracefully when no object is associated with a player, instead of throwing an exception. 2025-07-07 18:00:33 +03:00
Karrar
49f7867cd7 Added RaycastAll extension methods for PhysicsScene and PhysicsScene2D. These extensions wrap Raycast overloads that populate a hits array, offering a more intuitive alternative to Unity's inconsistently named methods. 2025-07-07 15:09:27 +03:00
Karrar
864f003677 Fixed code gen issue for RPC methods where the only parameter is RpcContext. 2025-07-07 14:44:25 +03:00
Karrar
53ddf149e1 Added support for targeted RPCs and optional RpcContext parameter
- Enables sending RPCs to specific players
- Introduces `RpcContext` struct for contextual metadata (e.g., sender info)
2025-07-05 16:39:49 +03:00
Karrar
466c31df64 Added Vector2ErrorCorrector and FloatErrorCorrector types for smoothly correcting prediction errors. 2025-07-02 01:48:15 +03:00
Karrar
e19a418de5 Changed Sandbox.GetPlayerFromId to Sandbox.GetPlayerById. 2025-06-30 04:37:17 +03:00
Karrar
9f31f4f16c Fixed an issue in code gen where non-networked properties within structs marked with [Networked] were being incorrectly modified, leading to code gen errors. 2025-06-28 23:23:16 +03:00
Karrar
07feb115b3 Added a warning for [Networked] structs when float-quantizable members (e.g., float, Vector2, Vector3) are declared as fields instead of properties. 2025-06-28 04:23:33 +03:00
Karrar
a128b527ed Fixed an issue where some clients did not receive data from the server when multithreading was enabled and the number of connected clients was odd. 2025-06-27 07:21:06 +03:00
Karrar
1b0d33d8f0 Read the description for detailed changes.
- Added `Sandbox.Players`: a synchronized list of `NetworkPlayerId` structs representing connected players.
- Added `Sandbox.Events.OnPlayerJoined` and `Sandbox.Events.OnPlayerLeft` callbacks, synchronized across all clients.
- Changed internal interpolation of quaternions to use `Slerp` instead of `Lerp`.
- Fixed a potential crash caused by undefined behavior when reaching `NetickConfig.MaxPlayers` and destroying network objects.
- Fixed an issue where sandbox-loaded scenes were not being unloaded during shutdown.
- Fixed a bug preventing Prediction Error Correction from functioning correctly.
2025-06-27 05:47:00 +03:00
Karrar
8e2db0f357 Fixed an issue where multiple keys with identical hash codes caused undefined behavior in NetworkDictionary and NetworkHashset. 2025-06-14 18:10:49 +03:00
Karrar
fb0bb8ba67 Improved Prediction Error Correction Smoothing by changing the correction method. 2025-06-14 18:10:08 +03:00
Karrar
5d7ebde5e1 Fixed showing the reversed icon for the folding state of the sandbox element in the Sandboxes tab of Netick window. 2025-06-08 15:29:22 +03:00
Karrar
0ec3babf0d Added the sandbox name next to the scene name in the hierarchy UI in the editor. 2025-06-06 15:55:42 +03:00
Karrar
49a8a05b2a Added Accurate Local Interpolation to Netick Config. By default, Netick uses the predicted (and thus potentially inaccurate) From snapshot for local interpolation even after rollback & resims, which results in basic smoothing over prediction errors. However, enable this if you want to always use the reconciled From snapshot. 2025-05-28 19:38:00 +03:00
Karrar
e13c8efacf Added Head and Tail properties and GetNode method to NetworkLinkedListSnapshot to make performing a traditional linked list iteration easier. 2025-05-24 14:21:35 +03:00
Karrar
4a8d3b76c9 Improved Remote Interpolation buffering in the client. Now, it should adjust faster when network conditions improve. In addition, added Extra Interpolation Delay to Netick Config, which determines the amount of extra remote interpolation delay/buffering added in the client, regardless of connection quality. This is a value between 0 and 1, where 1 is equivalent to one send tick worth of delay/buffering. 2025-05-18 12:33:51 +03:00
Karrar
0f873217c8 Fixed an issue that, sometimes, caused an exception to be thrown in NetworkBehaviour.InternalReset at runtime after changing the size of a network array at editor/codegen time. 2025-05-15 08:42:14 +03:00
Karrar
cea642e073 Fixed an issue with scene network objects in additive scenes not being added to the simulation by Netick, which was caused by the previous change. 2025-05-15 04:59:53 +03:00
Karrar
b9a2e60966 Changed how the Scene Id of scene network objects is assigned. Now, it's only set once when the object is first created. And it's no longer an ascending value, it's a unique (within the object's scene) random value in the range of int.MinValue and int.MaxValue, excluding -1, which is used as the invalid id. The ascending id still exists, but now is called Runtime Scene Id, and it's only set at runtime and used internally by Netick. 2025-05-13 14:08:11 +03:00
Karrar
6c88474657 Made a small change in how scene object ids are assigned. 2025-05-11 09:09:47 +03:00
Karrar
d442880219 Added GetPreviousNetworkUnorderedList to OnChangedData. 2025-05-10 08:58:27 +03:00
Karrar
b0bac5b95a Removed a call to GC.Collect when starting Netick. This was causing a big CPU spike at startup. 2025-05-08 22:29:40 +03:00
Karrar
6461a567ba Added NetworkObject.SetInitialProperties to set initial properties like Prediction Mode and Add To Network Loop. 2025-05-07 22:28:57 +03:00
Karrar
7cea3900f9 Fixed an issue with NetworkObject.SetStateFrom and NetworkBehaviour.SetStateFrom. 2025-05-05 21:59:50 +03:00
Karrar
6b095f9a3b Fixed an issue with NetickEngine.CopyWorldStateTo. 2025-05-05 17:42:26 +03:00
Karrar
70f8395422 Fixed an issue with clearing the networked state memory of newly spawned network objects, which was causing the values of the networked state of previously destroyed objects to show in the newly spawned objects. 2025-05-04 23:13:15 +03:00
Karrar
7145c90159 Adding a testing change to debug an issue with a potential NetworkTransform. 2025-04-30 01:55:51 +03:00
Karrar
1ffceba53e Adding a testing change to debug an issue with a potential NetworkTransform. 2025-04-30 01:11:02 +03:00
Karrar
c1e4405850 Fixed an issue when unloading a scene that caused a null reference exception to be thrown in Netick.InterestManagement.ProcessGroup. 2025-04-30 00:22:45 +03:00
Karrar
08c839edf1 Read the description for detailed changes.
- Improved memory usage in the client.
- Added methods to simplify saving/loading a snapshot of the world's networked state.
- Fixed an issue with Interpolation Delay calculation.
2025-04-29 21:47:49 +03:00
Karrar
7eeb2ca1ce Changed NetworkObject.PrefabId to be public. 2025-04-20 08:09:22 +03:00
Karrar
116eea8247 Changed NetworkDictionary indexer setter behaviour to add a new element with the specified key when the key was not found in the dictionary instead of throwing an exception. 2025-04-08 00:32:48 +03:00
Karrar
e31eec5daa Added IncludeInactiveObjects to NetickConfig. Enabling this setting allows Netick to register inactive (disabled) network objects, network behaviours, and network event listeners. 2025-04-08 00:16:06 +03:00
Karrar
6118a98219 Changed PhysicsSimulationStep to use Sandbox.ScaledFixedDeltaTime instead of Sandbox.FixedDeltaTime to take Time.timeScale into account. 2025-04-07 18:29:05 +03:00
Karrar
ff8ea12efc Fixed a slight issue with calculating outgoing bandwidth. 2025-04-03 21:56:28 +03:00
Karrar
187cb86867 Fixed an issue causing auto-quantization to not work on structs that are defined outside a NetworkBehaviour class. 2025-03-26 13:04:56 +03:00
Karrar
5d7a60cb70 Fixed an issue with the new prefab system causing a Server sent bad data error in the client. 2025-03-26 04:39:51 +03:00
Karrar
bd6d5a22c9 Fixed not being able to set NetworkObject.InterestGroup to null. 2025-03-24 10:57:24 +03:00
Karrar
49a877f25d Fixed an issue with Sandbox.SimulatedLossOut causing it not to affect Sandbox.OutPacketLoss. 2025-03-24 07:44:48 +03:00
Karrar
8a83c3d05b Fixed an issue with Sandbox. NetworkInstantiate<T> causing a stack overflow. 2025-03-24 00:14:36 +03:00
Karrar
b599622b1c Fixed a small issue with the previous commit. 2025-03-22 22:04:30 +03:00
Karrar
b1090b8ab2 Fixed an issue where nested network objects of persistent objects get unlinked when changing scenes. 2025-03-22 21:57:55 +03:00
Karrar
87e4653a01 Fixed an issue with persistent network prefabs. 2025-03-22 20:49:49 +03:00
Karrar
5f8afcdf7a Changed Prefab Fetch Mode to Auto Get Prefabs. 2025-03-22 07:53:55 +03:00
Karrar
8a28181a82 Rewritten the network prefab runtime and editor systems from scratch. Now it should be less error-prone, more capable (ability to choose prefabs location, ability to select prefabs manually, and ability to provide a prefab list at runtime before starting Netick), and more performant (at editor time). In addition, Netick will no longer make any changes on prefabs at editor time, so you shouldn't see any changes on git anymore on prefabs. In addition, misconfigured prefab ids will no longer be a problem, because they are set at runtime instead of editor time. 2025-03-20 01:38:57 +03:00
Karrar
b95e68a568 Fixed an issue causing the client not to send redundant inputs. 2025-03-19 22:26:23 +03:00