Search Unity

  1. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Showcase Fish-Networking: Unity Networking Evolved! (FREE!)

Discussion in 'Multiplayer' started by Punfish, Jun 19, 2022.

  1. Recon03

    Recon03

    Joined:
    Aug 5, 2013
    Posts:
    840

    Curious to know more about this Grid condition...


    In TNET, we use multi channels and regions for larger worlds.. for having worlds in chunks with different regions. Does Fish Net have something like this?

    https://www.tasharen.com/?page_id=4518 its at the end of the demo called multi channels and regions.
     
  2. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    There's a variety of ways FishNet can do that.

    You can add the client to scenes as they approach them, only then showing objects in that scene. This would require each chunk to be a scene.

    Grid condition is a loosely based distance check that will make objects appear as you get closer. This would be automatic.The same applies for the Distance condition except it's more precise but cost more performance. Note: properly marking objects as static can also boost performance.

    Match condition will only show objects or players in the same match. To mimic the video you would add players to the match for the chunk they are nearing. So if your world was divided into four chunks you would add the player to their chunk's match, and probably the whatever chunk they are nearing.

    Lastly, you can combine any number of conditions and even make your own. Let's say you have chunks of larger worlds and you want to add the player to them manually, but you also want to only show close objects in that chunk. You could use the match condition to add the player to the chunk, and also the grid or distance condition to automatically update for nearby objects. You do not incur the cost of the automatic/regular updating conditions, or as we call them timed, when the non-timed conditions such as Match are not met.

    Here's a demo of the grid condition.
    230331-10-40-793.gif
     
    Last edited: Mar 31, 2023
    toddkc likes this.
  3. saskenergy

    saskenergy

    Joined:
    Nov 24, 2018
    Posts:
    29
    Hi, can you give more information on your possible changes to the new CSP? I agree that the current implementation requires a lot of boilerplate code so it was bound for more improvement. I've already written a lot of code so I would like to know more about it so I can prepare.
     
  4. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    To keep our no-break promise the old prediction is not being removed, at least not for quite awhile. The new prediction is still in works, but when the experimental versions are available it can be activated and deactivated by using a new 'developer' menu for Fish-Networking.
    . 20230402_10-57-57-083_247.png

    This is still very much being worked on but currently the differences are:
    - Previously a client could only use one replicate and reconcile per given time. For example, you could not control a CSP projectile as well a CSP player at the same time, each in their own class/object. You could get around this by controlling everything from one script, but that limitation is now removed.

    - PredictedObject(PO) is going away, and it's functionality is being covered in other ways. Currently PO configures the object for prediction and also predicts future velocities of rigidbodies. It can be overridden as well for custom prediction of future changes such as moving platforms. In the new prediction the only real use it has is smoothing, but even that is capable of being simplified to where PO isn't needed.

    - In relation to PO going away, clients run inputs/states now even for spectated objects. Previously clients were not aware of other inputs and the PO would attempt to predict them. In the new prediction the inputs and reconcile states are sent to all clients, and they reconcile/replay inputs just like you owned the object. I'd like to give users the option to predict in the future similar to PO, or simply not.
    Rocket League does something similar, and this is an example of what decaying future predicting might look like. This would be put in replicate...
    Code (CSharp):
    1.  
    2.             //md = MoveData.
    3.             if (!base.IsOwner)
    4.             {
    5.                 if (!newInputs)
    6.                 {
    7.                     md = _lastInputs;
    8.                     //Decay inputs per tick to allow light future prediction.
    9.                     md.Horizontal *= 0.9f;
    10.                     md.Vertical *= 0.9f;
    11.                 }
    12.                 else
    13.                 {
    14.                     _lastInputs = md;
    15.                 }
    16.                 //continue running replicate normally.
    17.             }
    - Using / calling prediction methods became a whole lot easier. This is what using prediction methods might look like currently...

    Code (CSharp):
    1.  
    2.         private void TimeManager_OnTick()
    3.         {
    4.             if (base.IsOwner)
    5.             {
    6.                 Reconciliation(default, false);
    7.                 MoveData md = CheckInput();
    8.                 Replication(md, false);
    9.             }
    10.             if (base.IsServer)
    11.             {
    12.                 Move(default, true);
    13.                 ReconcileData rd = new ReconcileData(transform.position, transform.rotation);
    14.                 Reconciliation(rd, true);
    15.             }
    16.         }
    17.  
    This is what it would look like now. You just call each method once passing in the data you want to use. Fish-Networking will internally sort it out if you're owner, server, ect.

    Code (CSharp):
    1.  
    2.         private void TimeManager_OnTick()
    3.         {
    4.             Replication(CheckInput());
    5.             ReconcileData rd = new ReconcileData(transform.position, transform.rotation);
    6.             Reconciliation(rd);
    7.         }
    8.  
    You can optionally skip checking input and building reconciledata if you know you are not the owner or server, and just pass in default. This is not required but could save you a small amount of performance.

    - Collecting one-time (or frame inputs) could use a buff. This bit has not been planned out yet but it would be great if developers could build their inputs in update normally and just send the results OnTick. EG: right now you may have to cache that jump input was queued and assign it to your built data in OnTick. I'd like to make it so you can just modify your data in Update and skip the input caching.

    Odds are you will still be required to make your own 'MoveDatas' and reconciles. This is not something we are incapable of doing automatically but by putting this in the users hands it allows much more customization and better performance gains. If we did not know specifically what needed to be reconciled we would have to send everything.

    Right now the focus is better prediction and easier setup. Eliminating PO and running inputs for all objects rather than just owned is a big step towards this direction.
     
    Last edited: Apr 2, 2023
    saskenergy and rxmarccall like this.
  5. saskenergy

    saskenergy

    Joined:
    Nov 24, 2018
    Posts:
    29
    Thanks for responding! When I started out Fish-Net, I was actually under the impression that other clients also run inputs from the simulation (I later found out that it wasn't this way). It's good that the new redesign is going in that direction.

    I'm guessing that with the other clients simulating input themselves, you can actually save bandwidth by not needing something like NetworkTransform and NetworkAnimator anymore? Since animations will be driven completely by input now, there's no need to sync the numerous amount of parameters and animator states. For the transform, the reconcile methods already send position and rotation data.

    I think the downside of this approach is when your reconcile data is large that it shadows the bandwidth savings from removing NetworkTransform and NetworkAnimator. My current reconcile already exceeds 40 bytes of data (3 floats for position, 4 floats for rotation, 3 floats for velocity, and more). Though it is entirely dependent on the type of game being made. It would probably be heavier on clients too since they need to compute the simulation (though this shouldn't be a problem for a majority of games).

    And with how this functions, this probably won't work well with your Network LOD feature right? If some input are skipped then I can imagine this would cause issues when properly simulating.

    Yea, I currently have an input manager class that does exactly this. It reads input in Update and caches them till the next OnTick call where I then flush the cache. It would be helpful if it comes natively.

    This is just a suggestion but what if we ditch the reconcile data struct entirely? Fish-Net already has mechanisms in place that does this through SyncVars. Can't we just have the SyncVars synced with the ticks and during reconcile, revert them to that state during that tick? One benefit of this approach is that SyncVars already have delta snapshots where it only sends data if it changes. The issue with reconcile data structs is that even though only the rotation has changed, you end up sending the position, velocity, and other data that hasn't changed (Unless you are doing optimizations under the hood that don't send this).
     
  6. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    Reconciles only send if changed, but they aren't delta per property yet. You don't actually need to send reconcile each time either. Reconciles are ultimately just for corrections and you don't need to try and correct every change.

    There's a tricky line to skipping reconciles though. Let's say you send a distance object only every 10 ticks and a close every 1. The close objects would resimulate but further will have to essentially pause because they weren't able to reconcile. The odds of this being problematic on a regular basis is low but there's a chance through one object correcting and not the other that their parts interfere with each other, or don't when they should. When one incorrectly affects the others path they both become out of sync to some degree.

    Granted, this would probably fall under acceptable margin of error because you may not even notice on distance objects and it would sort itself out next reconcile, just something to consider. Either way I'd like to have the option in but deltas are a big consideration too because they are a universal buff, even outside prediction.
     
    saskenergy likes this.
  7. Recon03

    Recon03

    Joined:
    Aug 5, 2013
    Posts:
    840

    Is it possible to make a small demo, example, of what I showed in that video? Just so i'm more clear. or iterate further. Not sure if I follow.


    The Grid condition, I understand completely so that is nice, that you added this.
     
  8. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    I don't know exactly what they're doing in that video, it does not really explain the process. The GridCondition or DistanceCondition alone should get the job done. The MatchCondition(or custom) would just be for extra CPU optimizations.
     
  9. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,285
    tested fishnet briefly, as i need networking for a 2019.4 project..

    After some initial errors, missing references in fields (maybe due to older unity version?)
    got it working and it seems good!

    I like it that you can apparently freely "sprinkle" network components in children go's also.

    Couldn't really find any "getting started" tutorial from docs?

    Like how to make basic features, minimal player movement, pickup objects or so.
    VR related guide/tutorial would be nice too.
     
  10. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    I do not have VR yet so there won't be any official tutorials from me on that. I do believe some exists on YouTube though.
    Here's a collection of additional third party learning resources that have been vetted: https://fish-networking.gitbook.io/docs/manual/tutorials
    You can find written, example projects, and video series.
    I know for sure at least some cover basic content.
    PS: the errors were probably the initial setup of the default prefabs reference missing. That's pretty common and shouldn't be an issue later.
     
  11. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    Congrats to Vona Soft on another release, and choosing Fish-Networking!

    FAS: Fight Action Sandbox:
    FAS is a unique turn-based fighting game where you design your characters and their abilities. Fight against AI or friends!
    Steam: https://store.steampowered.com/app/2302820/FAS_Fight_Action_Sandbox/


    Additionally, now is a good time to announce that the Prediction V2 is just about ready for public testing! This update will bring much more reliable prediction which is less code and less components, as well less used bandwidth! Prediction V2 will also have more options, especially those beneficial to kinematic or velocity change controllers.

    We'd like to have the new prediction available to the public ideally within a week, perhaps two at most. The old prediction system will still be available as well.
     
    DungDajHjep likes this.
  12. samvilm

    samvilm

    Joined:
    Jan 17, 2021
    Posts:
    43
    What server hosting would you recommend I use with fishnet? I'm looking for the easiest solution.
     
    Last edited: May 19, 2023
  13. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    There are many options but if you're looking for east we're a big supporter of PlayFlow
    https://playflowcloud.com/

    They have a free tier, their paid pricing is fair, and I'm personally aware of several large releases that successfully launched and scaled on PlayFlow.
     
    DungDajHjep likes this.
  14. samvilm

    samvilm

    Joined:
    Jan 17, 2021
    Posts:
    43
    Could you give some names that have used it so I can check them out?
     
  15. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    Check out my showcase page on the docs. The title sponsored by lions gate, gamestop, ect used PlayFlow and FishNet.
     
  16. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383

    Many are already aware Fish-Networking is the best in class for scalability among free Unity networking solutions.

    Did you also know we also have a FREE MMO Kit to leverage that power?

    Start your MMO today using FishMMO https://fishmmo.vexstorm.com/

    If you enjoy their work consider sponsoring them! https://cash.app/$jimdroberts
     
    Last edited: May 29, 2023
    ELC2909 likes this.
  17. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    After sitting on 3.5.8 for awhile we have another stable release!

    This version brings a ton of performance improvements, primarily targeting the CPU and memory usage. Compared to 3.5.8 you can expect significantly less garbage collection and CPU burst which will improve over-all scalability.

    Given the majority of our core features are implemented it felt like a good time to put more focus towards bug fixes. With the help of the community we've been able to isolate and address a considerable amount of less obvious bugs, and some more rare edge case ones as well.

    Several small features have also been added to make everyone's life easier. Prediction v1 now allows the server to run replications without an owner, this can be ideal for a number of scenarios but prefabs which could be players or NPCs is a common use. You can now use SetParent/UnsetParent on NetworkObject references; this will validate your target and output debug if your target is not network compatible. There's a few other QOL improvements as well, including git package support thanks to @NonPolynomialTim(FishNet Discord).

    For a full changelog please check out https://firstgeargames.com/FishNet/changelog.html This release will be submitted to the asset store tomorrow.

    PS: yes this means prediction v2 is being worked on again.
     
  18. Sandiford

    Sandiford

    Joined:
    Aug 21, 2015
    Posts:
    3
    Hi. Installing FishNet with 2022 LTS gives warnings:

    warning CS0618: 'Physics.autoSimulation' is obsolete: 'Physics.autoSimulation has been replaced by Physics.simulationMode'

    Is this normal?

    I also didn't get DefaultPrefabObjects until I mucked about with DefaultPrefabObjects.cs (uncommented line 15) and recompiled.
     
  19. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    The DefaultPrefabObjects thing is unusual, it should auto generate the file regardless. That menu just lets you manually create the file but FishNet also does it automatically internally. The line has been commented out for quite awhile now so this perhaps was just a fluke.

    Unity obsoleted the physics method and they're just letting you know. The warning is harmless. I'll make sure it's resolved in a future release.
     
  20. Sandiford

    Sandiford

    Joined:
    Aug 21, 2015
    Posts:
    3
    Thanks for the reply.

    Decided to do some testing. With 2021.3.23f1 it works as expected, no warnings.

    With 2022 LTS, there are warnings, and no prefab list is initially generated. However simply creating a new script triggers the creation of the prefab list. Perhaps any compile event sets it off - just a guess.

    Cheers
     
  21. Barritico

    Barritico

    Joined:
    Jun 9, 2017
    Posts:
    374
    Hello.

    I have a request to make for you. I don't know if it's possible or not, but I try.

    I'm very, very, very bad at this multiplayer thing and I want to do something very simple. I have a car game and I need a user to be able to get into another user's vehicle as a co-driver.

    To clarify more: a driving school teacher takes his student and shows him (her) how to drive. The teacher is a user from one country and the student another user from another country. The teacher drives the car and the student just listens and looks at the directions.

    Since I don't have more need than this, I would like to know if the author of FISHNET or any user reading this could help me. Of course, if necessary, I would pay for that help.

    Thank you so much.
     
  22. Barritico

    Barritico

    Joined:
    Jun 9, 2017
    Posts:
    374

    Ok, thanks.
     
  23. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    I'm not available for contract work at this time, sorry.
     
  24. Ending3707

    Ending3707

    Joined:
    Jun 16, 2016
    Posts:
    2
    Hello

    I added FishNet to my game project. The game scene of the project is generated through XML documents. XML records the prefab address, instance unique ID (EntityID), and attribute values (settings that do not require synchronization) of the instances.

    I now want to achieve that the server and client first load the same XML scenario separately, and then connect to instances with the same EntityID on the server and client for synchronization based on the EntityID.

    Do you have any implementation ideas for this? Or what part of FishNet should I focus on?
    Or can I directly connect to the NetworkObject of the server and client?

    Thank you very mush.
     
  25. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    You can make a global network object which means it's visible to all clients no matter what. You can then set the initialization order on your prefab to -128 and that prefab will always initialize first on the client.

    I've actually used this in practice to spawn a game settings manager first, and then the client loads things based off that managers settings, which sounds very similar to what you are doing.

    Here is what your NetworkObject on the prefab containing the XML data may look like...
    upload_2023-6-16_12-3-52.png
    and you would just set the XML data as a syncvar, or something of that sorts.
     
  26. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    Our Long-Term Support program is changing!

    Previously we announced that every major version would receive free long term support upon the release of another. We honored this by creating a LTS for version 2 when we released version 3. However, we've realized that this is a not only a cumbersome task, but there's a much better approach to be taken.

    Going forward we will be using a unique but effective approach at creating LTS releases. Rather than the standard expectations of being locked into a version for long-term support, FishNet is providing what we refer to as 'Release Mode'. Any version of Fish-Networking which ends in R supports release mode, for example: 3.10.7R.

    While in release mode any features in partial development or public testing are disabled, leaving only proven stable features. You gain the advantage of having the latest stable features and bug fixes without being locked into an older version. It's even possible to code specifically for development features by utilizing #if !FISHNET_RELEASE defines!

    To toggle Release Mode simply use the Fish-Networking menu in engine, and the option will be seen as the first item. To see which features and changes are enabled during development mode see our GitHub discussions.
     
  27. WinterboltGames

    WinterboltGames

    Joined:
    Jul 27, 2016
    Posts:
    258
    Thanks for the update on the LTS program changes. The new 'Release Mode' approach sounds great for providing the latest stable features and bug fixes. I appreciate the flexibility and look forward to trying it out. Thanks for keeping us informed!
     
  28. Solidcomer

    Solidcomer

    Joined:
    Sep 12, 2017
    Posts:
    95
    Hello, I have checked out the fish network official tutorial videos, it seems a very promising framework with very important built-in features that are not commonly found in other frameworks.

    But it will take a lot of efforts to switch to a new multiplayer framework. Before making the decision, I'd like to know, for a 2D top-down shooting game where a lot of bullets need to be synced between two clients, is the way of synchronizing bullets the same as that of synchronizing a player? Any special practice/approach is suggested for synchronizing bullets, especially when there are many, using Fish Networking?

    (The attached is just a random screenshot from the Internet, but it basically tells how many bullets I'm talking about, many but not a bullet hell)

    And also, may I ask when we can expect the client prediction v2 feature to be fully completed with a tutorial or sample scripts?

    Thanks a lot.
     

    Attached Files:

    Last edited: Sep 8, 2023
  29. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    I do not like to speculate on when experimental features will be completed in full, but prediction v2 is moving along. I'm releasing a milestone for prediction v2 in a day or two which addresses all known issues.

    You could theoretically use networked objects for bullets but spawn messages and network transform updates will use more bandwidth and CPU than you probably need to. For bullet spam type games I usually recommend our guide here https://fish-networking.gitbook.io/docs/manual/guides/lag-compensation/projectiles
    -- the guide shows how to synchronize projectiles in real-time across players and server using RPCs rather than spawning them as networked objects. It's a very effective approach that cheaply provides high accuracy.
     
    Solidcomer likes this.
  30. ELC2909

    ELC2909

    Joined:
    Jun 17, 2016
    Posts:
    8
    Hello, I just downloaded FishNet as a networking solution for my game project.

    Incidentally, my game has video chat and audio chat features. Can FishNet accommodate this need (WebRTC)? How do I send data streams in the form of images/video and audio using FishNet?
     
  31. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    There are several Unity store assets for these services which also support FishNet. EG: https://assetstore.unity.com/packages/tools/audio/dissonance-voice-chat-70078

    You can send bytes over FishNet but for misc data as well.
     
  32. khais

    khais

    Joined:
    Oct 5, 2014
    Posts:
    2
    Unity FishNet - No synchronic from Network Transform between client
    Unity Fish net, all set up is done. And available to play around. Client and server can see each other spawn.

    Question is client move a box , server and other client cannot see the movement. But when server move the box, all the client can see the movement. Here is the box component add, network observer is added too.
    I am using unity 2022.3.8f1


     
  33. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
  34. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    We are coming up on FishNet v4, our next major version! With every major release you can expect some minor API changes, all of which are covered here https://fish-networking.gitbook.io/docs/manual/general/changelog/break-solutions

    After the initial release of FishNet v4 you can expect some brand new improvements including: requested features, performance gains, and of course updates to our prediction v2 system.

    Want to make a feature request? Drop us some information on our discussions page so we can take a look! https://github.com/FirstGearGames/FishNet/discussions

    As of right now 3.11.2R is our latest and most stable release to date! Look for the 'R' in our versions to take advantage of FishNet Release Mode!

    If you are just hearing about our Release Mode feature check it out here https://fish-networking.gitbook.io/docs/#long-term-support -- release mode is a part of our stability promise to keep your game in development without breaks while still accessing all the latest fixes and features of FishNet!

    Also keep an eye out for Reign of Dwarf entering early access soon, powered by FishNet!
    https://store.steampowered.com/app/1442910/Reign_Of_Dwarf/
     
    vexstorm likes this.
  35. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    Fish-Networking v3 has entered LTS and will no longer receive new features.

    Expect more customization, better performance, and more features in FishNet v4 coming soon!
     
    vexstorm likes this.
  36. JohnTSmith

    JohnTSmith

    Joined:
    Oct 26, 2023
    Posts:
    7
    I have tried a lot of networking solutions and this one is probably the worst... In my opinion it feels like the dev only wants to make quick money off it.

    Also its not "the fastest" or "most feature-rich" networking solution available.. the only correct thing about the slogan is thats its free (to get started).

    I am posting this because I wasted a lot of time trying to get this solution to work, but its just too buggy, and the framework is a mess, so I hope others wont fall into the same hole I did and waste their time.

    Kind regards,
    John
     
    Last edited: Oct 26, 2023
  37. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    Dear John,
    thank you for creating a new forum account just to post this.
     
  38. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    Fish-Networking version 3.11.6 is available with more FREE LTS fixes.

    FishNet Version 4 is expected to release this weekend so keep an eye out for that!
     
  39. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    Thanks for the comments @vexstorm but there's no need to continue. 'JohnTSmith' has been identified as someone which was banned from my server hours before making an account here and posting.
    We have a SFW/all ages server and sometimes we ban people which cross that line, and sometimes in result this happens.
     
    Last edited: Oct 29, 2023
    vexstorm likes this.
  40. PixCave

    PixCave

    Joined:
    Oct 4, 2018
    Posts:
    35
    Hello, I'm making a 2D fighting game. I will publish only for WebGL. Does Fishnet have WebGL support? If it runs on WebGL, how is its performance? I used Photon PUN2 and Fusion, but their WebGL performance was extremely bad.
    When using Photon Fusion, The reason delay is high on webgl is because webgl(websocket) cannot NAT punch through directly, it needs relay server (STUN server) for NAT (network access translations), so whats happening on webgl with dedicated server build is below:

    client <=> relay (photon cloud) <=> server/host
    and on other platforms (windows/android):
    client <=> server/host

    Is this also the case with Fishnet? Will I experience severe lag like in Photon Fusion due to the intervening layers at Fishnet?
    Also is there a public test server for testing?
     
  41. Welfarecheck

    Welfarecheck

    Joined:
    Jun 14, 2020
    Posts:
    115
    WebGL works well with Fishnet. You host on your own server(s) and the client(s) connect. Pretty straightforward. Check the docs for the Bayou transport. https://fish-networking.gitbook.io/docs/manual/general/transports

    Join the Fish Discord (top right on the page) and ask some questions in the help channel. Almost always someone on to help and you can get a lot more in depth with your questions in real-time vs. waiting for a response on the forums. A wealth of knowledge there.
     
    PixCave likes this.
  42. PixCave

    PixCave

    Joined:
    Oct 4, 2018
    Posts:
    35
    Does it supports edgegap?
     
  43. Welfarecheck

    Welfarecheck

    Joined:
    Jun 14, 2020
    Posts:
    115
    Yes, EdgeGap, Hathora, Playflow, etc.

    Fish is very versatile.
     
    PixCave likes this.
  44. PixCave

    PixCave

    Joined:
    Oct 4, 2018
    Posts:
    35
  45. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    We are not technically EdgeGap so what is going on exactly I could not say. But I'm in touch with EdgeGap so I'll see if a representative can reach out to you.
     
    PixCave likes this.
  46. vincentarch

    vincentarch

    Joined:
    Nov 8, 2023
    Posts:
    1
    Hi there, this error could come from a multitude of sources. My guess is a port configuration issue which would make the server unreachable. Do you see anything in your deployment container logs?

    For WebGL, you would probably need to use the TLS upgrade on the port for it to work. There is a doc on how to setup a Mirror project for this, but there's currently no sample for Fishnet.

    You can join the Edgegap Discord for 1 on 1 support:
    https://discord.gg/5DyqQmFqAv
     
    PixCave likes this.
  47. PixCave

    PixCave

    Joined:
    Oct 4, 2018
    Posts:
    35
    Are there any Fishnet + WebGL + Edgegap template? :(
     
  48. CiroContns

    CiroContns

    Unity Legend

    Joined:
    Jan 28, 2008
    Posts:
    95
    Cool! What is being synced for each cube, out of curiosity? Only position?
     
  49. Punfish

    Punfish

    Joined:
    Dec 7, 2014
    Posts:
    383
    Position, rotation, and scale are all checked for synchronization. But we are only changing on position and rotation in the demo.

    There's some other ideas on the table that can make the data usage even less. Eg: 30 tick rate with no LOD a constantly moving and rotating transform uses a relative number of 420B/s, and with changes could go down to about 230B/s. While that difference is very significant it won't scale linearly With LOD; you would definitely still save more data but I'm not sure how much yet. Said ideas look good on paper but no proof of concept has been worked on yet due to other priorities.
     
    CiroContns likes this.
  50. Olek820

    Olek820

    Joined:
    Feb 16, 2023
    Posts:
    8
    Ihave Error "Unloading broken Assembly" Please help