New From Photon - Kind of Confused On Where to Start
I worked on a game a while back with Photon. Nothing big, just a small project. I decided to try and build a bigger more serious project and decided to give Normcore a shot since I have heard good things.
Overall, I'm kind of confused as all the videos I could find seem to be outdated, and I learn best by watching. lol. My first problem is just using it to sync something across clients. Something like, a hit sound. I just can't seem to find much about it and am kind of confused.
From stuff I've seen, it looks like there's an SDK for Unity on the asset store, but that doesn't seem to be there anymore and is now just a Unity package which appears to have a different format to the older versions. Would someone maybe be able to show me some updated tutorials on how to do basic things?
Please note: I am still really new to VR game development as a whole, so I don't know a ton of things. lol.
Thanks!
21 Replies
Hi @The Frog Fun. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
----------------------
Welcome to Normcore! Transitioning from Photon to Normcore can feel a bit different, but the core concepts—synchronizing state and events between clients—are similar. Here’s a focused guide to help you get started, especially with syncing simple things like a hit sound.
1. Getting Started with Normcore
- Download & Import: Normcore is now distributed as a Unity package, not via the Asset Store. Download it from the Normcore dashboard and import it into your Unity project.
- App Key: You’ll need to create an app key on the Normcore dashboard and paste it into the Realtime component in your Unity scene. This connects your project to Normcore’s servers.
- First Test: Try the included example scenes to see multiplayer in action. The Getting Started guide walks you through this process step by step.
2. Syncing Data Across Clients
Normcore uses a model-view-controller approach:
- Models hold the data you want to sync.
- RealtimeComponents (your scripts) update the model and respond to changes.
#### Example: Syncing a Simple Event (e.g., Hit Sound)
For something like a hit sound, you can use a pattern similar to an RPC (Remote Procedure Call) event. Normcore doesn’t have built-in RPCs like Photon, but you can easily implement this using a model and a trigger property.
Step-by-step:
1. Create a Model for the Event:
2. Fire the Event:
3. Listen for the Event:
4. Play the Sound in Your Component:
Subscribe to
- Download Normcore from the dashboard, not the Asset Store. - Use the Realtime component and your app key to connect. - Sync events (like hit sounds) using a model with a trigger property. - Check out the official guides and sample projects for hands-on learning. If you need more specific help, feel free to ask in the Discord or check the guides linked above! ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
eventDidFire and play your hit sound when it fires.
This pattern is explained in detail in the RPC Events recipe.
3. Learning Resources
- Official Documentation: The Synchronizing Custom Data guide is a great place to start for syncing any kind of data.
- Example Projects: Download and explore the Normcore sample projects.
- Community: If you get stuck, the Normcore Discord is active and helpful.
4. VR-Specific Tips
Normcore is not just for VR, but it works great for it. The workflow is the same as for non-VR Unity projects—just make sure your VR interactions update the models you want to sync.
---
Summary:- Download Normcore from the dashboard, not the Asset Store. - Use the Realtime component and your app key to connect. - Sync events (like hit sounds) using a model with a trigger property. - Check out the official guides and sample projects for hands-on learning. If you need more specific help, feel free to ask in the Discord or check the guides linked above! ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
<@1162526805547302932> Kapa.ai is still learning and improving, please let me know how I did by reacting below.
@Normcore Assistant, as I stated I am pretty new, so for clarification, a model (As mentioned in step 1) is a separate C# script. Correct?
Let me check the knowledge base for you again. One moment! :books:
----------------------
Yes, that's correct! In Normcore, a model is a separate C# script (class) that defines the data you want to synchronize across clients. Models are marked as
partial classes and use special attributes like [RealtimeModel] and [RealtimeProperty] to tell Normcore which fields to sync.
For example, a simple model script might look like this:
- The model should not inherit from any other class.
- Each variable you want to sync is marked as private and starts with an underscore (e.g., _trigger).
- The [RealtimeModel] and [RealtimeProperty] attributes are required for Normcore to generate the networking code.
You can find more details and examples in the Synchronizing Custom Data guide and the RPC Events recipe.
Let me know if you want a step-by-step on how to set up and use a model!
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------<@1162526805547302932> Kapa.ai is still learning and improving, please let me know how I did by reacting below.
@Normcore Assistant, in Unity, it appears that the Normcore example scripts are throwing compiling errors. I clearly installed something wrong. Can you please walk me through a step by step tutorial on how to do it all correctly? I just installed the Unity package, imported it into Unity. Is there something I missed?
Let me check the knowledge base for you again. One moment! :books:
----------------------
Certainly! Here’s a step-by-step guide to correctly installing and setting up Normcore in Unity, based strictly on the official documentation:
---
1. Download the Latest Normcore Package
- Go to the Normcore dashboard and download the latest
Normcore.unitypackage file.
---
2. Import Normcore into Unity
- Open your Unity project.
- Drag the downloaded Normcore.unitypackage into the Project tab in Unity.
- Unity will prompt you to import the package. Click Import to bring in all files.
Upon import, Normcore will automatically add the Normal scoped registry to your project. Once Unity recompiles, you should see a Normal folder in your project and Normcore in the Unity Package Manager window.--- 3. Verify Installation - After import, check for a Normal folder in your Project window. - Open the Unity Package Manager and look for Normcore under "My Registries" or "Packages". --- 4. Create a Normcore App Key - Go to dashboard.normcore.io, log in, and navigate to the Apps tab. - Click Create new application, give it a name, and click Create. - Copy the generated App Key. --- 5. Open an Example Scene - In your Unity project, browse to
Getting Started
Normal/Examples/Hoverbird Player and open the Realtime + Hoverbird Player scene.
---
6. Enter Your App Key
- Select the Realtime component in the scene (usually on a GameObject named "Realtime").
- Paste your App Key into the App Key field.
---
7. Test the Example Scene
- Hit Play in the Unity Editor. You should see the example working.
- If you want to test multiplayer, export a standalone build and run it alongside the editor. You should see two players appear and move in real time.
---
Troubleshooting
- If you see compile errors, make sure:
- You are using a supported Unity version (the documentation recommends Unity 2019.1 or above).
- You have not imported an old or incompatible version of Normcore.
- The import process completed without errors.
- If you still have issues, try restarting Unity after import, as this can resolve some package-related problems.
---
For more details, follow the official Getting Started guide. If you continue to have issues, the Normcore Discord is a great place to get help.
Let me know if you encounter a specific error message—I'm happy to help troubleshoot further!
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------<@1162526805547302932> Kapa.ai is still learning and improving, please let me know how I did by reacting below.
I deleted all the old Normcore stuff out of my project and re-imported the package. Upon import I got 8 compiler errors from the example scene scripts. I feel like I am missing something, but I can't figure it out. Nothing is in my package manager. @Normcore Assistant
Let me check the knowledge base for you again. One moment! :books:
----------------------
It sounds like something went wrong with the Normcore installation process. Based on the official documentation, after importing the
Drag the
After import and recompilation, you should see Normcore in the Unity Package Manager. If you do not, the scoped registry may not have been added, or the import did not complete successfully. 3. Unity Version:
Make sure you are using a supported Unity version (Unity 2019.1 or above is required for Normcore 2). 4. Restart Unity:
Sometimes, Unity needs to be restarted after importing a package for the registry and packages to appear. If you have followed these steps and still do not see Normcore in the Package Manager, or you continue to get compiler errors, the knowledge sources do not provide a more detailed troubleshooting process. In this case, it is recommended to reach out to the Normcore Discord for direct support, as suggested in the documentation. Summary:
- Make sure you are importing the latest
Normcore.unitypackage, you should see Normcore listed in the Unity Package Manager under "My Registries" or "Packages." If nothing appears there and you’re getting compiler errors from the example scripts, it likely means the package did not install correctly or the scoped registry was not added properly.
Here’s what the official Getting Started guide recommends:
1. Import the Normcore Package:Drag the
Normcore.unitypackage into your Unity project and import all files.Upon import, Normcore will automatically add the Normal scoped registry to your project.2. Check the Package Manager:
After import and recompilation, you should see Normcore in the Unity Package Manager. If you do not, the scoped registry may not have been added, or the import did not complete successfully. 3. Unity Version:
Make sure you are using a supported Unity version (Unity 2019.1 or above is required for Normcore 2). 4. Restart Unity:
Sometimes, Unity needs to be restarted after importing a package for the registry and packages to appear. If you have followed these steps and still do not see Normcore in the Package Manager, or you continue to get compiler errors, the knowledge sources do not provide a more detailed troubleshooting process. In this case, it is recommended to reach out to the Normcore Discord for direct support, as suggested in the documentation. Summary:
- Make sure you are importing the latest
Normcore.unitypackage from the official dashboard.
- After import, Normcore should appear in the Package Manager. If not, try restarting Unity.
- If issues persist, seek help on the Normcore Discord.
If you can provide the specific compiler error messages, I may be able to help further.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------<@1162526805547302932> Kapa.ai is still learning and improving, please let me know how I did by reacting below.
Still displaying 8 errors after restarting and everything. @Normcore Assistant
Let me check the knowledge base for you again. One moment! :books:
----------------------
I'm sorry you're still seeing 8 errors after restarting and re-importing everything. Based on the official Normcore documentation, after importing the
Normcore.unitypackage, you should see Normcore in the Unity Package Manager and have a Normal folder in your project. If that's not happening and you're getting compile errors from the example scripts, it suggests something is not installing correctly or there may be a compatibility issue.
The knowledge sources do not provide a detailed troubleshooting guide for this specific situation beyond the following steps:
- Ensure you are using a supported Unity version (Unity 2019.1 or above is required for Normcore 2) Upgrading from Normcore 1 to Normcore 2.
- Import the latest Normcore package from the official dashboard, not from the Asset Store.
- Restart Unity after importing the package, as this can resolve some package-related issues Getting Started.
- Check the Package Manager to confirm Normcore appears under "My Registries" or "Packages" Normal Scoped Registry.
If you have followed all these steps and are still seeing errors, the knowledge sources do not contain enough information to diagnose the specific cause of your 8 compiler errors. The documentation recommends reaching out to the Normcore Discord for further assistance, as the community and developers can help troubleshoot installation issues in more detail.
If you can share the exact error messages, I may be able to provide more targeted help based on the documentation.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------<@1162526805547302932> Kapa.ai is still learning and improving, please let me know how I did by reacting below.
Alright, well I guess I need help from someone other than this bot. All the errors are compiler errors from the sample scenes. At one point, Normcore did work with no errors, but I was having problems with a different script. Something I read said to try re-installing the package and since then I just don't stop getting errors. Clearly it isn't installing correctly the second time, I just don't know what the problem is.
I’d recommend starting with a fresh project and then follow this guide: https://docs.normcore.io/guides/synchronizing-custom-data
Synchronizing Custom Data | Normcore Documentation
In this guide, I’m going to walk you through how to synchronize custom data in your Unity application using custom realtime components.
as you go if you have any questions with that guide, feel free to ask me here and I can help you out
Alright, thank you! I'll try this in a minute.
sounds good
I finally got around to getting Normcore installed in a new project without any errors. I'm going to work on that script in a bit once I get some other things done in the project.
All the scripts compiled in with no errors. Thank you for your help! Much appreciated!
sure thing! glad to hear you got it working