Search Unity

[NO CCU LIMIT] Forge Networking now OPEN SOURCE

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

  1. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    This is what I was thinking. Especially after BOLT sold out to Photon.

    Forge is really the only good option available. So struck the gold indeed :D Although IMO, if this turns out as good as I predict and the documentation/support remains top grade- looks like we struck gold too, hehe.

    I absolutely love the idea of Forge Cloud Hosting. Even more, it seems so much more fair than all these other business practices. Keep it up guys!
     
  2. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hi there! :D
    So the client side rubber banding was for effect in order to show that the server is in control while the client is still able to manipulate itself visually independently from the server. :)

    Yes, we have some controls to allow you to manage how much control the client will have outside of the server in its prediction. We are currently also adding in new controls so that you can easily manage things like time stops, distance interpolation, resync types, and so on. On top of that, since the system is fully open source you are free to also implement any method you wish if you have independent plans. Lastly, you can suggest anything you want to see it do and we will immediately add a feature request in our system to get it added if you wish for another method to be set in the system. :)

    Unfortunately the client side prediction is partly integrated within one of our core classes that has a lot of information about our other systems. We are not able to release this source code. If you would wish to know all about it, feel free to send us a support email and we will explain it in greater detail :)

    We have created a ticket to improve our documentation about the client side prediction when using the authoritative input options. Thank you for your feedback and we will be sure to cover all of your questions in our updated documentation. Also if you send us that email, we may use a lot of what we respond to you with inside of new documentation as well! :D

    Thank you so much for your questions, we are always looking to where we can improve our documentation. Seeing that people are still curious about certain parts of the system after seeing the current documentation always tells us that we need to improve that section :)
     
  3. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Haha, thank you for the belief in Forge Networking :). We are doing out best to make a networking platform that everyone can use while still giving raw power to those who want it. We started working on this a while ago and made the thread back in December, the fact that Bolt sold out to Photon and Unity Networking was released in a way early broken alpha stage at the same time we released was a complete accident and got us quite a bit of views. :) We will continue to make releases, add features, make documentation, support developers and build a community because we just love this project! :)

    Thank you for the understanding, @Cranick is actually looking at your email this evening, hopefully we will have a solution for you very soon! We are still sorry about the late reply as we never want to make anyone feel like we are ignoring them or do not care about their questions. We are taking actions to streamline our process including new project management solutions and getting some new people on board :)
     
  4. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    This is what we hope for the most! :D We want to build a community and for all of the developers using Forge to feel that they found something special that could help them make the games they desire. We are honored to be a part of everyone's projects big and small!

    Thank you! This is something we have worked very hard on. The #1 complaint we have seen from people in the networking community is that they are TIRED of CCU limitations and costs. Sure it is effective in padding the wallets of the people offering it but it is not effective in being fair to developers. We are looking to make cloud hosting and scaling extremely simple while still offering custom tools and our knowledge and advice in game server hosting. :)
     
    tatoforever likes this.
  5. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    I have replied to your email with the project included. It was a simple mistake and if you have any other problems or further questions please do contact us!! :)
     
    Last edited: Jul 11, 2015
  6. GlobalHive

    GlobalHive

    Joined:
    Jan 13, 2014
    Posts:
    18
    I just buyed it but have a Problem...
    I cant login on your website (developer portal) it tells me: The account is valid but i didnt activate it (email stuff)
    But i dont have the email anymore. Can you do there something (i use the same name as here)
     
  7. alecie

    alecie

    Joined:
    Sep 2, 2013
    Posts:
    73
    Hey there, thank you for the reply!

    I have one more question. I have modified my NetworkMgr to this:
    http://pastebin.com/deKB78tb
    And I have moved GUI and serialization to separate script:
    http://pastebin.com/sjA7FBkz

    It connects and I can send message from server, client receives it, but when I try to send it from client nothing happens and server doesn't receive it.

    Additionally when disconecting client, I've got this warning:

    Sending message header failed

    I am unsure if it is related to my message that I try to send or something else.

    Am I doing something wrong? From what I understand it should be possibile to modify message from both client and server.

    ---

    If I'm doing singleplayer can use Networking.Instantiate and not worry about it or should I do some checks if it is multiplayer game? If so, how can I check that? And won't it be a problem having NetworkedMonoBehavior objects when there is no connection?
     
    Last edited: Jul 11, 2015
  8. tiggus

    tiggus

    Joined:
    Sep 2, 2010
    Posts:
    1,240
    When I registered I noticed the activation email went into my spam folder on gmail, might check there.
     
  9. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hello there! Thank you so much for your support! :D So we have went through and verified your account manually. We have seen that there are some issues with custom email domains that are not mainstream domains rejecting our email completely. Some of these issues are out of our control because the email inbox is setup to block unknown mailing servers like our own. We are currently looking to updating our smtp so that it is more widely supported.

    This is also true :) thank you.
     
    Last edited: Jul 11, 2015
  10. ZhavShaw

    ZhavShaw

    Joined:
    Aug 12, 2013
    Posts:
    173
    So the Cloud Hosting is only for finished games?
     
  11. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    132
    Hi I have a question. Is the NetworkCallers.Others everyone except the Owner ? I noticed the other 2 NetworkCallers were Everyone and Owner, so I wasn't sure what Others meant.

    Actually the networkcallers in the NetSync is only where the function gets called right? The variable itself always gets sent to all clients?

    I was hoping to have something like this:

    client has its own local "predictive" animations and movements while it sends its inputs to the server.
    server then replicates what the client is doing based on the inputs, and then does a NetSync to everyone except the Owner client the values related to the animations.

    *edit nevermind I found a way to do what I was trying to.
     
    Last edited: Jul 12, 2015
  12. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Nope :) you can use the hosting during development as well. We are talking about having shared servers for development in order to lower the cost during development. The difficult part is gauging the various games on how what specs they are going to require so that it would be fair for the others on the shared machine.
     
  13. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Yes, everyone will still get the serialized variable, the callers option is only where the optional function will be called.

    Awesome :D Please let us know if you have any further questions :)
     
  14. coldzik

    coldzik

    Joined:
    Jan 2, 2013
    Posts:
    12
    site is down :(

    Error establishing a database connection
     
  15. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Yes, our company page has been acting a bit silly, we quickly made it in Wordpress and I personally do not like Wordpress at all. Please use our developer portal: http://developers.forgepowered.com/ this site was written from scratch and is much more stable. Please let us know if you have any further issues. We have rebooted our company page server (which is a different box than the Forge Developer Portal) so it is back up now. :)
     
  16. coldzik

    coldzik

    Joined:
    Jan 2, 2013
    Posts:
    12
    thanks for link :)

    Hmmm i have problem with sending messages. I use for this WriteCustom, and first time server got good message, but after this all messages are empty :(

    Code on client:

    public void ConnectToLoginServer()
    {
    cachedData.Clone(Serialize());
    Networking.WriteCustom(id, Networking.PrimarySocket, cachedData, true, NetworkReceivers.Server);
    Debug.Log("We Send Something");
    }

    private void ReadFromNetwork(NetworkingPlayer sender, NetworkingStream stream)
    {
    List<string> data = DataDeserializer.Deserialize(stream);
    Debug.Log(data[1]);
    }

    private BMSByte Serialize()
    {
    return ObjectMapper.MapBytes(cachedData, "MSG", sendingMsg);
    }

    Code on server:

    private void ReadData(NetworkingPlayer player, NetworkingStream stream)
    {
    List<string> data = DataDeserializer.Deserialize(stream);
    messageExecutor.ExecuteMessage(data, player);
    }

    public class DataDeserializer {

    public static List<string> Deserialize(NetworkingStream stream)
    {
    List<string> str = new List<string>();
    str.Add(ObjectMapper.Map<string>(stream));
    str.Add(ObjectMapper.Map<string>(stream));
    return str;
    }
    }
     
  17. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    132
    Hello,

    I'm not sure if its a bug or intended, but I believe if you pass a null value through the BRPC it fails with a null pointer.

    seems to be on line 264 of ObjectMapper.cs
    Type type = o.GetType();
    when o is null.
     
    Last edited: Jul 13, 2015
  18. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    132
    It also seems like I can't get the Headless Linux server to work. I've run the iptables commands, and my client can actually connect successfully, but then after connecting it seems like none of the networking is working. The player doesn't get instantiated and the OwningNetWorker never gets created resulting in null pointers.
    I've confirmed that it works when i run it via graphical Windows. On my client machine, I've also set up the port forwarding on my router, disabled windows firewall, and disabled my antivirus neither of which fixed the issue.
    Note: I'm using server authority mode.
     
    Last edited: Jul 13, 2015
  19. Manimor

    Manimor

    Joined:
    Sep 7, 2013
    Posts:
    21
    Hello there Forge,

    This seems like an networking package suited perfectly for my needs, I though like some information:

    The examples of server architecture usually includes login server, proxy sever, world server etc.,
    can I simulate this with the bare metal server?
    My game will not have much unity-reliant information so bare metal version would be perfect.

    Is the arbiter a kind of database for storing information of everything in the game world?
    My biggest concern is that I will need to store a lot of information, which will ( I guess)be uploaded to the database each time I start server. Will it then cost me every time I restart my server for testing purposes? ;P

    Sorry for my scant post, but It's my first server client attempt.

    Thanks
     
  20. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    132
    Hello again,

    I noticed another issue (unrelated to my last 2). I noticed it seems like the received serialized position vector in the NetworkedMonoBehavior is sometimes an insanely large value for a single packet. Is this due to a corrupt packet or something, and is this normal or could this be due to a bug ?
    Note: I'm using server authority mode, and I'm not using the demo, I'm using a modified version of the default Unity ThirdPersonController that I modified to work with Forge.

    I added log messages inside the NetworkedMonoBehavior immediately after deserializing the position vector below:

    pos rec = (-10.2, 0.0, 61.5)
    pos rec = (-12.0, 0.0, 26.5)
    pos rec = (67115530000000000000000.0, 0.0, 61.5)
    pos rec = (-12.0, 0.0, 26.6)


    and I had my server running and the position of the object on the server never jumped to the large value. It seemed for some reason that the client was just receiving that value. This seems to happen every so often.


    I just did another test and it looks like its not only insanely high numbers but also "0" as well.

    pos rec = (-8.1, 0.0, 18.3)
    pos rec = (0.0, 0.0, 18.3)
    pos rec = (-8.2, 0.0, 18.4)


    *edit I updated my code to handle these outliers and ignore them and it seems to be working ok now, but it would still be good to know if this is actually normal? I don't know much about networking so maybe handling corrupt values is normal ?

    *edit interestingly enough it seems to only occur when my player is moving, not when he is standing still. I wonder if it could somehow be related to the Animator since the default ThirdPersonController actually uses the animator frames to decide translations, but I still can't imagine how that would set certain Vector elements to 0 or super high.
     
    Last edited: Jul 13, 2015
  21. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hi there! Would you mind sending us an email with a sample package so that we can assess this further (support@beardedmangames.com). :) This way we can queue it up and have someone cut a task to test this :)
     
  22. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hmmm, we did not intend on a null value to be sent because we are not able to send references across the network so null would not be valid. If you would like to be able to send a null, we can create a custom serialization for this if you would like :)

    Are you using the latest version from the website? Also do you mind sending us a unitypackage via email with this issue so that we can analyze it personally and in further detail to see what is going on with it. Just send the package to support@beardedmangames.com :)
     
  23. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Bare Metal has not had its official release yet, however it is designed to work as similar to the Unity Instance version as possible. The only downside is that since it is not an actual unity instance it will not have physics or a concept of a scene. You can send word data, use it to proxy and have login as needed though when it is released.

    I should have read this part first :)

    Yes, the Arbiter is being re-developed as a REST api and data endpoint (BaaS) system.

    We are planning on releasing a stand alone version of the Arbiter in so that you wouldn't have to rely on us, this would be a good way to test on your local computers before using any bandwidth/cpu as that will cost since it costs us.

    No problem! Questions help us gauge interest with the developers to see what people are really wanting out of a system so that we can be sure to make it powerful enough to support those ideas as well :)
     
  24. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hello again! Do you mind sending us a package to support@beardedmangames.com for this one as well. The reason you would not be seeing this happen while the character is standing still is because values that are not changed do not replicate across the network in order to compress bandwidth and optimize performance. In your email just list the steps you did to find this issue so that we can make sure to simulate it the same way that you did :). Thank you so much for the feedback and we look forward to getting to the bottom of this! :)
     
  25. alecie

    alecie

    Joined:
    Sep 2, 2013
    Posts:
    73
    Bump
     
  26. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    132
    I'll try to send you guys a demo illustrating my issues tonight.
     
  27. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    @Neomex Thank you for the bump on that! We have added a ticket to check out your code and resolve it :)

    @Disastorm Thanks! That will help us reproduce and target the issue quicker :)
     
  28. Alexander_DeLarge

    Alexander_DeLarge

    Joined:
    Dec 20, 2013
    Posts:
    13
    As someone who is getting screwed on the whole Exit Games Bolt acquisition (forums disappeared along with tons of documentation, Trello roadmap disappeared, no attempt to redirect users to the Exit Games forums which to this day don't have a section for us) I'd like to hear some feedback from users that worked with Bolt previously before buying in.

    @farrisarts you seem pretty awesome, and normally that would sell me on your product alone but so were they before all this nonsense.
     
    DMeville likes this.
  29. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    132
    Hi I sent an email
     
  30. Manimor

    Manimor

    Joined:
    Sep 7, 2013
    Posts:
    21
    Good and clear answers to my questions, thanks.

    I just need to know then what programming language Bare Metal is used to program?

    So that I can prepare for its release

    I think I saw someone write .net, but I cant remember where I read this ;P

    Good day!
     
  31. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Bare Metal is written in c# indeed, because of that it will be able to run on linux headless as well.

    Hopefully that answers your question and feel free to ask anything else that you need.
     
  32. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Awesome, we'll add it to our list of support questions to answer and get back to you.

    Thank you!
     
  33. MyIsaak

    MyIsaak

    Joined:
    May 23, 2013
    Posts:
    49
    What Linux setup do you recommend, or at least know that doesn't have too many problems and runs well with the headless Linux server?
     
  34. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    There is a new tutorial up for the unique identifier field of the Write Custom :) here
     
  35. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
  36. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    I've included a simple package that is updated to handle the server calls as well. Basically you want to tell the client from the server that the text has been updated. Also want to send the text from the client to the server so that it can process it itself. Doing that allowed it to update properly. I have put a link below that is what I did to make it working as well as a simple scene setup I did to handle the input using the UnityUI.

    Link will expire in 3 days
    http://dropcanvas.com/jbbt4

    If you have further questions or need help on anything else let me know! :)
     
  37. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    We have quite a few developers from Bolt on our system even way back from Beta days. Our forum thread here is pretty active so I fear that your post may get lost between the lines. We will see if we can find a way to get you the information you want that doesn't come from us, because obviously we are just going to brag about our system all day haha.

    We know that @mkgame has used bolt from their previous post and we have a lot of private conversations from others about it. I don't want to list them in order to respect their privacy since it was in a pm and not publicly posted.
    Thank you for the complement :) we are having a BLAST working on this system and meeting new people so I don't see that happening at all. We also work as a team here so when one person gets busy or behind on tasks the others are still heading full steam on theirs :)
     
    Last edited: Jul 14, 2015
  38. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Announcements
    Version 11 with NAT hole punching and various new features (like the debug bandwidth counter) are currently in the final stages of testing! This release should be very soon! We are expanding very quickly and there are talks about raising the price a bit to continue supporting the larger scale development costs :)

    What else is new? Oh nothing... just a new Wiki site for Forge owners! :D If you purchased through the asset store, just head on over to the Profile page and register your invoice number so that you have instant access to the wiki. Just like in our forums, we have modified the wiki to support our uniform login but it does require you to be an owner of Forge Networking since it is possible that some "not for public" code is posted.

    You asked for these features and the wiki site and we delivered! Oh there are a couple new pages in documentation as well about things that people have asked us about so we decided to write some docs on them. If anyone has any trouble with logging into or using the wiki site, please send us a support email so we can get you up and running or iron out any bugs as soon as possible!

    Thank you all so very much for your support and lets continue to build a community of awesome developers! :)
     
    justtime and DMeville like this.
  39. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    132
    I just wanted to verify that you did get my email as I havn't received any replies ( outside of this post I quoted ).
    Thanks.
     
  40. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hello! Yes, I believe that we have it in our inbox. We are sorry about the late reply, we are probably going to make it a standard to email people as soon as a support request comes in to let them know we have acknowledged it and have put it in the queue. I am very sorry about this confusion, we are doing our best to find the correct method to manage everything and are putting systems in place to be more efficient :)

    Please let us know if you need any further help and thank you for sending the support email.
     
  41. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    We have replied to our current support emails to let everyone know that they are queued up for an answer. If you did not receive an email response from us please resend your support email. Thank you so much for your patience and for supporting Forge Networking!

    We will start replying manually to each support emails to let everyone know that they have been queue up. :)
     
  42. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    132
    ok thanks i got the reply.
     
  43. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hello everyone, we are still sifting through support emails and are looking into systems of making our support ticket system more efficient. :)

    We are happy to announce that we have finally updated our API documentation to have all of the latest comment documentation up to this point. :) We are still adding to it as well.

    For those of you who are registered owners of Forge Networking, we are happy to see users contribute to the wiki already, thank you so much for contributing! :D

    For those who want to see base documentation about the system, please see this link
     
    Last edited: Jul 16, 2015
  44. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,315
    i was interested by this, tried to see the doc but everything require login, not going further.
     
  45. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    I am very sorry about this, the wiki is only for those who own the system because source code and modified source code can be posted in the wiki.

    If you wish to know more about the system, please send us an email to support@beardedmangames.com and/or check out the documentation on the website here: http://developers.forgepowered.com/Tutorials

    We have many users come from UNET, Bolt, and Photon as well as new users who have never done any networking before, so we would be happy to answer any questions you may have about transferring from another system or just how Forge Networking works as a whole :D. We are not able to accommodate public access to the wiki though, I am very sorry about this. Developers who own Forge Networking can instantly log into the wiki, then view and update pages instantly without any further access requirements.

    You are of course free to browse the API Documentation :). Thank you for your valuable feedback :)
     
    Last edited: Jul 16, 2015
  46. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hello all! We have a lot of people who come from Photon, UNET, and Bolt and so we have created a part of the wiki for tutorials and documentation on how to move from those systems to Forge. I know that a lot of you are not interested in writing documentation or tutorials, but please feel free to document your efforts on transferring from those systems to Forge. I also know that we have made it super easy to move from those environments to Forge in most cases so the tutorials do not need to be full blown documents. They can be little here and there things about moving from those systems to Forge :)

    Moving from Photon: http://wiki.forgepowered.com/index.php/Transition_From_Photon
    Moving from UNET: http://wiki.forgepowered.com/index.php/Transition_From_UNET
    Moving from Bolt: http://wiki.forgepowered.com/index.php/Transition_From_Bolt

    Again - The wiki is only for those who have purchased Forge Networking on our Website or from the Asset Store. This is because users can submit source code on modifying the system. If you purchased through the Asset Store and have not registered your invoice on our site, we have a tutorial on how to do this :)
     
    CarterG81 likes this.
  47. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Version 10.8 Released
    This version is before our NAT hole punching release. We had a few critical bugs we had to take care of for Linux, Android and WP8. NOTE: You will need to delete the previous "Bearded Man Studios Inc/Forge Networking" folder. This is because Unity's import process has no way of knowing that files have been removed from the library.
    • Fixed critical Linux and Android bug
    • WP8 Now builds correctly
    • Bandwidth counters
    • Tons of new comment documentation
    • Removed API.cs
    • Removed ArbiterAPI.cs
    • Removed ArbiterServer.cs
    • Removed ServerAPI.cs
    • Removed SimpleJSON.cs
    • Moved the BRPC class into SimpleNetworkedMonoBehavior and made it protected and sealed
    • Stripped down the Encryptor class
    • Updated NetworkedMonoBehavior to use Mathf.Lerp for floats
    We are continuing work on finishing NAT hole punching now for version 11. :) We are just testing it across various NAT devices. Thank you all for your continuous support!
     
    Last edited: Jul 17, 2015
  48. shwick

    shwick

    Joined:
    Jul 10, 2015
    Posts:
    31
    Hi this looks good. I'm wondering what the viability of an authoritative server is for my project that would use 2d physics. Basically a 1v1 arena space game shooter with a bit of ai. Like for the headless unity instance server on linux, does it create a new unity instance for each game or is it single instance? Does it know to scale properly? And like would it use too much cpu? I have no idea.
    Otherwise does forge have a non-authoritative solution?

    edit: also what about p2p networking?

    Thanks
     
    Last edited: Jul 17, 2015
  49. GlobalHive

    GlobalHive

    Joined:
    Jan 13, 2014
    Posts:
    18
    I just imported the newest version (Had before the Unity Asset Store Version)
    And now i get these errors:
     
  50. b889965

    b889965

    Joined:
    Oct 10, 2014
    Posts:
    8
    have you tried to delete the folder Bearded Man Studios Inc and then import Forge again?