HaRrY
NNormal
•Created by HaRrY on 7/6/2024 in #🤝ask-a-question
Normcore headless build
Thanks heaps for the reply @Max. We defnitely dont want high latency or waiting few minutes. Out of curiosity, do you have a plan where you would allow us to deploy our headless builds through normcore but not use all other things that comes with normcore private? I am assuming that the price for normcore private is high because of DevOps and other resources that comes with the plan. And wandering if there is a plan to just host the headless builds through normcore and that might be somewhat in budget for small studios like us?
10 replies
NNormal
•Created by Funkey on 3/25/2024 in #💭feature-request
Clear a RealtimeArray
need this feature please
10 replies
NNormal
•Created by Funkey on 3/25/2024 in #💭feature-request
Clear a RealtimeArray
Even if we wrap the RealtimeArray with RealtimeSet we wont get those nice event fires on RealtimeArray. it wont fire events if we subscribe to RealtimeSet.OnModelAdded.
10 replies
NNormal
•Created by HaRrY on 5/16/2024 in #🤝ask-a-question
How to clear RealtimeSet or RealtimeArray
There is no clear function on RealtimeSet
https://normcore.io/documentation/reference/classes/Normal.Realtime.Serialization.RealtimeSet%601
Do you mean the way I am doing above by iterating over each element and removing them from the set?
8 replies
NNormal
•Created by HaRrY on 4/15/2024 in #🤝ask-a-question
Trying to update a value reliably
Just for reference if anyone else wants to know how I am making sure value updates instead of override without having a headless build is as follows:
Using a combination of RealtimeSet and StringKeyDict
* Each player adds their value update in RealtimeSet and updates a local value
* When a threshold happens (e.g. in case of fill percentage 100% or health becoming 0 etc.) I add that as a StringKeyDictionary and check if transaction is successful or not - so if 2 players tries to add the same key it gives one of them false.
* Once that key is added successfully I store roomtime at that state and ignore any delta updates from other clients if they are before that time.
* I delete the key and clear RealtimeSet according to my game needs
This way I am not relying on any single client to do updates and its pretty much reliable and handles most of the edge cases.
Will try to post a gist if possible. 🙂 suggestions are highly welcome if anyone know that this can be improved further
30 replies
NNormal
•Created by HaRrY on 4/15/2024 in #🤝ask-a-question
Trying to update a value reliably
yeah I am using that approach already 🙂 thanks much appreciated
30 replies
NNormal
•Created by HaRrY on 4/15/2024 in #🤝ask-a-question
Trying to update a value reliably
yeah but if each client is using their own prediction and only local player is going to confirm then all clients would have a different snapshot of that players health, they all would think they killed that player, and when the player comes back then yeah overwhelmed it will get sync but if they dont come back then kills wont be awarded which again is not good.
This damage and health is just one example but there are other needs as well to have a consistent reliable up-to-date value instead of overriding.
30 replies
NNormal
•Created by HaRrY on 4/15/2024 in #🤝ask-a-question
Trying to update a value reliably
yeah but then if that player has lag/bad ping then everyone can keep sending them damage updates but they wont update their health which means bad experience.
Also like you said if they took off headset they cannot die until they put their headset back on which is again not good in a vr shooter.
I have tried all of these approaches plus more there are always caveats and bad experiences, I know this can be solved with headless builds but I was hoping there is a way to do this without that
30 replies
NNormal
•Created by HaRrY on 4/15/2024 in #🤝ask-a-question
Trying to update a value reliably
yeah but if this is something to do with player currentHealth, and these delta changes are damage inputs from all other players and if a new player joins later and they want to check the existing health of other players do they have to iterate through all the RealtimeSet of every player to calculate the health 😛
There must be a nicer way without having to rely on a single client or a headless
30 replies
NNormal
•Created by HaRrY on 4/15/2024 in #🤝ask-a-question
Trying to update a value reliably
yes that needs to be done regardless and I am doing it but the problem is that on those change amounts, someone needs to be responsible to update the actual amount right if actual amount is also normcore property?
If I say client 1, 2, 3, or anyone is responsible then I get that issue where if that particualar client is afk by taking of their headset then the values wont update for a bit. I dont want to give a specific client this role until I have a headless build etc
30 replies
NNormal
•Created by HaRrY on 4/15/2024 in #🤝ask-a-question
Trying to update a value reliably
Isnt RealtimeSet is same as RealtimeArray but just unordered? If so it will have the same issue.
I will simplify my question:
RealtimeProperty currentValue = 100
Client 1 at currentValue = 100 did: +50 = updated currentValue = 150
Client 2 at similar room time did : -20 = updated currentValue = 80
Expected Value = 100 + 50 - 20 = 130
Actual Value = 80 because it updated last.
Isnt this a very basic need or am I overthinking this? Is there a normcore way that will increment / decrement values according to delta changes on server so that its consistent?
Or like you said should I use each players values that they did and then add them together is that the only best solution?
30 replies
NNormal
•Created by Camobiwon on 3/12/2024 in #💭feature-request
Offline Mode
yeah this is much needed specially for tutorials where you want to use all the existing prefabs / gameplay mechanics without being it online. I made a wrapper of RealtimeComponent and created a getter for model where if its null i.e. not connected with normcore then create a new() otherwise return the created one - this worked really well for me from development to early Alpha but then normcore did say its not recommended etc so I removed it once I went in production
13 replies