kapa.ai
NNormal
•Created by SirCartaux on 9/7/2024 in #🤝ask-a-question
Using Normcore on Private Server
8 replies
NNormal
•Created by SirCartaux on 9/7/2024 in #🤝ask-a-question
Using Normcore on Private Server
----------------------
Yes, it is absolutely possible to host a Normcore server on your own. Normcore provides a service called Normcore Private which is a private copy of Normcore's hosting infrastructure designed to be customized for a specific application. With Normcore Private, you can adjust CPU limits to host more players per room, use the Webhooks API to authenticate users, and host custom authoritative game servers.
Normcore Private comes in two flavors: Cloud and On-Premises.
- Normcore Private Cloud is a copy of Normcore Private hosted by Normal and maintained 24/7 by the Normal DevOps team. It comes with uptime guarantees and a support team that can access your live servers to help you debug your application. Normcore Private Cloud can be hosted on AWS, Google Cloud, Azure, and Digital Ocean and supports multi-cloud varieties for extreme availability.
- Normcore Private On-Premises uses the same infrastructure as Normcore Private Cloud but is licensed for you to host on your own hardware. You can host it on any major cloud provider that supports Kubernetes.
You can find more information about Normcore Private here (https://normcore.io/documentation/normcore-private).
If you decide to host Normcore on Google Cloud, you can follow the instructions provided here (https://normcore.io/documentation/normcore-private/on-premises/google-cloud-installation).
Please note that while hosting Normcore yourself can save you from paying for servers, it does require a certain level of technical expertise to set up and maintain.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------
8 replies
NNormal
•Created by SirCartaux on 9/7/2024 in #🤝ask-a-question
Using Normcore on Private Server
Hi @SirCartaux. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
8 replies
NNormal
•Created by Camobiwon on 9/4/2024 in #🤝ask-a-question
How does RealtimeTransform's new SnapTo exactly work?
6 replies
NNormal
•Created by Camobiwon on 9/4/2024 in #🤝ask-a-question
How does RealtimeTransform's new SnapTo exactly work?
----------------------
Hmm, I don't know enough to give you a confident answer yet. The knowledge sources provided do not contain specific information about the
SnapTo
function or the _skipInterpolationProperty
of the RealtimeTransform
component in NormalVR's Normcore.
However, I can tell you that the RealtimeTransform
component is used to synchronize the transform or rigidbody of a GameObject. It monitors the GameObject and synchronizes the transform or rigidbody state to a model in the datastore. It treats the client that owns the object as the source of truth, and all other clients follow along with the owner's copy of the transform or rigidbody. You can request ownership of a RealtimeTransform
component by calling RequestOwnership()
.
For more specific details about SnapTo
and _skipInterpolationProperty
, I would recommend checking the official Normcore documentation or reaching out to NormalVR directly.
Here are some relevant links from the knowledge sources:
- RealtimeTransform Documentation (https://normcore.io/documentation/realtime/realtimetransform)
- RealtimeTransform + Physics (https://normcore.io/documentation/realtime/networked-physics#realtimetransform--physics)
- RealtimeTransform Extra Notes (https://normcore.io/documentation/realtime/realtimetransform#extra-notes)
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------6 replies
NNormal
•Created by Camobiwon on 9/4/2024 in #🤝ask-a-question
How does RealtimeTransform's new SnapTo exactly work?
Hi @Camobiwon. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
6 replies
NNormal
•Created by Vain on 8/31/2024 in #🤝ask-a-question
Changing model data doesn't update the model for other client, am I missing something ?
10 replies
NNormal
•Created by Vain on 8/31/2024 in #🤝ask-a-question
Changing model data doesn't update the model for other client, am I missing something ?
4. Reliable vs Unreliable Properties: Normcore allows you to mark properties as reliable or unreliable. Reliable properties are good for things that you update once and that should be resent if the packet is dropped in transit. Unreliable updates are not resent if they’re dropped in transit because it’s expected that another update is following shortly after. Depending on your use case, you might want to consider marking your health property as reliable. source (https://normcore.io/documentation/realtime/synchronizing-custom-data#reliable--unreliable)
If you're still having issues, it might be helpful to check for any compilation errors in your project. If your project has any errors, any changes you make to the model will not be visible to the model editor. source (https://normcore.io/documentation/room/common-questions#i-made-changes-to-my-properties-but-when-i-recompile-the-freshly-compiled-model-isnt-updated-why)
I hope this helps! Let me know if you have any other questions.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------
10 replies
NNormal
•Created by Vain on 8/31/2024 in #🤝ask-a-question
Changing model data doesn't update the model for other client, am I missing something ?
----------------------
Based on the information provided, it seems like you're experiencing issues with the synchronization of your RealtimeModel data across different clients. Here are a few things you might want to consider:
1. Ownership: In Normcore, the concept of ownership is crucial. Only the owner of a RealtimeModel can make changes to it that will be propagated to other clients. If a client that is not the owner tries to make changes, these changes will only be local and will not be reflected on other clients. You mentioned that you tried using
RequestOwnership
and model.RequestOwnership
, but it's important to ensure that the client making the changes is indeed the owner. You can use SetOwnership(int clientID)
to set the ownership to a specific client. source (https://normcore.io/documentation/reference/classes/Normal.Realtime.RealtimeComponent%601)
2. Update Rate: Normcore serializes all updates once per network frame (~20hz) and groups them into the same packet. If you change something and then change it back immediately, nothing will be sent to the server. Make sure that the changes you're making are not being overridden before they can be sent out. source (https://normcore.io/documentation/room/common-questions#sometimes-when-i-log-the-values-on-my-model-from-inside-of-valuedidchange-not-all-the-values-that-i-set-on-another-client-update-when-are-updates-sent-out-and-how-are-they-applied)
3. Change Events: Normcore provides a mechanism to listen for changes in the RealtimeModel data. When a property is changed, a change event is fired. You can use this to ensure that your scene is updated to match the model. source (https://normcore.io/documentation/room/realtimemodel#change-event)10 replies
NNormal
•Created by Vain on 8/31/2024 in #🤝ask-a-question
Changing model data doesn't update the model for other client, am I missing something ?
Hi @Vain. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
10 replies
NNormal
•Created by Niv on 7/17/2024 in #🤝ask-a-question
Is there a callback when *any* property of a model changes?
14 replies
NNormal
•Created by Niv on 7/17/2024 in #🤝ask-a-question
Is there a callback when *any* property of a model changes?
If none of these suggestions solve your issue, I would recommend reaching out to the NormalVR support team or community for more specific assistance.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------
14 replies
NNormal
•Created by Niv on 7/17/2024 in #🤝ask-a-question
Is there a callback when *any* property of a model changes?
----------------------
Based on the information provided, it's difficult to pinpoint the exact issue. However, there are a few things you could check:
1. Compilation Errors: Ensure that your project has no compilation errors. If your project has any errors, any changes you make to the model will not be visible to the model editor. This could be the reason why your changes are not being saved or loaded on scene exit and reload. You can refer to the Common Questions documentation (https://normcore.io/documentation/room/common-questions#i-made-changes-to-my-properties-but-when-i-recompile-the-freshly-compiled-model-isnt-updated-why) for more information.
2. RealtimeComponent Syncing: Make sure that your custom RealtimeComponent is syncing correctly. If you've added your custom component to a game object before it was converted to a RealtimeComponent subclass, it might not sync properly. To verify this, look at the RealtimeView's list of components and make sure you see your custom component in the list. If you don't see it, or a RealtimeView has not been created for you automatically, try removing the component and re-adding it to your game object. This will tell Unity to automatically create a RealtimeView and add your RealtimeComponent subclass to its component list. You can refer to the Synchronizing Custom Data FAQ (https://normcore.io/documentation/realtime/synchronizing-custom-data#my-custom-realtimecomponent-isnt-syncing-and-onrealtimemodelreplaced-doesnt-get-called) for more information.
3. Scene Specific Settings: Check if there are any scene-specific settings or components that might be interfering with the texture sync. Make sure that all the necessary components and scripts are properly attached and configured in the new scene.
14 replies
NNormal
•Created by Niv on 7/17/2024 in #🤝ask-a-question
Is there a callback when *any* property of a model changes?
Let me check the knowledge base for you. One moment! :books:
14 replies
NNormal
•Created by hdi200 on 8/29/2024 in #🤝ask-a-question
Is there a way to see what realtimeView's a specific client owns by Client ID?
5 replies
NNormal
•Created by hdi200 on 8/29/2024 in #🤝ask-a-question
Is there a way to see what realtimeView's a specific client owns by Client ID?
----------------------
There isn't a direct method provided by Normcore to list all RealtimeViews owned by a specific client ID. However, you can check the ownership of a specific RealtimeView or RealtimeComponent by accessing its
ownerIDSelf
property. This property returns the client ID of the component owner.
Here's an example of how you can use it:
If you want to check the ownership of all RealtimeViews in your scene, you could potentially iterate over all RealtimeViews and check their ownerIDSelf
property.
Remember that the ownerIDSelf
property might not be reliable before the Start
method is called, as mentioned in the documentation (https://normcore.io/documentation/reference/classes/Normal.Realtime.IRealtimeComponent).
Please note that this approach might not be efficient if you have a large number of RealtimeViews in your scene. It's generally better to design your application in such a way that you keep track of ownership changes when they happen, rather than checking all objects in every frame.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------5 replies
NNormal
•Created by hdi200 on 8/29/2024 in #🤝ask-a-question
Is there a way to see what realtimeView's a specific client owns by Client ID?
Hi @hdi200. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
5 replies
NNormal
•Created by ReeseR on 8/28/2024 in #🤝ask-a-question
Best way to sync data on a table?
7 replies
NNormal
•Created by ReeseR on 8/28/2024 in #🤝ask-a-question
Best way to sync data on a table?
----------------------
For your use case, a
RealtimeDictionary
might be a better fit. According to the documentation (https://normcore.io/documentation/room/collections#non-transactional-collections), a RealtimeDictionary
is commonly used to represent a model that can have fields that are dynamically added or removed at runtime.
You could create a ScoreModel
and store instances of it in a RealtimeDictionary
using each player's clientID as the key. The ScoreModel
could contain an array or list of integers representing the scores for each round. This way, you can easily add or remove scores for each player and keep everything in sync.
Here's a simplified example of what the ScoreModel
might look like:
And here's how you might use it with a RealtimeDictionary
:
Remember, the RealtimeDictionary
and ScoreModel
would need to be properly set up to work with Normcore's synchronization system. This is just a simplified example to illustrate the concept.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------7 replies
NNormal
•Created by ReeseR on 8/28/2024 in #🤝ask-a-question
Best way to sync data on a table?
Hi @ReeseR. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
7 replies