Search Unity

  1. We've closed the job boards. If you're looking for work, or looking to hire check out Unity Connect. You can see more information here.
    Dismiss Notice
  2. We're running great holiday deals on subscriptions, swag and Asset Store packages! Take a peek at this blog for more information!
    Dismiss Notice
  3. Check out our Unite Austin 2017 YouTube playlist to catch up on what you missed. More videos coming soon.
    Dismiss Notice
  4. Unity 2017.2 is now released.
    Dismiss Notice
  5. The Unity Gear Store is here to help you look great at your next meetup, user group or conference. With all new Unity apparel, stickers and more!
    Dismiss Notice
  6. Introducing the Unity Essentials Packs! Find out more.
    Dismiss Notice
  7. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice
  8. Unity 2017.3 beta is now available for download.
    Dismiss Notice

[NO CCU LIMIT] Forge Networking now OPEN SOURCE

Discussion in 'Assets and Asset Store' started by farrisarts, Dec 22, 2014.

  1. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    You are correct and I have made the change! :D Thanks for catching that, a lot going on update wise so that card slipped haha.
     
  2. AbyssWanderer

    AbyssWanderer

    Joined:
    Mar 15, 2016
    Posts:
    73
    Hi.

    Thank you for the documentation you've made - life goes much easier with it.

    However, we still were unable to rise lobby-server (that broadcasts list of hosts to clients so that they connect peer-to-peer). We can't fulfill this stage in documentation.

    After calling client.Connect(masterServerHost, (ushort)masterServerPort); the event bindSuccessful is called, but serverAccepted is not called.
    Client sees this: http://prnt.sc/ehv2so
    Meanwhile client.client.Connected returns true. How is that possible? Could you direct us, please?
    Client is of type "TCPMasterClient"

    Note that if we make everything (master-server, host and client) on same computer - then client sees host: http://prnt.sc/ehv20m

    P.S. Yes, we are using plugins "Unity Independent Master Server REMASTERED" and "NAT Hole Punch Server REMASTERED"
     
  3. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    No problem :)

    Can you check the client.Connected boolean rather than client.client.Connected? It is possible that you bound the socket but you have not connected to the server and the request is just active (not timed out yet).

    So this makes me think that it is your firewall settings on the machine that your Master Server is on. Make sure that the machine firewall allows the application and the network firewall has it's port forwarded (for the master server and the nat server). The ports do have to be forwarded for these servers.
     
  4. Labmda

    Labmda

    Joined:
    Oct 21, 2016
    Posts:
    2
    hi, it's possible to send audio.clip over network? i try to make a chat vocal but i have meet some probleme or if someone have other solution?
     
  5. guidkal69

    guidkal69

    Joined:
    Mar 15, 2017
    Posts:
    1
    Hi,
    i wanted to try the free version but it seems that it is not the remastered version since i cant find the network contract wizard. So my question is: Is the remastered version available as free version? Cheers!
     
  6. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    Yes, we show this in our VOIP sample that comes with FNR build
     
  7. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    The Free version is very old and out-dated. As you pointed out it is not Remastered and does not reflect what forge is any longer. We currently do not have a Remastered version that is free for Forge. We will be doing full video tutorials on Remastered starting next week so that you can get a glimpse of how it works. We may be making another free build for Remastered in the future, but it is not on our current roadmap.
     
  8. mecharius

    mecharius

    Joined:
    Jan 11, 2014
    Posts:
    18
    Hi, just giving FNR a go... the docs say the network contract wizard can set fields to string, however there isn't an option in the drop down in the editor window. Am I missing something?

    Also, at the minute every time I hit the compile button, after compilation if the NCW window is showing then it turns "blank", i.e. only the title label shows and the window must be closed and reopened to show the list of generated classes again. There are no errors in the console.

    I'm using v21.5 directly from the asset store

    EDIT:
    - I also downloaded v22 from the developer profile with the same result
    - Also, I can't join your discord server, I click the link and accept the permissions but the server doesn't appear in discord.
    - Finally :) ... is there a way to kick a player from the server? Can't see anything in the docs and the "Disconnect" method doesn't seem to support this as others on this forum suggest.
     
    Last edited: Mar 19, 2017
  9. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    Thanks for the support! :)

    We have removed strings from the fields drop down for Fields since they are very expensive to keep track of and also they don't make much sense since fields are not reliable for the best network speed.

    This is a weird unity UI refresh bug we need to fix, we have a card in Trello for someone to fix this. It currently is just a visual bug, everything generated should continue working as normal.

    Do you already have a discord account? I recently fixed a bug where people who purchased on the asset store was not seeing the correct discord download link on their profile. Do you mind giving it another shot?

    You can kick a player with the Disconnect method. There is an overload on the server that takes a NetworkingPlayer as an argument. By calling this on the server you will be able to "kick" the player. Please note that you need to cast the NetWorker to UDPServer or TCPServer based on the protocol you are using to see the overload:

    Code (CSharp):
    1. ((UDPServer)Networker).Disconnect(targetPlayer //...
     
  10. CosmasStudio

    CosmasStudio

    Joined:
    Jun 6, 2013
    Posts:
    22
    If a player host a game from his mobile phone how do we keep the game running for other players if he leaves the game? How do we do host migration on mobile hosted game?
     
  11. mecharius

    mecharius

    Joined:
    Jan 11, 2014
    Posts:
    18
    Thanks for the replies.

    I already have a discord account, I've tried a couple of times - I give permissions and get the success message on the BMS portal, but there is no Forge server in the server browser on the left. Is there a direct invite link?

    Oh yeah, thanks - I was missing the cast! Cheers.
     
  12. mecharius

    mecharius

    Joined:
    Jan 11, 2014
    Posts:
    18
    Re syncing strings via the NCW - I'm using a byte[] for now with some string encoding, but on Trello I see that you are looking to remove this from NCW as well. Is there any particular reason why? Is the idea to push people towards RPCs for anything beyond the very simple value types?

    I'm also encountering an issue where it looks like a single call to "Instantiate" on the server is causing multiple instantiations on the client. This happens intermittently, with the same build of the game - sometimes there is no exception, other times there is an exception. When the error occurs there is an exception before anything else is logged by my server code:

    Code (CSharp):
    1.  
    2. ArgumentException: An element with the same key already exists in the dictionary.
    3.   at System.Collections.Generic.Dictionary`2[System.UInt32,BeardedManStudios.Forge.Networking.NetworkObject].Add (UInt32 key, BeardedManStudios.Forge.Networking.NetworkObject value) [0x00171] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:432
    4.   at BeardedManStudios.Forge.Networking.NetWorker.CompleteInitialization (BeardedManStudios.Forge.Networking.NetworkObject networkObject) [0x0001c] in D:\Code\MyGame\Assets\Bearded Man Studios Inc\Source\Forge\Networking\NetWorker.cs:421
    5.   at BeardedManStudios.Forge.Networking.NetworkObject.RegistrationComplete () [0x0001f] in D:\Code\MyGame\Assets\Bearded Man Studios Inc\Source\Forge\Networking\Objects\NetworkObject.cs:827
    6.   at BeardedManStudios.Forge.Networking.Generated.PlayerEntityBehavior.Initialize (BeardedManStudios.Forge.Networking.NetworkObject obj) [0x0004b] in D:\Code\MyGame\Assets\Bearded Man Studios Inc\Generated\UserGenerated\PlayerEntityBehavior.cs:24
    7.   at BeardedManStudios.Forge.Networking.Unity.NetworkManager+<Start>c__AnonStorey0.<>m__8 () [0x00094] in D:\Code\MyGame\Assets\Bearded Man Studios Inc\Generated\NetworkManager.cs:232
    8.   at BeardedManStudios.Forge.Networking.Unity.MainThreadManager.HandleActions () [0x00076] in D:\Code\MyGame\Assets\Bearded Man Studios Inc\Scripts\MainThreadManager.cs:134
    9.   at BeardedManStudios.Forge.Networking.Unity.MainThreadManager.FixedUpdate () [0x00002] in D:\Code\MyGame\Assets\Bearded Man Studios Inc\Scripts\MainThreadManager.cs:140
    10.  
    11. (Filename: /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs Line: 432)
    12.  
    I'm using the standard multiplayer menu. My server hosts, and creates some PlayerEntity game objects for itself using the NetworkManager generated methods.

    Code (CSharp):
    1. var playerEntity = NetworkManager.Instance.InstantiatePlayerEntity();
    When a second client connects (both running on the same PC, connected via localhost) the server creates the PlayerEntity objects for that new client using the same method.

    This randomly causes two objects to be spawned on the client.

    I can verify with Debug logging and breakpoints that the instantiate code on the server is only executed once, however on the client there are two GameObjects in the hierarchy.

    Any hints?
     
    Last edited: Mar 21, 2017
  13. AbyssWanderer

    AbyssWanderer

    Joined:
    Mar 15, 2016
    Posts:
    73
    Hi. Everything works now - client seems to see host through master-server and to connect peer-to-peer.
    Putting 5 stars review to your asset :)

    The problem was in my anti-virus - for some reason it blocked traffic. Have you any advice on how to place our application to its trust-list?
    My anti-virus is Avast, but I guess others can have similar problem.
    Or is it Steam who places application to anti-virus's trust list (considering we publish the game on Steam)?
     
  14. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    Hi there, host migration is very insecure, have you joined our Discord? We can probably hash out the details for this there :)
     
  15. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    We are removing it from the Fields because it is very expensive to check and also Fields are not reliable. If you are keeping unreliable data in a byte[] then you might have a flaw in the design.

    This is resolved in the latest version on git. We give out GitHub access through Discord. If you are still having trouble connecting with Discord, please let us know via email support@beardedmangames.com. Please use the email that you registered with the site so that we can validate the account and we'll get you setup asap :).
     
  16. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    This is a general software problem. If you have a certificate for your application, this will often allow it though a firewall since it is a trusted source. You may need to look up how to certify your application so that it doesn't trigger your anti-virus.
     
  17. mecharius

    mecharius

    Joined:
    Jan 11, 2014
    Posts:
    18
    I still cannot get access to the discord server. I will send an email.
     
  18. mecharius

    mecharius

    Joined:
    Jan 11, 2014
    Posts:
    18
    @farrisarts any chance of getting access to the github via PM if the discord can't be fixed? I've been blocked by the double instantiation issue for almost a week now! :)

    EDIT: Just saw 22.4 on the profile page - not sure if this contains the fix you mention, but I still get the issue with this version.
     
    Last edited: Mar 27, 2017
  19. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    Just as a followup to anyone who sees similar issues to this. Please just send us an email and we'll get you into the Discord once we verify your account on our server. :)

    Feel free to send a message in Discord now that we've got you added, I don't often have a lot of time until the evenings but others can help while I'm away usually.
     
    mecharius likes this.
  20. Hobonicus

    Hobonicus

    Joined:
    Aug 12, 2014
    Posts:
    35
    How does Forge handle synchronizing the hierarchy? If an client's object changes parents during runtime, what's the process of letting the server know?
     
  21. zenforhire

    zenforhire

    Joined:
    Nov 5, 2012
    Posts:
    54
    o Does Remastered support Authoritative Server?
    Notice authoritative server has been removed from all your press/features.
    Our use case is running the physics simulation on the server. Clients will only provide inputs( RPC? ) to the server.
    Clients use physics for non state stuff like visual effects.

    o Does the same code have to run on the Client and Server?
    All examples show isOwner(). The Client would never be the owner. Is this just convenience of a single build?
    We want to hide the server code. This approach would pull in all server side classes into the Client?
     
  22. Zapgun

    Zapgun

    Joined:
    Jun 3, 2011
    Posts:
    43
    UPDATE: --- All fixed.. it seems something was corrupted in my project..

    --------

    Hi there,

    I'm getting this bug when I try to run a client from the editor (seems to be OK when I run it from the build, however). Suggestions? Note that I only have 2 scenes in the build, and if I add a third, then it tells me that the index: 4 couldn't be loaded....

    Code (CSharp):
    1. Scene with build index: 3 couldn't be loaded because it has not been added to the build settings.
    2. To add a scene to the build settings use the menu File->Build Settings...
    3. UnityEngine.SceneManagement.SceneManager:LoadScene(Int32)
    4. MultiplayerMenu:Connected(NetWorker) (at Assets/Bearded Man Studios Inc/Scripts/Multiplayer Menu/MultiplayerMenu.cs:176)
    5. MultiplayerMenu:Host() (at Assets/Bearded Man Studios Inc/Scripts/Multiplayer Menu/MultiplayerMenu.cs:150)
    6. UnityEngine.EventSystems.EventSystem:Update()
    7.  
     
    Last edited: Apr 15, 2017
  23. Anubis75

    Anubis75

    Joined:
    Jul 29, 2013
    Posts:
    24
    Hello,

    i searching for Information to save the Player Data. I read something about the forge db, but i cant found any Information.
    This Board is also very Hard to find some Informations. Its a implemented funcion to store persistent data?

    Thank you in advice

    Anubis
     
  24. Anubis75

    Anubis75

    Joined:
    Jul 29, 2013
    Posts:
    24
    At the Moment is sale in the asset store, and no present here in the forum to Answering the questions?
     
    Last edited: Apr 20, 2017
  25. VrTechEx

    VrTechEx

    Joined:
    Aug 4, 2013
    Posts:
    13
    How to Check if any players disconnected from Server? So The Server can delete them ?? :D
     
  26. finx

    finx

    Joined:
    Mar 31, 2017
    Posts:
    6
    Hello I would like to know if this asset serves me to connect a PC with an android tablet. I'm making a game where you play from a tablet and see everything through a pc that will show everything on a 4k TV in real time, clarto that on the television will not always see the same as the tablet only when you press play Transmit what happens on the tablet.
     
  27. nxrighthere

    nxrighthere

    Joined:
    Mar 2, 2014
    Posts:
    100
    I can't find any kind of information about proximity in the new documentation. Is it still not in there?
     
  28. thanhle

    thanhle

    Joined:
    May 2, 2013
    Posts:
    95
    the video is not enough !
    You have A demo for test ?
    Exe ... or webplayer or something ?
     
  29. Zivix_

    Zivix_

    Joined:
    May 28, 2017
    Posts:
    1
    Hello,

    I've been trying to decide for a while whether or not I should purchase Forge Networking. I'm hoping that through explaining my experiences, the Forge Networking team will be able to address these problems and grow to attract more customers.

    I have to say that Forge Networking appears promising on the surface, but it's incredibly difficult to gauge whether or not the framework will even work with my game, especially because 1+ months can go by on the forum without any dev response, emails go unresponded, and the Discord server is only available to those who have purchased the asset. While I'm sure it isn't true, it really does appear as if the developers don't care about prospective customers and the questions they may have. I've done my best to dig up every piece of information available on FNR (doing continuous research daily for weeks now), but I still haven't been able to find answers to any of my most pressing questions. Sadly, I doubt that this is the first instance where prospective customers have been driven away due to disconnect with devs/support.

    I really want a good reason to use Forge Networking Remastered over Photon Server. Last night I had the purchase portal open, but I couldn't bring myself to pull the trigger due to the lack of commitment I've seen to answering prospective customer questions. I really hope that some changes are made in order to better support prospective customers and to convert them to users of FNR. At the very least, a larger commitment to answering the questions of those who might be hesitant to use a networking solution yet to be implemented and proven at scale in any launched games would be appreciated. Additionally, because the developer portal is the main website for Forge Networking Remastered, an overhaul could likely be very beneficial. I won't act as if I have the data detailing where most of your sales are coming from and how much traffic the developer portal recieves, but I'd be hesitant to believe that an overhaul of the site wouldn't help drive more sales if done properly. Regarding the portal and presentation of information, the following were huge issues in my opinion:
    • The website has no footer and the support email is placed in the middle of the page. It's really easy to overlook that support email.
    • Addons and their pricing aren't available unless you purchase the FNR asset. How can one properly do their research if this information is hidden behind a paywall?
    • Going into greater detail regarding what FNR is and isn't capable of. As I've previously stated, it has been incredibly tough to determine whether the asset is right for me due to the fact that no games in production use it. Because you don't have the reputation that Photon Server has, it baffles me that there isn't more support for prospective customers. With no trial version, no live examples of the asset functioning at scale, and the fact that the extensive video documention (minus the 7 new videos) are completely outdated, people need a reason to go with FNR over Photon Server(or other Photon networking solutions) and the other available networking assets/frameworks. What happened to the statement a few months ago that there would be someone checking emails and the forums daily? I understand that you're a small team with day jobs and that you're focused on improving the asset, but reserving almost all communication for the Discord channel that prospective customers cannot access can easily prevent others like me from making the jump and dropping the money on FNR.
    Some of the questions I have yet to see answers for:
    • Will a headless linux server work with FNR? I've watched the video demonstrating functionality with the old framework, but have yet to see anything about it in FNR.
    • I'm building a turn based 1v1 strategy game. It has been incredibly tough to determine whether or not FNR will work for my game, as I'm hoping to develop it in a way that promotes a strong competitive community. I need to be able to run multiple game instances on the server, likely with the server checking that player moves are valid, performing the game logic calculations, and informing both clients of state changes. The game logic shouldn't be heavily demanding as they will largely be minor calculations, with the most demanding work being pathfinding and line of sight calculations. I've found myself doubtful of FNR due to the docs' statement that the servers are authoritative, but that they don't use authoritative game logic. I understand that the server and client share code, with the deterministic factor being whether that isServer flag or isOwner flag being enabled. So I'm trying to determine if I'll be able to maintain the competitive integrity of my game and prevent cheating if I use FNR.
    • The docs page detailing working with multiple sockets appears promising for running multiple servers on a single machine. Because each server runs in a unity instance, I was curious as to how demanding the server instances are on the CPU and memory, as well as how well the framework scales to support a large number of CCUs on a single server machine and how load balancing could be handled once a server machine can no longer handle running any additional game instances.
    • Because FNR didn't release until February of this year, there are likely no games or very few games in production that utilize the framework. Because of this, how can we be assured of the framework's stability, especially at scale? I saw a post on this forum from september saying that FNR was incredibly unstable. I'm aware that the post was made during a time of beta 8 months ago, so I assume those stability issues were addressed; however, it was curious to see that no developer responded to that individual's complaints.
    I really hope this post doesn't come across as too critical. I've been spending far too long now deciding on a multiplayer framework and I want to be able to justify buying and using Forge Networking Remastered for my game. So far, I haven't been able to do so, which led to my downloading Photon Server this morning. If FNR is an asset that will work with my game (still largely unsure about whether cheating can easily be prevented when the server code is present within the client), I hope that someone is able to provide the answers I seek before I've done too much work with Photon to make the switch.
     
    Last edited: May 29, 2017
  30. drewdough

    drewdough

    Joined:
    Oct 5, 2016
    Posts:
    30
    hi, can someone help? I am struggling to do the simplest task: view their wiki found here http://wiki.forgepowered.com

    There's simply no way to create a new account to login.

    I also tried to find their Discord chat by following the directions in the reddit post which asked to log in to their site, and go to 'profile' and find the discord icon. I have no Discord icon on my profile..


    upload_2017-6-2_9-33-8.png

    am I going insane? This is my experience before even downloading the product. Is the rest of the product reflective of how hard it is to simply find their forum and wiki?
     
  31. Anubis75

    Anubis75

    Joined:
    Jul 29, 2013
    Posts:
    24
    Ok after 6 Weeks without answering, thank you for helping my buying decision. i will not buy this produkt.
    This Forum is not nice for support, and also its looks like the support are not there... Well, good luck
     
  32. Hybrid1969

    Hybrid1969

    Joined:
    Apr 19, 2013
    Posts:
    30
    I have an idiot question....

    I currently have a basic async socket server written in C# which i am integrating BEPUPhysics into, however my networking is not the best, especially from the unity end and I am starting to see the limitations of my own implementation.

    And so instead of remaking the wheel with my own limited network scripts I wanted to know If i could I use Forge Networking on the Unity end as well as without unity in a pure C# server implementation.

    I hope that makes sense and you get what I mean.
     
  33. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    Announcement
    I am happy to announce that Forge Networking is now open source and on GitHub. YES WE (THE DEVELOPERS) ARE GOING TO CONTINUE WORKING ON FORGE, WE ARE NOT GOING ANYWHERE. We highly encourage you to join the community :). We still have the sales pages up (it may take some time to update all these) so anyone "buying" the product through those means will get the fancy supporter tag in the community to show that they are special :). I can't wait to see you all in the community :). Come on over and join us for some awesome networking goodness!

    Here is an echo from the updated main post in this thread:
    Forge Networking Remastered is now open source! Let me quickly address common questions:
    - This project is not abandoned, just embracing open source like Box2D or Linux
    - We (the developers) will continue to work on the project just with the community included now
    - We are looking for contributors, we are not closed off to mods/contributors
    - The community is open and all about network games/apps, so you can join even if you are not using Forge Networking
     
    Mauri and Weendie-Games like this.
  34. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    Here are a couple of videos to get you started with the open source project on GitHub :)

    Unity Free Networking Solution: Forge Networking


    GitHub Fork and Pull Request: Forge Networking sample
     
    Weendie-Games likes this.
  35. Skylander17

    Skylander17

    Joined:
    Jul 16, 2014
    Posts:
    3
    Awesome news. I can't wait to try it.
     
    farrisarts likes this.
  36. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    Woo! Feel free to jump on our Discord, the community (and us developers) are happy to help out with any questions.
     
  37. JamesArndt

    JamesArndt

    Joined:
    Dec 1, 2009
    Posts:
    2,189
    I found this video demoing Angry Bots working with local multiplayer. I noticed you guys commented on the video that there was a tutorial on this. I can't seem to find it looking through this thread. Any guidance on where I can find this or if it exists?

     
  38. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    This demo was done in Forge Networking Classic, however if we get our hands on a C# (only) version of angry bots I would be more than happy to make a short video (series) on how you can make Forge Networking Remastered do the same exact thing :). I might be able to take the old code and remove the Forge Networking Classic specific code and work from there if you and anyone else would be interested.
     
    JamesArndt likes this.
  39. JamesArndt

    JamesArndt

    Joined:
    Dec 1, 2009
    Posts:
    2,189
    Ah okay I see. I think I can work out how to do co-op with two players over the network. I do have some of Angry Bots converted to C# right now. The weapon system, the character movement and animation control, the health...basically everything except the AI and environment elements. I didn't need any of that stuff so I didn't convert it. This should be a good learning experience!
     
  40. s1monxyz

    s1monxyz

    Joined:
    Feb 29, 2016
    Posts:
    1
    Is there any new tutorial in the same manner, for the new version? I don't care about that specific game, but just the basics on how to sync position, animations etc
     
    JamesArndt likes this.
  41. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    :0 Awesome. @Cranick converted the original one to C# and he is not too fond of having to do it again but might be willing to help XD.

    Not as of right now but given a demo to work with that the community can use I would be happy to make something like that :).
     
    JamesArndt likes this.
  42. CraftingPixelLab

    CraftingPixelLab

    Joined:
    Jan 12, 2013
    Posts:
    154
  43. gfrast

    gfrast

    Joined:
    May 5, 2014
    Posts:
    21
    hi there!

    I'm looking for an alternative to uLink (as its not being actively developed anymore), so I've been playing around a bit with the Open-Source version of Forge, and it looks very promising. Although, there are still a few open questions:

    How would you handle Interest Management? For example, i want to spawn an item just for one player, not for all players on the server (save bandwidth, performance, etc...). I could only find the NetworManager.Instantiate method (as mentioned in the Tutorials). As forge is not using NetworkViews - where are the ViewIDs (Unique Network-IDs) stored? Can you set them manually after instantiating an object, to make sure you reach the correct GameObject with your RPCs?

    Also, i'm not so comfortable with using the Contract Wizard for every networked object that i want to create - since i'd prefer to write the rpc code myself, i created just one object via the wizard, and then inherited all objects that i want to be networked from the generated behavior. then, i registered the RPC in every object's Start() Method. i just tested this with RPCs in two different objects that both inherit from the same behavior - am i going to run into any major problems using this workflow?

    thanks a lot for the insight - you guys did a great job on forge!
     
  44. yumianhuli1

    yumianhuli1

    Joined:
    Mar 14, 2015
    Posts:
    55
    Hello!
    1 Does no CCU/DAU cost means ForgeNetwork is a P2P network plugin?
    2 If I run a java master server as a webhosting server,and the server tell client A(internet IP and LAN IP of B ) same with client B,then your ForgeNetwork start P2P data transfer between two clients ,right?
    3 Just write host internet ip and port (without LAN ip and port)is enough for data transfer by using forgenetworking between two clients?The local real ip and port is automaticlly transfered by NAT?
    Thank U!
     
    Last edited: Jul 20, 2017
  45. mhernandez88

    mhernandez88

    Joined:
    Jul 20, 2016
    Posts:
    7
    (SOLVED IN CHAT - Answer at bottom)

    @farrisarts : I read earlier about assigning a connection via the Instantiate command for scaleability reasons.
    Is there any way we can do a priority based system, I was watching a networking video on halo and i loved the optimization.
    Basically, with some set of rules, calculate the priority of an object. Given its priority, control the frequency of updates, and the transport the updates travel on.

    i.e. I just killed a player, .99 priority, update its position and ragdoll frequently and do it over tcp so i dont miss anything
    or, someone threw a grenade but its 60 meters from me, .48 priority, use UDP and update infrequently.

    I mean its already great that we can set tcp for some object, and udp for others. But if there is any way to hack this priority switcher, that would be amazing.

    Primarily this helps ensure effective communication in high load situations, and prevents rubber banding when a laggy player connects, since the TCP stack doesnt overflow
    ( stab @ Ark Survival Evolved )

    --- Answer ---
    A priority queue is not setup at the moment but can be added in since all messages are actually queued up as Packet Composers (for UDP). You can also run a TCP connection in parallel with UDP in the system as it is (we do this for the master server). This will cause a bit of weirdness when you try to mix the two networkers because technically it is seen as 2 different clients (there is a helper method to match clients in NetWorker for this). This is an area I have not extensively tested myself but it is something that I wouldn't mind getting further developed haha
     
    Last edited: Jul 21, 2017
    farrisarts likes this.
  46. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    Unity has not accepted my update from over a month ago, that is the main difference. If you do purchase the asset then you get a super cool "Supporter" tag in Discord and we keep track of our supporters for if we want to do anything special for them in the future.
     
    CraftingPixelLab likes this.
  47. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    The ids for objects are dynamically added (dictated by the server). The server knows all objects and is the authority so it creates the ids for objects and then supplies the id upon creation to the clients. You can use proximity based updates in order to control the data being sent to clients (as well as turn off things like renders and such). Otherwise you can send messages directly to the server/client with the direct Send methods that are built in to the NetWorkers. Forge has a very different design from Unity's networking system so there are some things that take a minute to find the parallel to (if you jump on Discord you can get help quick :D)

    The Network Contract Wizard does no magic whatsoever, it just does all the redundant code you are required to write to connect up to Forge. This is how we get around reflection. It is not generating any business logic of sorts. When you setup an RPC or anything else it creates the signature that you are required to override. A lot of people were a bit worried about using generated code, but for the most part, after they understood that it does no magic at all other than hooking up redundant stuff you are going to have to do anyway, it is easier to work with. Not using the NCW will cause headaches in the future if we upgrade how to connect things to Forge because rather than clicking 1 button to upgrade, you will need to go to all classes and update them manually.

    Thanks! We love all the feedback we are getting and are so happy to work with the community to continue this project :)
     
  48. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    Nope, every bit of data goes through the server, clients do not communicate directly with each other.

    We have a built in server technology so there is no need to run a Java server, however if you were to need to then you can communicate with Forge using our custom protocols (message headers and footers)

    We have a NAT hole punching solution built in for you to use. Just run the NAT server and add some code then you are ready to go :)
     
  49. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    880
    Inspeinre and ikazrima like this.
  50. Shawn67

    Shawn67

    Joined:
    Jan 2, 2014
    Posts:
    1,959
    Asset store link goes to main page. Correct asset link

    I notice in the AS file list that there is a DLL. It looks like you have a source folder in Git named the same. I'm not sure if there are other libraries/binaries in the AS version, but if there are is it safe to assume the source is also in the Git repository? I know you guys say you are continuing to develop. But just in case, I prefer to have full source in case some day you guys aren't. :)