Camobiwon
Camobiwon
NNormal
Created by Camobiwon on 7/16/2024 in #💭feature-request
Toggleable warning for reset RealtimeView GUID
No description
3 replies
NNormal
Created by Camobiwon on 6/13/2024 in #🤝ask-a-question
Disable welcome message on startup?
No description
22 replies
NNormal
Created by Camobiwon on 3/24/2024 in #💭feature-request
Overridable Model methods
As the title says, being able to override some model methods by having them be virtual, such as RequestOwnership, SetOwnership, and ClearOwnership would be very nice as I cannot do this on my own. Yes I know I can abstract them out, but it can be confusing to other's in the project when they see RequestOwnership still available and bypassing perhaps any potential safety checks / additional calls. I believe this should be pretty simple and AFAIK not break anything as the signature would be the same, since there is no additional parameters, name changes, or whatever.
4 replies
NNormal
Created by Camobiwon on 3/12/2024 in #💭feature-request
Offline Mode
This has been pitched before for sure, but I am gonna make a thread here so it's more known that it'd be a wanted feature. Basically the ability to have Normcore components still be able to function even without a connection to a server. I am not sure of the underlying technical implemenations for this, but I'd like to believe it'd be theoretically possible. Stuff like my player / interaction / world objects are so tied into network stuff that getting it working in singleplayer would be a nightmare, and ideally I'd like to be able to use these in a non-networked context, such as a main menu or something else. If this could be possible / implemented that would be awesome and save countless hours for if I ever needed this case.
13 replies
NNormal
Created by Camobiwon on 3/11/2024 in #🤝ask-a-question
Are model value updates all received at the same time?
As stated in the title, if I updated multiple values on a model at the same time (Reliable ones for context), would it be guaranteed that on the receiving end that all these values would be received at the same time? I know for unreliable this isn't the case (At least I believe so, correct me if I am wrong), but if this is the case for reliable ones this could help drastically simplify some of my existing code around, which would be great. As an example, if I had a transform and my model contained position, rotation, and scale. If I set all 3 of these at once, could I consistently expect that they would all be received at the same time?
18 replies
NNormal
Created by Camobiwon on 3/11/2024 in #💭feature-request
Auto-Requesting RealtimeTransforms (Rigidbody) on connect
No description
10 replies
NNormal
Created by Camobiwon on 3/11/2024 in #💭feature-request
Network Profiler
No description
1 replies
NNormal
Created by Camobiwon on 3/7/2024 in #💾sample-code
GUIDManager
I posted a very old version of this a long time ago (https://canary.discord.com/channels/393839515074297858/677646675560366141/981127682437836812) but have improved this script a lot over time and figured I would share a much better version of it until we get some official GUID component. This is intended for you to add a GUID int to your model, syncing it on start, and registering it to the GUIDManager's dictionary. Using it is extremely simple, let's say you had a Ball component reference you wanted to sync, first you'd make your ball component either derive from the simple GUIDModel pre-implemented one, or simply add your own int to your existing model (Check GUID model for how to set it up in OnRealtimeModelReplaced). Then in some other script that wants to send a reference to the ball, simply send the GUID of it (Typically ball.GUID as the ID reference), then when it is received on your local or remote client, simply do GUIDManager.FetchComponent<Ball>(guidOfBall) or alternatively GUIDManager.TryFetchComponent(guidOfBall, out Ball ball) if you prefer the bool return type for if it was found in the dictionary. My old implementation used to use strings of GUIDs to send for reference but I found this was very inefficient and changed it over entirely to ints. ints are 4 bytes compared to the GUID string being about 80, dictionary lookup hashing is literally free as the int is it's own hashcode, and many other efficiencies are gained over strings, and still allows for about 4 billion entries which is a crazy high amount. Hopefully you get some use out of this and find it useful :)
5 replies
NNormal
Created by Camobiwon on 3/7/2024 in #💭feature-request
GUID Component
This has been discussed in the past and AFAIK is planned to be added but figured I'd add it as a thing to this new forum. Basically, the idea of some standalone component that you could add one or multiple of to a game object and it would sync some ID across all clients when the object is awake / spawned. This is extremely useful for keeping a shared reference over network of some object you want to keep track of. An additional very useful addition would be the case of the GUID Component having a component reference on it, something like "assigned component", so when you receive a reference to that GUID component over network you could perhaps do guidComponent.assignedComponent to fetch the component it's bound to over network, saving a GetComponent call and allowing for multiple of the same component type to be synced via this component. Would be a great official addition as doing it manually right now is kind of a pain. Hope it can get added at some point and happy that it's already being considered!
32 replies
NNormal
Created by Camobiwon on 3/7/2024 in #💾sample-code
Primitive Models
These are stupid simple but help me with some fast prototyping, just when I need a networked script with a singular synced and primitive variable.
2 replies