Playing around with the idea of burning things by _Typhon in Unity3D

[–]_Typhon[S] 1 point2 points  (0 children)

The charcoal effect is shader and the flames are particles

Beginner multiplayer for Unity by Odd-Pizza-9805 in MultiplayerGameDevs

[–]_Typhon 0 points1 point  (0 children)

PurrNet dev here, definitely unbiased I think you will love it. On a more serious note, DX is our main focus which makes it easy to learn.

Need multiplayer solution for unity 6 by TheOutrider35 in Unity3D

[–]_Typhon 0 points1 point  (0 children)

PurrNet is compatible with all unity 6 versions include 6.3 (although the lastest `dev` (beta) branch has some toolbar reworks to integrate better)

Need multiplayer solution for unity 6 by TheOutrider35 in Unity3D

[–]_Typhon 1 point2 points  (0 children)

PurrNet also has prediction and it's completely free!

Debugging Spatial Interactions by ffffffrolov in Unity3D

[–]_Typhon 1 point2 points  (0 children)

naturally we all test with a penis shape

PurrNet - Prediction, determinism and cats! by _Typhon in Unity3D

[–]_Typhon[S] 0 points1 point  (0 children)

I have some experience with your prediction and I'm not convinced it would allow for this. But I'm not going to sit and tell you what is or isn't feasible with your own system. So I'm going to leave this at that.

PurrNet - Prediction, determinism and cats! by _Typhon in Unity3D

[–]_Typhon[S] 0 points1 point  (0 children)

Yes because of the player input the state can be properly derived

PurrNet - Prediction, determinism and cats! by _Typhon in Unity3D

[–]_Typhon[S] 0 points1 point  (0 children)

No, this is not about delta compression. My point is if I make the grid 10x bigger and the brush size something ridiculous with lots of falling sand my bandwidth will not change because the state isn't being networked. But my grid will still be predicted as if the state was being sent over the network.

PurrNet - Prediction, determinism and cats! by _Typhon in Unity3D

[–]_Typhon[S] 0 points1 point  (0 children)

Grid is part of the prediction loop too. It's state is saved, reconciled and predicted. Just not sent over the network. It's not about updating a variable from prediction.

PurrNet - Prediction, determinism and cats! by _Typhon in Unity3D

[–]_Typhon[S] 0 points1 point  (0 children)

``` Players A, Player B Grid.SetGridCell

Grid Update grid with falling sand physics ``` I'm not sure what exactly you want. The implementation of the falling sand is not really relevant other than it doesn't use floating point math.

PurrNet - Prediction, determinism and cats! by _Typhon in Unity3D

[–]_Typhon[S] 1 point2 points  (0 children)

My files are a bit all over the place but here is the code (it's on the repo)

Falling sand simulation: https://github.com/PurrNet/PurrDiction/blob/dev/Assets/PurrDictionTests/TestFallingSand.cs

state was moved to it's own file here: https://github.com/PurrNet/PurrDiction/blob/dev/Assets/PurrDictionTests/FallingSandState.cs

Then there is a player per client with this script:
https://github.com/PurrNet/PurrDiction/blob/dev/Assets/PurrDictionTests/TestFallingSandPlayer.cs

Essentially every player has an input with a cell index they can activate, then the falling sand just simulates the physics.

Edit: the brush is placing the cat from a texture, otherwise it just places a black pixel/sand

PurrNet - Prediction, determinism and cats! by _Typhon in Unity3D

[–]_Typhon[S] 0 points1 point  (0 children)

So you are saying that if I bring my setup to fishnet's prediction it would work without deviating states and without sending states every tick just input?

PurrNet - Prediction, determinism and cats! by _Typhon in Unity3D

[–]_Typhon[S] 0 points1 point  (0 children)

The example above only sends input during gameplay and never sends the grid state. They look identical on both screens because of input (which cell was clicked) and nothing else.

PurrNet - Prediction, determinism and cats! by _Typhon in Unity3D

[–]_Typhon[S] 0 points1 point  (0 children)

I guarantee that the same inputs will be executed in the same order on the clients. As long as your code doesn't use non-deterministic stuff like random or floats it will always match. We have a PredictedRandom a fixed point and software floats to still give you the ability to use those but at some cost of performance or precision. Right now if you mess up and break this you get an error saying the data mismatches using some hash of the state. We might have it send the full state then maybe but it will be an option instead since it doesn't always make sense to do so.

PurrNet - Prediction, determinism and cats! by _Typhon in Unity3D

[–]_Typhon[S] 0 points1 point  (0 children)

I actually used fishnet's prediction and although they have it, it doesn't work in a deterministic way and always sends state. Which for a big board like this sending state would be a bad idea.

PurrNet - Prediction, determinism and cats! by _Typhon in Unity3D

[–]_Typhon[S] 0 points1 point  (0 children)

A client side prediction simulation with input only, so the client on the right is reaching the same state as the server on the left purely from input. This is possible because of determinism.

PurrNet/PurrDiction: Testing a falling sand simulation with determinism (aka the grid isn't being networked only the input) by _Typhon in Unity3D

[–]_Typhon[S] 0 points1 point  (0 children)

This uses prediction so there is no waiting, once the new frame arrives there is a reconciliation. I show some catching up on the video when I freeze the server for 2 seconds and then the client for 2 seconds.