1. Help us improve the editor usability and artist workflows. Join our discussion to provide your feedback.
    Dismiss Notice
  2. We're looking for feedback on Unity Starter Kits! Let us know what you’d like.
    Dismiss Notice
  3. We’re giving 2017.1 beta testers a chance to win t-shirts and a Nintendo Switch. Read more on the blog.
    Dismiss Notice
  4. We want to know how you learned Unity! Help us by taking this quick survey and have a chance at a $25 gift card
    Dismiss Notice
  5. Unity 5.6 is now released.
    Dismiss Notice
  6. Check out all the fixes for 5.6 on the patch releases page.
    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:
    873
    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:
    41
    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:
    873
    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:
    873
    Yes, we show this in our VOIP sample that comes with FNR build
     
  7. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    873
    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:
    873
    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:
    21
    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:
    41
    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:
    873
    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:
    873
    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:
    873
    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:
    873
    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:
    42
    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:
    9
    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:
    43
    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:
    83
    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:
    29
    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:
    873
    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
     
    Weendie-Games likes this.
  34. farrisarts

    farrisarts

    Joined:
    Jul 13, 2012
    Posts:
    873
    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:
    2
    Awesome news. I can't wait to try it.
     
    farrisarts likes this.
  36. farrisarts

    farrisarts

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