Search Unity

[NO CCU LIMIT] Forge Networking now OPEN SOURCE

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

  1. Alexanderansoft

    Alexanderansoft

    Joined:
    Jan 5, 2015
    Posts:
    26
    Hi! Create tutorial like "Integrating With Existing Code" with Authoritative Server Option. It will be very useful
     
    Last edited: Aug 19, 2015
  2. Litwin

    Litwin

    Joined:
    Aug 15, 2013
    Posts:
    70
    You can find about lobby and anothers things working with Photon in this channel:
    https://www.youtube.com/user/Aidengaming123/videos
    and about lobby:


    I want to save time, especially having to rewrite many things to immigrate from Photon to Forge.
    (sorry my english.)
     
  3. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Will add a ticket for this :)
     
  4. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Thanks for the link! We will go through these :)
     
  5. felixsgallo

    felixsgallo

    Joined:
    Aug 20, 2015
    Posts:
    1
    Bandwidth is an important metric for me. It looks like you can do custom serialization, which is good.

    A few questions:

    What's your per-packet overhead for your RUDP implementation, in bytes? Is the protocol explained anywhere in public?

    What sort of default serialization are you doing for transforms? You mention somewhere that you have delta compression configurable; how does that work? What sort of steps are you taking to make sure it continues to work in the presence of packet loss?

    When a packet is marked reliable, and it's missed, is it resent as part of a packet bundle, or is it resent individually? Is there a developer-settable deadline for reliability or are packets just retried forever/until some constant number of retries? What happens if the threshold is exceeded?

    Can the authoritative server mark certain objects as updating according to a frequency and/or a priority, so that it can throttle back sending updates to a client if it would exceed a packet size or bandwidth threshold to that client, and/or slow updates in case of pending overload scenarios?

    Does the server have a means to attempt to authenticate new socket connections as coming from a valid client? Does the server authenticate packets once a circuit has been established? Since the answer to both of those is probably no, is there means for a developer to hook into socket establishment and/or raw packet receive?

    Thanks much for any reply; I know it's a lot of questions.

    F.
     
  6. Alexanderansoft

    Alexanderansoft

    Joined:
    Jan 5, 2015
    Posts:
    26
    Has Forge Single Player Mode?
     
  7. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Our header size ranges from 1 byte to 32 bytes max. This is dependent on which of the various transportation methods you are using. :) We do not have the specifications publicly anywhere yet but will if demand arises :)

    There is no "default" but we do provide an array of options for automatically serializing the transforms as well as a way to write your own.

    Delta compression is automatic on tracked variables through NetSync and AddNetworkedVariable. These will only replicate on reported changes.

    These are unreliable, if packets are lost then you will want to go through a reliable method. If you were to make your whole system reliable UDP though it would be better to use TCP. Which we have in the system but is being re-worked.

    Only the packets that were missed are sent in order to prevent the buffer from getting so big that it no longer works.

    The retry rate is an algorithm based on the clients ping time. It will take an average ping time and use that for the length of time to wait for the packet replication. Currently it is tried forever as reliable packets are required to reach the other end. We will actually start working on a kill counter and this will be a variable that developers can set rather than being a fixed number.

    Yes, each object has a Networking Throttle that can be set in order to set priority on a per object basis.
    upload_2015-8-19_22-5-54.png

    No since we are talking about UDP and UDP is a connection-less protocol, it is impossible to prevent "connections". We do provide full source code so altering the "idea of a connection" is possible (I am actually assuming you meant the second part and not an actual connection, I was clarifying for anyone else who would read this).

    There is no tokenization of packets in order to authenticate them, however if a machine is sending packets to the server and the server does not have it in its "client list" they will be ignored and not processed. So packets technically have to be authorized by a successful client connection before being processed.

    :) Both actually weren't no hehe

    We have many events wrapped around receiving packets from the network as well as custom writeRaw and readRaw methods and events. Also with full source code you can modify any of the base code as you see fit :D.

    Thank you so much for all of the awesome questions! :D As always if you have any suggestions on features or ideas to make the system better than it already is we are always willing to listen and implement them :D
     
  8. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    We don't have an explicit function for this but some of our community members have easily created a single player mode while still having all of our system hooked up and using common code :D
     
  9. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Version 12.5 Released

    Rolling in tons of fixes and huge features comes version 12.5 :D. Enjoy!
    • Added the ability to pass an exclusive id into the constructor of Forge Transport Object
    • Added new bool getter "DataInitialized" as a part of NetworkedMonoBehavior for when variables have been synced for the first time
    • Added overridable protected "NetworkInitialized" method as a part of NetworkedMonoBehavior for the moment the variables have been initialized across the network
    • Updated inverted boolean logic on NetworkInitialized setup
    • Added overridable "OwnerUpdate" which is an update method only called by owners of a NetworkedMonoBehavior (Removes need of IsOwner returns in update)
    • Added overridable "NonOwnerUpdate" which is an update method only called by non owners of a NetworkedMonoBehavior (Removes need of !IsOwner returns in update)
    • Added overridable "OwnerFixedUpdate" which is an update method only called by owners of a NetworkedMonoBehavior (Removes need of IsOwner returns in fixed update)
    • Added overridable "NonOwnerFixedUpdate" which is an update method only called by non owners of a NetworkedMonoBehavior (Removes need of !IsOwner returns in fixed update)
    • Fixed error text for override start to also include override NetworkStart
    • Removed redundant initialize object calls on instantitate
    • Fixed race condition with RPC calls being received by the server before the object is setup
    • New drag and drop chat system
    • Fixed initialization of objects already in the scene
    • Optimized how objects are initialized across the network to remove redundancies
    • Fixed issue with interpolation on latest build
    • Fixed RPC issue where others would call itself
     
  10. Alexanderansoft

    Alexanderansoft

    Joined:
    Jan 5, 2015
    Posts:
    26
    After the upgrade has become an error occurs. This error only occurs in version 12.5 error.jpg
     
    Last edited: Aug 20, 2015
  11. Dragon-Magic-Studio

    Dragon-Magic-Studio

    Joined:
    Jun 30, 2015
    Posts:
    12
    A lobby is easy to make in Forge, just a scene between game level and main menu, it can simply setup the server and send to master server that its in lobby so ppl can see it in the browser. All what you want to do in your lobby you just build it into the lobby scene and update the changes to the masterserver. The one who created the server is also the lobby owner if you want it like that and prepare the match, however its not limited to anything, it just requires you to design the lobby login and logic as it fits your game. When all are set you just could load the gamescene by e.g. map selection in lobby and sync that to all current connected players in the lobby so they join. There is no limit on how to make a lobby or annything, you just need to make it yourself as forge does not have the lobby but has a serverbrowser, host and client by default included. Its useless to add a lobby as every game has different logic or requirements for that, in forge your limit is only your imagination to build the lobby.
     
    Litwin likes this.
  12. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    I asked in chat if anyone is getting this on the latest version and nobody so far has replied. Are you on the Slack chat channel?
     
  13. Alexanderansoft

    Alexanderansoft

    Joined:
    Jan 5, 2015
    Posts:
    26
    It was my fault. Everything works fine. Sorry for disturbing.:oops:
     
  14. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Haha, no problem! :) It's good to keep us on our toes.
     
  15. Alexanderansoft

    Alexanderansoft

    Joined:
    Jan 5, 2015
    Posts:
    26
    I have a question. How do I get a reference to the object in Awake or Start methods through callback function in Networking.Instantiate().

    public GameObject currentWeapon;

    void Awake()
    {
    Networking.Instantiate("Minigun", NetworkReceivers.All, GunSpawned);
    print(currentWeapon); // -- null but must be GameObject
    }

    void Update(){
    print(currentWeapon); // -- GameObject
    }

    private void GunSpawned(GameObject gunobject)
    {
    currentWeapon = gunobject;
    }

    (sorry my english.)
     
  16. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hi there! :D

    So our system is completely mutli-threaded and we do not hold up the unity thread to do our instantiation methods. Because this object needs to be instantiated and authorized on the network you will need to do your setup through the use of a callback or lambda function. Is there any reason you don't have the specified gun already a part of the prefab at start or any logic to have it as default? :)
     
  17. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    I'll grab a copy of this in a few months.
    Looks interesting.

    Good work on the active support.
     
    Brent_Farris and Alexanderansoft like this.
  18. Alexanderansoft

    Alexanderansoft

    Joined:
    Jan 5, 2015
    Posts:
    26
    I do this :)

    public GameObject currentWeapon;

    void Awake()
    {
    Networking.Instantiate("Minigun", NetworkReceivers.All, GunSpawned);
    print(currentWeapon); // -- null
    }

    void Start()
    {
    print(currentWeapon); // -- GameObject
    EquipWeapon(currentWeapon);
    }

    void Update(){
    //Some code
    }

    private void GunSpawned(GameObject gunobject)
    {
    currentWeapon = gunobject;
    }

    private void EquipWeapon(GameObject weapon){
    //Some code
    }

    Thanks!
     
  19. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    The 'currentWeapon' technically hasn't spawned until it reaches its 'GunSpawned' callback.

    Wait for it to spawn there before doing any logic based on that gun.

    Code (CSharp):
    1. public GameObject currentWeapon;
    2.  
    3. void Awake()
    4. {
    5. Networking.Instantiate("Minigun", NetworkReceivers.AllBuffered, GunSpawned);
    6. //print(currentWeapon); // -- null
    7. }
    8.  
    9. void Start()
    10. {
    11.        //print(currentWeapon); // -- GameObject
    12.        //EquipWeapon(currentWeapon);
    13. }
    14.  
    15. void Update(){
    16.       //Some code
    17. }
    18.  
    19. private void GunSpawned(GameObject gunobject)
    20. {
    21.        currentWeapon = gunobject;
    22. Debug.Log("Im ready!!");
    23. EquipWeapon(currentWeapon);
    24. }
    25.  
    26. private void EquipWeapon(GameObject weapon){
    27.       //Some code
    28. }
    Hope this helps. :)
     
  20. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    :D Hi there!! Thank you so much for the support. Also we are happy to do our best on support! :D
     
  21. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Version 12.6 Released

    We have added some new helper functions to our proximity based updates (AOI) and fixed some issues with byte[] being sent incorrectly with RPC if there are other data types going after them. We also started work on our frame system :)
    • Fixed issue with serializing a byte array before other data types in an RPC call, thanks for the report @DanielSnd :)
    • Updated proximity based updates! :D
    • Added overridable method for when player leaves proximity of current player
    • Added overridable method for when player enters proximity of current player
    • Added event to fire when player leaves proximity of current player (good for things like disabling renderers)
    • Added event to fire when player enters proximity of current player (good for things like enabling renderers)
    • The current Frame index is now supplied across the network for lag compensation (rewinding hit boxes)
    • Fixed authoritative serialize to make sure to ignore proximity standards
     
    Last edited: Aug 21, 2015
  22. Alexanderansoft

    Alexanderansoft

    Joined:
    Jan 5, 2015
    Posts:
    26
    Yes, that's better! Thanks! :D
     
  23. AwesomeX

    AwesomeX

    Joined:
    Sep 10, 2013
    Posts:
    115
    What would be the best place to buy this at?

    If I buy it off the asset store, will I also get to download it off the site?

    Will there be any extra "DLC" or packages in the future that I'll have to purchase as well? Or is it just the one time payment of Forge itself?
     
  24. DanielSnd

    DanielSnd

    Joined:
    Sep 4, 2013
    Posts:
    382
    You get to download it off the side if you buy it in the asset store, you should always be downloading from the site as the asset store takes a while to update and the site is updating all the time.

    There are some extra DLCs like Baremetal (Unity independent server) and the Headless pure C# masterserver. But they're not really needed, they're truly something extra.

    That sounds pretty interesting, :eek: are you doing a tutorial on that later on?
     
  25. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Thank you @DanielSnd :). Yes, basically you can purchase from the site or from the Asset Store. If you purchase from the Asset Store then you may want to see this tutorial. If you download from the site everything is automatic :).

    :) Once we get more code in place we will have a tutorial for this. You will notice a "Current Frame" label now in the GUI that has numbers bouncing around. :)
     
  26. AwesomeX

    AwesomeX

    Joined:
    Sep 10, 2013
    Posts:
    115
    I sent an email to see if I could get access to the chat. Hoping I get a response soon.

    I also heard there's talk of increasing the price of this? I hope it's not soon, as I can't get to the bank until Monday or Tuesday.
     
  27. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Got it! :) It was good chatting with you. Feel free to shoot us some more questions on the chat when you come back on :D
     
  28. Alexanderansoft

    Alexanderansoft

    Joined:
    Jan 5, 2015
    Posts:
    26
  29. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Thanks for the feedback. Just looking over this page quickly I notice that we already support these concepts. Are there any other parts that you know that we are missing that we should support? Or is there something in this page I may have missed? :) Thanks for the suggestion!
     
  30. equimor

    equimor

    Joined:
    Feb 19, 2014
    Posts:
    8
    Wow this project it seems it advances amazing quite well !!! Congrats Guys!!!

    If you don't mind i need some guidance.

    I have and seudo-mmo project made on photon cloud, it is like an rpg game with the photon limitation of 10 users per room.

    My question is, if with Forge, i can migrate this project to a full mmo with no users limitations, perhaps with a automatic channel user assignation and so on.

    If i purchase forge, could you give me some personal support to do the migration from photon? my network knowledge is very basic jajaja
     
  31. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Thanks! :D We have come a long way with great support from the community

    D: Limits to 10 people a room... ouch!!

    No limitations indeed, we are actually actively building out our tools for larger scale and we are looking for such projects to help us get there quickly! :D We technically have all of the tools needed to do this stuff out of the box but we just want to make it easier and have helper libraries to alleviate the more complex behaviors.

    Yeup! We personally help a lot of our developers. When you purchase and are setup on the site (http://developers.forgepowered.com/) you will get an invite to our Slack chat channel and begin your journey on real time community and developer support without limitations (like CCU) :). In return, maybe we can pick your brain about so that we can continue to build out our Photon to Forge documents as well.

    Please let us know if you have any further questions! :D
     
  32. equimor

    equimor

    Joined:
    Feb 19, 2014
    Posts:
    8
    Sweet!!! Yes no problem!! Count on me on any way i can help! Also if you want i can marketing my game to promote forge, the game we are building it is pretty amazing i must say and with forge will be unbelievable!! jeje
     
  33. Alexanderansoft

    Alexanderansoft

    Joined:
    Jan 5, 2015
    Posts:
    26
    How can I find an object in the network created in Networking.Instantiate()? Something like Networking.FindLocalObject(IdObject)?
     
  34. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    There is a callback method as a parameter as seen in the tutorial; however if you are asking about how to find it in general you can use SimpleNetworkedMonoBehavior.Locate(NetworkId); :D Please let us know if you have any other questions!
     
  35. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Awesome! :D We do include the logo (white and black) in the package so that you can include it wherever you like :). Thank you so much for the support!
     
  36. Alexanderansoft

    Alexanderansoft

    Joined:
    Jan 5, 2015
    Posts:
    26
    Here's an example. The question in the comments to the code
    Code (CSharp):
    1.  
    2. public string currentWeaponName = "";
    3.  
    4. public GameObject currentWeapon;
    5.  
    6. protected override void Start()
    7. {
    8.         base.Start();
    9.  
    10.         if(IsOwner){
    11.  
    12.  
    13.             currentWeaponName = PlayerInfo.weapons.name_weapon;
    14.      
    15.  
    16.             Networking.Instantiate(currentWeaponName, NetworkReceivers.AllBuffered, GunSpawned);
    17.  
    18.  
    19.         }
    20.  
    21. }
    22.  
    23. protected override void Update()
    24. {
    25.  
    26. base.Update();
    27.  
    28. if(!IsOwner)){
    29.  
    30. if(currentWeapon)
    31.  
    32.        EquipWeapon(currentWeapon);  // ---> How do I get a reference to the object currentWeapon ?
    33.  
    34. }
    35.  
    36. }
    37.  
    38. private void GunSpawned(GameObject gunobject)
    39. {
    40.        currentWeapon = gunobject;
    41.  
    42.        EquipWeapon(currentWeapon);
    43.  
    44. }
    45. private void EquipWeapon(GameObject weapon){
    46.       //Some code
    47. }
     
    Last edited: Aug 23, 2015
  37. DanielSnd

    DanielSnd

    Joined:
    Sep 4, 2013
    Posts:
    382
    You should already get it in the client that you spawned this in, since the GunSpawned callback will be called once it's been instantiated... For the other clients the callback won't be called, I guess you could inside the callback send an RPC to the others sending the Networked ID of that object and inside that RPC asking them to .Locate() the object with that Networked ID on the other side? D:
     
  38. Alexanderansoft

    Alexanderansoft

    Joined:
    Jan 5, 2015
    Posts:
    26
    Thank you! That helped. I'm just a beginner in network
     
  39. bizilux1

    bizilux1

    Joined:
    Jun 6, 2013
    Posts:
    151
    Hey,

    i've searched all 27 pages for keyword "racing", and i've found a few hits and i've read them... like 1 or 2 people used forge to make a racing game...

    now im curious were results good? was it AAA quality lag free experience? im kind of thinking of making a game similar to "project torque" that went offline couple of years ago, it was (mmo) racing game.
    mmo meaning that when you were not racing on track or in different modes, your car and all other cars on same server were a ghost car(no collision) and all in one city/stadium.

    so i would be mainly looking for really smooth lag free experience during racing, for up to like 12 or 20 people, and then second part would be mmo part where you are in same city/stadium that everyone else that is on that server (lets say 500 people?) that part doesnt have to be as lag free obviously, but should still be kind of good.

    500 people on screen is overkill anyways right? i dont even know what is max for a game such as world of warcraft when players gather in city, i quite possibly said way too high number... :)

    PS: project torque was by no means lag free experience... it had its problems, but capture the flag game mode was really satisfying, even though sometimes it had horrible collision detection. this was like 8 years ago... so in this day and age it should be lag free... :)
     
  40. mikael_dk

    mikael_dk

    Joined:
    Aug 18, 2012
    Posts:
    10
    I have a question for hosting a server that does not run a Unity instance (Bare Metal).

    Basically what I would like to do is to write my own server in C# .NET (not Mono) since I would prefer to be able to use the newest C# .NET framework for this and also since my server will not be utilizing any built in Unity modules like Physics.

    The clients will not be communicating with each other directly but only through the server instance.

    Is this possible with Forge Networking?
     
  41. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    No worries!

    We hope that we help everyone who is new and advanced in networking their games.
     
  42. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    I don't see this as an issue although I would recommend doing proximity based updates so you are not sending too much information to the user that would be causing a lot of unnecessary bandwidth. Feel free to join in on the Slack channel by registering your purchase on http://developers.forgepowered.com/Profile too as we have a vibrant community who are making all types of games. :)

    There is some stuff in the works that we are helping our developers out with but we have yet to have an official shipped title with our networking solution. So I think everyone is trying hard to be the first one out with out networking solution on a high quality game that they are presenting. We are all excited to see what people are doing with our solution and fixing any bugs/implementing features along the way.
     
  43. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Yes, Bare Metal is being worked on and when it is released you should have no issues doing what you asked. Basically it does that out of the box and does not rely on Unity to have the server running. You are also able to make plugins for it as well as other features. Will have more info on this in the coming future so definitely look our for it. :)
     
    mikael_dk likes this.
  44. bizilux1

    bizilux1

    Joined:
    Jun 6, 2013
    Posts:
    151
    it was more of a presale question, i had to scratch an itch that i had :) so i cant join there, but anyways im not in a hurry, i wont be starting my project for atleast until next year, i have other stuff going on... but i can surely dream about it ;)

    and yes, proximity based updates for MMO part are a must ofcourse

    i will wait a bit to see some games being made with it then... or you can post some videos if you have :) also a question... any playmaker support in future?
     
  45. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Awesome! :D Thanks for the future support XD

    We have users who easily hooked up Forge Networking into PlayMaker. We may work on an extension ourselves in the near future to have all of our hooks integrated :)
     
    bizilux1 likes this.
  46. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Version 14 Released

    Hello everyone! Us again, with yet another update. This update is pretty massive so get it and check out all the cool new stuff! :D We are now introducing tons of bug fixes, added features, fixed systems (like HTTP) and our newest addon the Forge Networking Web Server! :D

    Forge Networking
    • Fixed HTTP library, you are now able to do HTTP (REST) requests once again
    • Fixed WinRT to be able to compile with all the new additions
    • Added new simple Task class in the BeardedManStudios.Threading namespace which will continue to be extended and updated
    • Networking.connected now returns the socket that was connected
    • Servers can now ban IP addresses for a given amount of time in minutes
    • [ManualNetSync] added to manually serialize data type rather than doing it on change, use this the same way you use [NetSync], call "SerializeManualProperties" when you want to serialize them all
    • Moving from one scene to the other no longer will throw error for missing base.Start call
    • New UnityEventObject for firing arbitrary events during standard unity method calls on a GameObject
    • Various performance improvements related to serializing NMBs
    • Networking.Instance.clientLoadedLevel event added that fires when a client loads the level
    • Networking.Instance.allClientsLoaded event added that fires when all clients have loaded the level
    • Wrapped the error file logging in UNITY_STANDALONE
    • Find on LAN works once again
    • Fixed Raw writes
    • Fixed issue with Networking.ChangeClientScene
    • Chat window now supports Enter key to submit messages
    • Added new free Coop Dungeon Forge project thanks to @DanielSnd

    We are proud to announce the newest addon to Forge Networking; the Forge Networking Web Server! This addon is a way for you to manage and view your web server from a web interface. This is a backend portal (website) that you go to on your web browser by typing in the address/hostname of your server and then the port number.

    Forge Web Server (addon)
    • A port can be specified (other than 80 and 443) to bind the web server to
    • Going to the webpage will render the webserver
    • Allow data to be parsed into HTML views through getters
    • Allow for controllers to be dynamically loaded based on url sceme
    • Allow for alternative public methods to be called if the url pattern is specified "/controller/method/action"
    • Pages are loaded from HTML files in Resources/www folder
    • Web Server tool added to menu for easy automatic server starting
    • Auto server start script will start up the web server and shut it down when destroyed
    • Index page now shows basic stats for the server
    Note: All addons can be found on your profile page on the website :) - http://developers.forgepowered.com/Profile
     
  47. jasonMcintosh

    jasonMcintosh

    Joined:
    Jul 4, 2012
    Posts:
    74
    Good gracious! I could no longer not buy this. I don't even have time to use it yet, but all of the features are starting to strain the limits of human comprehension. :D

    I hope that the library won't stray from the core feature set of kickass socket networking and stretch your small team too thin, but I've put my money where my hopes are.

    I'm looking forward to sinking my teeth into this as soon as possible. 5/5 dreamy sighs.
     
  48. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    :D thank you for the kind words! :) It means a lot to us. We have halted on new features and are now focusing on the core system and ironing out any bugs that anyone finds for a little bit. We have so many new features that we easily stand out I think. Now its all about a solid core and getting everyone's games to market! :D
     
  49. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Version 14.35 Released

    Hello everyone! We recently rolled out a bunch of bug fixes and features :D. Enjoy!
    • Fixed issues with disconnect on iOS throwing exception
    • Fixed issue with disconnecting host and then reconnecting
    • Fixed issue with NetworkingManager being spawnned on disconnect
    • Fixed race condition with calling RPC on instantiate of an object from the server
    • Fixed ban message to say message at the end when player tries to join again (in disconnect message)
    • Fixed NETFX_CORE to build with new logic
    • Removed useless debugging myId in SNMB
    • Fix for authoritative input sync issues
    • Fix for Network.Instantiate with multiple SNMBs on the object
    • Fixed issue with multiple SNMBs on a single object and then spawnning multiples of that object in a single loop
    • Dynamic commands have been created; you can send a dynamic command with Networking.DynamicCommand
    • Listening for dynamic commands added, you can add a dynamic command listener with NetWorker.AddDynaicCommandEvent
    • Clients can now send Networking.ClientReady (you can call this at any time) which will execute the servers NetWorker.clientReady event
    • BMSByte is now supported for the Append function of BMSByte
    • Fixed issues with Independent Master Server
    • Network.Instantiate can now be called before NetworkingManager exists
    • Solves issue with NetworkingManager not being created in scenes that don't have any networked objects
    • Fixed issue with WriteCustom returning incorrect data

    Also our new Web Server tutorials are up for anyone who bought the Web Server addon -http://developers.forgepowered.com/Tutorials#Forge-Web-Server

    Remember that Firefox has issues with HTML 5 videos on YouTube
     
  50. diesen1

    diesen1

    Joined:
    Jul 3, 2014
    Posts:
    15
    What is the benefit of using this library vs using unity unet. I used Ulink in the past and I was happy , but then switch to Unet as ulink didn't support IL2CPP. I have some issues with Unet currently. mostly timeout issues and looking for alternative