Commit Graph

64 Commits

Author SHA1 Message Date
Karrar
e84924ea8b Changed how network objects are rolled back. Now, objects are no longer rolled back when they don't have to. Before now, when Prediction Mode of an object was set to Everyone, that caused the object network state to roll back each tick. This is no longer the case. Now, the object network state is only rolled back when it was changed in the client, or the object received new a state from the server. This is a significant improvement in client CPU performance. 2024-10-25 11:12:35 +03:00
Karrar
c1b68bae1b Fixed an issue causing the main scene to duplicate in the client. The duplicate scene gets immediately unloaded. However, it causes DontDestroyOnLoad objects to duplicate. 2024-10-17 01:02:52 +03:00
Karrar
d675fa54e9 Added ensureSafety to [Networked] attribute. When it's equal to true, it will ensure that any access to this network variable will be valid and never result in a null reference exception even when Netick is not started. 2024-10-11 16:22:08 +03:00
Karrar
ab2f95c53d Fixed an issue with generic classes inheriting from NetworkBehaviour. 2024-10-11 09:38:06 +03:00
Karrar
01d6efd4b4 Fixed an issue with calculating the normal on a box HitShape. 2024-10-08 15:36:58 +03:00
Karrar
d6e0bc5597 Added [Preserve] attributes to internal Lag Compensation methods to prevent them from being stripped when Unity Stripping Level is set to low or higher. 2024-09-30 22:21:21 +03:00
Karrar
cdf48fbcaa Fixed an issue with NetworkTransform.GetInterpolationData when agressive rotation compression is turned on. 2024-09-29 22:52:17 +03:00
Karrar
0cd07c0c1b Changed NetworkAwake behavior. Now, NetworkAwake should be reliable and safe to use. NetworkAwake is invoked immediately when a network object is created, and before any other callbacks. 2024-09-19 16:23:59 +03:00
Karrar
5acdcdbebe Added support for auto-compression (using codegen) to struct field members. Making a float-based field (such as float or Vector3) of a struct a property, and adding [Networked] attribute to it, will allow Netick to provide extra compression on it. This will noticeably reduce client->server bandwidth when done on float-based members of network input types. 2024-09-18 09:37:17 +03:00
Karrar
8dda03efcf Added NetworkSandbox.AttachGameObject and NetworkSandbox.DeattachGameObject. These methods are used to manually attach/detach game objects to/from the visibility system when using sandboxing, and attach/detach rigidbodies to/from the non-networked rigidbody interpolation system that is used to interpolate rigidbodies that are not networked in non-main physics scenes. 2024-09-13 00:18:52 +03:00
Karrar
14c122c151 Fixed an issue with IL2CPP that caused an internal ordering issue that prevented RPCs from working correctly when there are multiple RPCs with similar names in the game project. 2024-09-12 10:27:16 +03:00
Karrar
54e4928c04 Updated README.md. 2024-09-11 04:21:26 +03:00
Karrar
e2944d1ae6 Removed the Assemblies section in Netick Settings. Now other assemblies are automatically detected. 2024-09-10 23:14:36 +03:00
Karrar
f97e60c999 Added Normal to LagCompHit and LagCompHit2D. 2024-09-05 19:28:02 +03:00
Karrar
737209385a Fixed a rare issue that causes an OnChanged method not to be invoked when a misprediction occurs (on another variable) that causes the variable to change but no OnChanged callback is ever invoked, even though the value before rollback and the value after rollback & resimulation weren't the same. 2024-09-02 18:18:27 +03:00
Karrar
d294f65bd7 Added packet loss stats to NetworkInfo and made several other improvements. 2024-08-25 01:58:57 +03:00
Karrar
b10c8c8f06 Fixed an issue with parenting network objects. 2024-08-23 05:53:28 +03:00
Karrar
bceb246d91 Fixed an issue with calculating prediction tick offset that was causing missed inputs at very high tickrates (+100). 2024-08-20 23:12:47 +03:00
Karrar
9dc1884469 Fixed an issue with CSP that was causing very frequent speed-ups (which look like jitter) on predicted objects, which was most noticeable on fast-moving objects. 2024-08-19 02:06:53 +03:00
Karrar
8795bf71f9 Fixed an issue causing NetworkBehaviour.OnInputSourceChanged to be invoked before OnConnectedToServer network event. 2024-08-14 02:30:02 +03:00
Karrar
fd6781ea83 Fixed an issue with NetworkDictionary and NetworkHashSet causing them to override the memory of adjacent variables. 2024-08-08 18:18:48 +03:00
Karrar
fbb5a2800f Fixed an issue causing the client to destroy all scene network objects when it finishes loading the scene before the server. 2024-08-08 15:45:41 +03:00
Karrar
776c38fa86 Fixed an issue with NetworkHashSet causing it to override the memory of adjacent variables. The previous commit didn't fully fix the issue with NetworkHashSet. 2024-08-08 15:18:41 +03:00
Karrar
22a389784c Changed the way Ids of Network Objects are assigned. Now Ids are never recycled and reused, instead, they only increment forward. In the future, we will allow the previous behavior too as an option. 2024-08-08 14:57:08 +03:00
Karrar
60c1e9323e Fixed an issue causing only up to 500 bytes worth of unreliable RPCs to be received in the client when sent together at the same tick by the server. 2024-08-05 10:27:03 +03:00
Karrar
3f02ec362c Added InputReuseAtLowFPS to Netick Settings. Read this for details: https://netick.net/docs/2/articles/understanding-client-side-prediction/writing-client-side-prediction-code.html#framerate-lower-than-tickrate 2024-08-03 03:19:47 +03:00
Karrar
417d60b93b Added a testing change to debug an issue with RPCs. 2024-08-02 22:11:31 +03:00
Karrar
010cd7a4cc Added NetworkDictionary<TKey,TValue>, NetworkHashSet<T> and NetworkUnorderedList<T>. 2024-07-29 04:32:17 +03:00
Karrar
d2ef08b789 Improved RPC error handling. Now, when an exception is thrown inside the body of an RPC method, Netick will no longer kick the calling client, instead, it will only print the exception. 2024-07-16 11:17:25 +03:00
Karrar
2e7f114fac Fixed an issue with OnVisibilityChanged network event. 2024-07-08 22:10:21 +03:00
Karrar
1e2fa03efe Added OnVisibilityChanged to Sandbox.Events. This is a callback that is invoked when a sandbox visibility state changes 2024-07-08 03:40:45 +03:00
Karrar
f80c9dc6e8 Fixed an issue with the previous commit. 2024-07-07 08:19:46 +03:00
Karrar
7319346d2a Fixed several issues with additive scene loading. 2024-07-06 05:04:07 +03:00
Karrar
1cfd073481 Fixed several issues with additive scene loading. 2024-07-03 05:01:45 +03:00
Karrar
68fa2debe0 Removed a testing log. 2024-07-01 15:30:42 +03:00
Karrar
c6789f90ed Fixed an issue that causes RPCs called in the server to newly spawned objects (at the same tick that the object was spawned at) to be missed in the client. 2024-07-01 12:35:19 +03:00
Karrar
214b9c3afd Fixed a rare issue when an additive scene that was just loaded in the client is unloaded in the next tick, causing an exception to be thrown. 2024-06-29 23:51:24 +03:00
Karrar
569c12dee2 Fixed an issue when destroying an object that is affected by IM. 2024-06-28 20:01:47 +03:00
Karrar
4a22d6430b Fixed an issue with loading/unloading additive scenes. 2024-06-28 18:45:52 +03:00
Karrar
8c4bf3bea8 Added interpolationSource optional parameter to [Smooth]. This lets you choose the interpolation source for Auto Interpolation. 2024-06-25 04:40:19 +03:00
Karrar
e2720f7800 Fixed an issue causing Rigidbody.isKinematic to not replicate to clients when using NetworkRigidbody. 2024-06-09 01:23:19 +03:00
Karrar
e7b89d90f0 Improved Prediction Error Correction Smoothing by coupling position and rotation in the corrector. 2024-06-07 10:56:23 +03:00
Karrar
f7ac776294 Changed the way OnPlayerConnected is invoked for the host player. Now it's invoked after NetworkStart has been invoked for all scene objects and the sandbox object. This is safer than before to avoid the problem of subscribing to Sandbox.Events.OnPlayerConnected in a scene object after it was already invoked for the host player, thus missing the call for the host player on that scene object. 2024-05-26 02:35:06 +03:00
Karrar
5b34dc69a5 Fixed an issue when destroying an object that has a NetworkTransform, NetworkRigidbody, or NetworkRigidbody2D component which has Prediction Error Correction Smoothing set to true. 2024-05-24 17:39:22 +03:00
Karrar
ccab14eb75 Added a feature for prediction error correction smoothing on NetworkTransform, NetworkRigidbody, and NetworkRigidbody2D. 2024-05-23 21:03:34 +03:00
Karrar
b8f7ff1294 Changed OnPlayerDisconnected to be invoked for the host player in the host when Netick shuts down. 2024-05-13 03:18:45 +03:00
Karrar
4fb0fbbe61 Fixed an issue causing Netick to not consider the host as a player in regards to NetickConfig.MaxPlayers. 2024-05-13 03:07:19 +03:00
Karrar
1a598bdc52 Added support for sending data that is decoupled from Netick main packets, directly using the transport.
- added `SendData` to `NetworkConnection`.
- added `OnDataReceived` to `Sandbox.Events`.
- added `SendUserData` to `TransportConnection`.
2024-05-12 01:55:49 +03:00
Karrar
21cfc82227 Fixed an issue when destroying a NetworkObject with a network id of -1. 2024-05-10 11:07:19 +03:00
Karrar
e5d78fe412 Fixed an issue with Sandbox.DestroyPool not working correctly. 2024-05-09 23:43:24 +03:00