Search Unity

[NO CCU LIMIT] Forge Networking now OPEN SOURCE

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

  1. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Awesome!! We totally encourage community driven tutorials as well :). We would be happy to embed any tutorials you may have onto the dev site.

    The ID's for the objects are automatically assigned when they are instantiated on the network. If an object is not created through the "Networking.Instantiate" or similar method it is not assigned an id as it is assumed to be a local object. If an object is a derived from the "SimpleNetworkedMonoBehavior" or any of its derivatives and it is saved in the scene, then it will have an ID assigned to it on Awake :)

    You can access the ID for a networked object via the "NetworkedId" getter. You can also get the owning player via the "OwnerId" getter. As seen in the sample move code you can also just do a simple "IsOwner" getter boolean check to determine if the current player is the owner of the particular object. :)
     
  2. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hello all! I have sent out an email with version 15 attached. If you wish to have the build of Bare Metal with the updated TCP fix, please go to the developer portal and download it from the profile section: http://developers.forgearcade.com/Profile

    Thank you all for your continued support and please let me know if you have any trouble with this new build :). Hopefully no odd merge conflicts. It is about 3am here so now I'mma go to bed so that I can continue to work on Forge tomorrow! :D
     
  3. TeachableNoob

    TeachableNoob

    Joined:
    Apr 23, 2015
    Posts:
    21
    Im creating a brand new scene with a 3rd person controller in Unity, is their a special way I need to hook the network behaviour up so I can move the Unity character around like I am the boxes in the examples?

    I haven't started building the scene yet, just asking in advance.
    would I also use the same ForgeQuickStartMenu ?
     
  4. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    If you are using the default 3rd person character, you will need to identify the main parts of the code that control movement if you want to make the animations carry across. If you don't care about the animations, you can just attach a NetworkedMonoBehavior script to the character.

    You can use the same quick start menu scene if you would like, or you could make your own too :)

    Here is an example of how I made a character I did not code move, rotate and animate across the network by custom serializing a few variables:

     
  5. Sphelps

    Sphelps

    Joined:
    Jun 9, 2013
    Posts:
    243
    How do you test it out?
     
  6. TeachableNoob

    TeachableNoob

    Joined:
    Apr 23, 2015
    Posts:
    21
    im having trouble with the client being able to hit the "find on Lan" option and it actually connecting to the networked scene...in my main unity editor when I hit play, It loads the menu, I click on start server, it takes me into the scene and im able to move my guy no problem...but client nope dosn't work. I followed your above video tutorial with unity5 using the 3rd person controller.

    This example will just show the main character moving on the client's screens right? it won't actually allow them to log their own copys of the same character into the scene ? how would we enable that.

    sorry for the multiple questions..but im really trying to learn your system :)
     
  7. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    When will the final version is expected and how can I join the beta program? :)
     
  8. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hi there! Currently we are testing every platform, cross platform and across different networks, routers, and so forth. This is consuming a lot of time as some of us need to travel to different locations and test there as well. Once on both ends we are running debugger sessions to determine any issues. The system is nearing its first release date once all of these tests have been verified. For this we have been a bit slow on new Beta invites. We possibly will be doing another round very soon :)
     
  9. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    @farrisarts,
    Can you give us some performance numbers against others networking solutions such as uLink, Photon, Smartfox, ElectroServer, etc? CPU usage, memory footprint, bandwidth usage? I heard Photon bandwidth use is huge
    Regards,
     
  10. wiseman_2

    wiseman_2

    Joined:
    Dec 11, 2013
    Posts:
    66
    hey..glad to see that your still working on forge.

    I've been away for awhile with work, and now can't seem to log into the dev portal to download the latest beta..
    would appreciate any help
     
  11. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Sending out the next beta invites tonight. Thank you guys for supporting us, we are actually really close to release this. Shooting for this weekend!

    Thanks all! (Beta testers will be able to test out solutions before new version are out as well!)
     
  12. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hey there! Do you mind sending an email to support@beardedmangames.com with the email that you used for the portal so that we can get your login sorted out? :)

    Thanks!
     
  13. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hi there! Sorry for the late reply. We have done a lot of testing to make our bandwidth usage as small as possible. The system actually comes with a method of serializing data in the way that you want to serialize it so that it would only have 1 byte being sent by us. Let me see if I can dig up the post where we had conversations about this topic in this thread. I know the thread is super long and hard to sift through. I remember going over the specs of bandwidth with @jpthek9.

    Base header sizes: http://forum.unity3d.com/threads/su...ows-universal-apps.286900/page-7#post-1946116

    Update on the Write Raw getting a header size reduction: http://forum.unity3d.com/threads/su...ows-universal-apps.286900/page-7#post-1946167

    To further the bandwidth compression, you can actually control the intervals that the data is being sent across the network on each object individually that derives from the Networked MonoBehavior :)

    upload_2015-6-1_20-14-10.png
    I would like to note that our networking bandwidth is WELL below that of Photon's networking solution. We have confirmed this ourselves and through other beta testers.
     
  14. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Update: We have sent out our next wave of betas (25 new beta testers). Sorry for the delay, it takes some time to input everyone into the system and go through our verification.

    I have also fixed the bug with buffered RPC's not clearing correctly. Also, anyone having issues with the RealSenderId getting set to the server ID "0", this has been fixed as well :) You shall see these changes in the next iteration of the beta!
     
    jpthek9 likes this.
  15. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    @farrisarts,
    Thanks for the info. Waiting patiently for the final version. Do you have any date or estimate for Forge Networking release?
    Regards,
     
  16. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    This weekend hopefully. We are submitting to the asset store tonight. :)

    That is the Beta version, as we still are working on improvements but it is in a stable enough state that we believe the users can make great games on it.

    Final release would depend on many factors but that isn't too far from now.
     
  17. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    @Cranick,
    Awesome! :)
     
  18. jasonMcintosh

    jasonMcintosh

    Joined:
    Jul 4, 2012
    Posts:
    74
    What are your plans with regards to Unity's upcoming native networking features? Will you be integrating some or all of that into Forge?
     
  19. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    So, as of right now, we believe that we support many of the current features of UNET out of the box. If we are missing anything that UNET will provide, then our main focus will be not only to match it, but surpass it's feature sets. On top of this, out of the box we will have a Forge Networking database which will be used to track the current running servers which developers can view. We are not aware of UNET's performance or bandwidth overhead, if they spin up separate threads or if it was just made to be completely simple without the flexibility that you would find in Forge.

    When we hit the ground and get some good feedback from the initial release we will also be preparing our non-unity instance server "Bare Metal" which will act as a messaging and load balancing server to those who need advanced networking capabilities.

    If the talks we have been having with some third parties goes well, we will be able to host Forge Networking servers as well ourselves so that developers don't have to manage and do all of that IT work themselves.

    We also have experimental things in the work such as bluetooth communication and possibly non-real time communication through data in order to provide a different turn based gameplay that you would find in many casual games.

    If everything goes smoothly we will be working on our BAAS (Backend As A Service) infrastructure to allow developers to have a good relational backend service at their fingertips rather than relying on expensive DAU key value stores like Play Fab.

    Lastly, we are taking any and all suggestions on what developers would like to see in a full featured networking system (networking, server, data, etc.). In our little studio here, we have developers who have a wide range of experience in all of these fields so we should be able to target and achieve any type of request that comes our way :)

    Thanks for the question,
    Also, if you have any suggestions now I would love to hear them!
     
    Last edited: Jun 5, 2015
  20. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hello all, we have started our submission to the Asset Store! Here is the changelist for Release 1.0

    • Moved all code from DLL to Unity
    • Fixed buffered RPCs not clearing correctly
    • Fixed issue with RealSenderId constantly being set to server identity
    • Using NETFX_CORE preprocessor so Windows Store and Windows Phone do not need a plugin DLL
    • Fixed connection issues with connecting Windows Store applications to servers on other operating systems
    • Added new MainThreadManager class, just call MainThreadManager.Run(method); to run a method on the main thread
    • Removed the duplication of main thread action handlers from NetWorkerKiller and ArbiterAPI
    • Update HTTP to have better support for get parameters
    • Improved stability of threaded HTTP request
    • Added HTTPS request fixes
    • Fixed Arbiter API to register online servers correctly
    • Fixed server browser
     
    Last edited: Jun 6, 2015
  21. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    Does it means you provide Forge Networking source code? :eek:
     
  22. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Yes
     
  23. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Yes, it will be completely open source. There are NO plugins (NO DLLs), and it still works on all of the following platforms:
    • Windows (x86 / x64)
    • Mac (x86 / x64)
    • Linux (x86 / x64)
    • iPhone / iPad
    • Android
    • Windows Phone 8.1
    • Windows Store 8.1
    • Windows Universal
    • Webplayer
    If any other platforms use standard sockets then it will work on them as well, we just haven't tested on those platforms. Also XBOX One will be upgrading to Windows 10 which means that since we support universal apps it should have no problem working on that platform either, but again, it is up to how the distributor deals with networking internally.
     
    Last edited: Jun 6, 2015
  24. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    That's awesome! I never buy DLL plugins, specially on the Asset Store, quite often we see discontinued products and you are stuck with compiled DLLs. At least with source code If ever found a bug, I can easily dig and try to fix it my self.
    PS: Anxiously waiting for Forge Networking release! :)
     
    Cranick likes this.
  25. justtime

    justtime

    Joined:
    Oct 6, 2013
    Posts:
    424
    Gi, guys! When release of the Forge?
     
  26. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Just waiting for Asset Store to review it and hopefully approve it. Ball is in their court atm, so we are all just excited to get it into your hands as you are all excited to mess with it.
     
  27. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    I would like to announce that we have officially closed off the open beta and are now going to be switching to a closed beta for the people who have purchased our Networking Solution from the Asset Store (when it becomes available). For those who have been with us since the beginning, thank you for using our solution and testing its capabilities to its maximum and giving us quality feedback to improve it so much to a system we all want. We all worked very hard to get it to the state it is in now and all we can do is just keep polishing and implementing feature requests.

    For those wanting to be in the beta will have to send their invoice # to support@beardedmangames.com so that they can be added to the beta list for future versions before they are released to the asset store for updates. We will be closing off the downloads for the beta on June 14th. We do have plans to have a trial version in the future that will be licensed out to individuals and studios but that will be a bit further down the line. For now we just are glad that you have been part of our beta and hopefully will show your support in us in the future to come.

    Thank you all,
    Bearded Man Studios Team

    Note: Beta testers added after release will have permanent beta access, any current beta testers (before release) can renew their beta access by contacting us directly at support@beardedmangames.com
     
    Last edited: Jun 8, 2015
  28. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    :) Yeup! As developers ourselves we know what you mean. Having source really not only helps make sure developers are lost when something becomes no longer supported (which we don't see stopping support for Forge) but even better is that developers are able to modify pieces of the core code in order to make better support for their unique games! :)
     
  29. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Announcement:

    In light of the new competitor in the "charge you for networking by CCU" space (Unity) we will be working on making our Arbiter and database (BAAS) tools open source so that you as a network game and application engineer will have your own turn key solution for data and networking. That way you will have FULL control over every byte and where it goes and you keep your business within your business.

    With every inch of Forge Networking being open source, you as the developer will have all the power you need to thrive in your own unique way. :)
     
    tatoforever and Zaddo67 like this.
  30. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hello all, Unity hasn't even finished reviewing Forge Networking for the asset store and we have prepared a feature update. We now allow you to serialize the transforms of your networked objects in pieces. So now you can serialize just the x position if you wanted or maybe the x and z, etc. We also are slowly going through and cleaning up the code and comment documentation on each of our updates.
     
  31. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    @farrisarts,
    Yeah, just saw the Unity announcement. They will charge per CCU. :(
    I've tested out locally UNET in our multiplayer game and dunno why it says 4 CCU, it was only me. Maybe they are counting build instances as CCUs? o_O
    I'm glad the way you are taking your business model with your open initiative and having developer access to your sources. It's always good for future expandability or in case we run into bugs. :)
    Plus the fact that we'll be able to host our servers wherever we want it's awesome!
    PS: I guess you are preparing some video materials for the launch? Or the ones you already have should be enough? :D
     
    Last edited: Jun 10, 2015
    Brent_Farris likes this.
  32. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Yeah, this was not expected for me, I didn't try out the beta or stay up to date on it though :(

    Yeup, I figure that the best way to keep improving the platform is with a real community. A community that just says "hey there is a problem here" is not really anything but a bug reporting system. I think that providing open source it allows the community to do some really amazing things that the system may not support out of the box. And better yet, people can share their systems if they would like! :D

    Yes. So the videos and tutorials that are on the site are started to age but they are not deprecated. We will be constantly providing source code, tutorials, and video explanations on the system. Also, once we have covered how the system works we will be providing tutorials on creating network games of different genres, what to think about and how to optimize for that type. :) I personally love making tutorials so making tutorials for a system I developed should prove awesome!
     
  33. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    @farrisarts,
    I tried the Unity 5.1 beta for a while now. Movement interpolation doesn't seems to work fine no matter what I set, network entities movements pops instead of interpolate smoothly (rotation interpolation works fine). The other issue i had is that many of my folks where unable to connect to the match making service, so no real Internet playtest to date. UNET documentation and tutorials are abyssmall. First UNET version will only support client hosting services (players being the server and client) they said future phases of UNET will have dedicated authoritative client-server but looks like you won't be able to host server instances anywhere outside Unity Cloud. All in all, UNET service and model looks very similar to Photon Cloud with a CCU system which is a nono for us. So yeah I'm waiting anxiously to dive in Forge! :D
     
    Last edited: Jun 10, 2015
  34. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Interesting, we are getting the same kind of review for UNET in our inbox as well. I am glad that we can still offer a valuable networking package to the community none the less. :)

    Unity is taking longer to review Forge than they took for our other assets. It may also be because they will be testing out the system on every platform and checking all of our menus and documentation. All in all we really have loved working on Forge and can't wait to start working with the community on some new games! :D
     
  35. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    @farrisarts,
    I forgot to ask something. Do you guys have any plans for server database support? Where the server can serialize player accounts, game state, etc? If so, how will it work alongside Forge servers?
    Regards,
     
  36. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Yes :)

    In fact, in our beta's we had a working experimental player user login. We have been working on our BAAS for a while now and it is one of our primary focuses. We will provide a service to allow developers to use this at probably a bandwidth cost (No evil CCU or DAU). HOWEVER, we will be providing full source code for our backend implementation eventually as well as an addon (means you don't pay us any bandwidth costs if you host your own). Also, as a final note, we will be developing APIs that will be a part of the system to make use of other BAAS services such as PARSE. These will all be optional addons for the system :)

    Please let us know your thoughts! Thanks for the awesome questions :D
     
    Last edited: Jun 11, 2015
  37. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    I'm really interested in such service based on fair bandwidth use. But having the option to host the server ourselves is awesome yeah! :)
    Another question, can clients host matchs themselves or it's purely dedicated servers?
     
  38. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    That is what we believe :)

    Clients by default are allowed to host servers themselves. However this is also up to the developer. As a developer you can chose not to let the client build have a host server function. Then you will have a server only build and a client only build. In our examples we make client/server builds where any client can be a server :)
     
  39. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Announcement 2:

    Releasing via website tonight!

    Because of high request volumes we are going to be allowing everyone to buy Forge Networking via PayPal tonight on our developer portal. Our asset has been in review for about 7 days now and we have already made a version update with new features. Since we do not know how long the review process will take because of the fact that it works on so many platforms we are going to release tonight!

    We are currently working on a slew of new documentation and will be opening up a chat channel very soon. For those of you who have been around in the Beta and were use to those 3 day updates, prepare for that same support on our release version! :D So you will need to talk with the community and visit the developer site often to get them awesome updates.

    We are not only trying to build a great, open source, cross platform networking solution, but a community of like minded developers who love networking or wish to learn it. So please have fun and contribute to the public channels however you wish!

    Thank you all for helping us reach the official launch of Forge Networking! I will be making an updated post once the system is ready for purchase.
     
    tatoforever likes this.
  40. foxlin

    foxlin

    Joined:
    Jun 12, 2015
    Posts:
    2
    I was trying to follow your tutorial here (http://developers.forgearcade.com/Tutorials/MasterClassBeginner/Buffered-Networking-Instantiate), but couldn't get it to work. The client's connection wouldn't result in the instantiation of a new "guy". I finally got it working today by changing the canvas's "Start Game" Script from TCP to UDP. Did I mess up somewhere? Could you explain why that change would cause it to work?


    On a different note, you should probably add an annotation to this tutorial (http://developers.forgearcade.com/Tutorials/GettingStarted/Step-By-Step-Example), telling the user to name their scene "ForgeHelloCube" or change the name in the canvas script. I spent a long time figuring out why it wouldn't work, because I followed the instructions verbatim to name it "Game".

    Thanks for the work! Keep it up!
     
  41. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Ah! Sorry, you must have gotten an older beta where the TCP became deprecated. This is resolved in our release version. You have messed nothing up :). Technically, unless you are targeting the WebPlayer, you will always want to use UDP :) so it is good that you use this one.

    You got it! We are actually in the process of recording all new videos for the release version which will cover all of the little things that these older videos are missing. We had an email earlier today about missing that part in our documentation as well. It shall be our top priority to point out as many of these things as we can in the new tutorials! :D

    Thank you for your awesome feedback! We will also double check the TCP on that particular scene as well to make sure there are no bugs in relation to it. :)

    Edit: The annotation has been added for those who will view the video before the new series.
     
    tatoforever and foxlin like this.
  42. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    @ferrisarts,
    Just bought your package on your website! Installing it right now! :)
    Btw, I never received any confirmation email when I registered on your website, is that normal? I still was able to download the package after purchase though.

    PS: How will I get access to the AssetStore version if we buy on your site? :D
    Regards,
     
  43. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Awesome! Thank you for the support! :)

    Interesting, you should have received an email from "support@beardedmangames.com". Did it wind up in your junk folder?
     
  44. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    Nop,
    Nothing on my Junk box.
     
  45. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Alright, thank you for the report! I'll check my smtp server settings to make sure I didn't mess anything up. It worked with our previous release of the site. It is possible that it got bugged when we migrated.
     
  46. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    Alrighty! :)
     
  47. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Thank you everyone so much for your support! It is so great to have a vibrant community that loves to get the most out of unity and make viable games that we all can enjoy.

    Without further ado, we formally announce that we have pushed our asset to be sold on our website! (via Paypal)
    http://developers.forgearcade.com

    You can always wait for the unity asset store release but I will say that the one on our website will be more up to date then Unity as we will be consistently pushing updates that we personally don't know how fast the asset store will be able to approve them. In either case, the main updates will always be published on the asset store and updates from feedback will be published asap on our website. If you buy our asset through the asset store which is still in review, you will also be able to use your transaction # on our website to be able to get the latest builds quickly.

    Here is a simple video of how to purchase our Networking Package through Paypal.


    I'm also happy to announce that we set our price at $64.99. We believe that this is an appropriate price point for many and hope that you believe so as well. Arbiter and Bare Metal will be a separate add on that you will have to buy through our website when it is available (which will also include full source code).

    The Forge Networking package will include all the source code! We promised, and we delivered! Now it is time to continue on and make it the forefront of Networking Solutions. Thank you all so much.

    Thanks,
    From us at Bearded Man Studios, Inc
     
    tatoforever likes this.
  48. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    I was able to transition from UNET to Forge in a matter of Minutes! So far it works flawlessly! :)
     
    CarterG81, Brent_Farris and Cranick like this.
  49. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Awesome news! Also, thanks to some of your suggestions we will hopefully make the transition even easier :)
     
    tatoforever likes this.
  50. foxlin

    foxlin

    Joined:
    Jun 12, 2015
    Posts:
    2
    Just purchased a license! 2 Questions:
    1. How do you update a project from Beta 15 to Release 2?
    2. Is it one license per project? or 1 license per developer?