Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

[NO CCU LIMIT] Forge Networking now OPEN SOURCE

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

  1. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    I believe I already answered your email but glad to know you solved the problem. :)
     
  2. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Awesome, feel free to register on our Slack for any help with other developers.
     
  3. terravires

    terravires

    Joined:
    Mar 27, 2013
    Posts:
    103
    @Cranick

    I sent you a message a week ago but never got a reply. I guess in a way, it also worked as a test of how responsive you were to questions about forge. ;)

    But maybe you just missed it, so I'm posting here hoping to get a reply. :D
     
  4. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,511
    I was talking about delegates accepting parameters of Unity's virtual keys. Input.GetButtonDown ones.
    The example only has the ones that accepts the keycodes, such as Keycode.Space etc..

    So it is only useful for the keyboard and has limited usage.
     
  5. rosevelt

    rosevelt

    Joined:
    Oct 23, 2012
    Posts:
    47
    How would you tackle lots(80+) of projectiles syncing and colliding, what approach will you recommend?

    Thanks
     
  6. CaptainMurphy

    CaptainMurphy

    Joined:
    Jul 15, 2014
    Posts:
    746
    Don't sync the particles themselves, sync the underlying events that are used to create the particles through an RPC. We sync hundreds of cannonball splashes, debris, smoke, etc through an RPC system without any issues.
     
  7. rosevelt

    rosevelt

    Joined:
    Oct 23, 2012
    Posts:
    47
    How are you doing collision for those projectiles?
     
  8. CaptainMurphy

    CaptainMurphy

    Joined:
    Jul 15, 2014
    Posts:
    746
    Our projectiles are done server side for damage, then created client side for visuals. The collisions are done on a server authoritative method so that only one machine is doing the calculations for it.
     
  9. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Oh no! Can you please resend it as I don't have the email.

    Really sorry about that! (Might have accidentally got deleted instead of a spam email).
     
  10. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Ah, then let me put in a feature request to get it implemented. Thanks for letting me know. xD
     
  11. rosevelt

    rosevelt

    Joined:
    Oct 23, 2012
    Posts:
    47
    How many game object can be efficiently fully synced by forge?
     
  12. GXMark

    GXMark

    Joined:
    Oct 13, 2012
    Posts:
    501
    I'm looking to buy the forge networking solution but i have some basic questions which i'd like answering beforehand.

    Firstly, i'm looking to provide synchronised mecanim movement of avatars in rooms of 100 CCU. I am fully aware that i would need to use decent high bandwidth dedicated servers to provide the capacity for such CCU's.

    1. On the photon bolt website they say that bolt is good for 16 CCU. This has put me off this solution somewhat as i was originally told by the author of bolt that it could handle up to 80 CCU depending on what the logic is doing. The question is for forge, what are your likely CCU range limits per room running Mecanim synced avatars?

    2. Photon Server allows authoritative logic to be compiled on the server ( outside of the unity single main thread of execution ) I take it that this approach allows much higher CCU limits in a room ? Does Forge have any particular strategy to cope with this kinda approach?

    3. Is there any MMO strategy supported by forge. I'm mostly interested in AOI and seemless large worlds rendered to the client user?
     
  13. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,511
    Thanks. I was also been suggesting that instead of accepting very limited way of accepting input such as Keycode or virtual unity keys, maybe there can be some better way of accepting some form of generic functions.. so that third party plugins such as Wired or InControl can be used.

    Maybe all it is to accept some form of float value for axis and then bool for button conditions.. and we can create our own function which returns float or bool.. I am not sure..

    Maybe we can define the "condition" (such as jump , fire etc) that the script can look for, and then also pass the custom function that actually passing the condition's status..

    So it is like making a virtual button and axis or whatever input for the networkscript and then we define how it is handled.. Maybe I have not explained very well. ugh..
     
  14. Unreal-Vision

    Unreal-Vision

    Joined:
    May 6, 2013
    Posts:
    58
    There is any update about Forge and uFPS?

    Thanks,
     
  15. holgk

    holgk

    Joined:
    Aug 26, 2013
    Posts:
    10
    Hi! I purchased Forge recently after I had two weeks of hell with UNET. So far i'm quit happy.

    I stumbled upon two things:
    1. If I close the server/host with Networking.Disconnected() the serverDisconnected event isn't called.
    - Is this a bug or do i have to call another function if the server/host wants to quit. Or do I need to implement such an event by myself.

    2. Right now I'm struggling with a simple way of to handle connection failures. For example if the ip address dosn't exists or no server/host is running at the given address.
    - A short example code would be handy.
     
  16. shamunity

    shamunity

    Joined:
    Sep 18, 2015
    Posts:
    22
    I have a game that's physics-based (the player avatar can 'push' other avatars, then they go bouncing off a wall, which then affects other players in turn, etc).

    Would Forge be a good multiplayer solution for something of that nature? If so, why?
     
  17. phil-harvey

    phil-harvey

    Joined:
    Aug 27, 2014
    Posts:
    74
    Playing around with Forge networking and the FunCar Kit. After a few tweaks to the scripts for FunCar, this is what I had. No collision on cars yet.

     
    Cranick and CaptainMurphy like this.
  18. shamunity

    shamunity

    Joined:
    Sep 18, 2015
    Posts:
    22
    Thanks Phil - this looks fun but choppy as hell - can the Forge guys give some insights as to the feasibility of a project of that nature at scale (say 16 cars in total all with physics)?
     
  19. phil-harvey

    phil-harvey

    Joined:
    Aug 27, 2014
    Posts:
    74
    The choppyness is mainly coming from the Video Capture on the device. When not recording it is smooth. Only 2 extra variables are being sent over the network besides positioning.
     
  20. funnybunnymobile

    funnybunnymobile

    Joined:
    Mar 4, 2015
    Posts:
    5
  21. shamunity

    shamunity

    Joined:
    Sep 18, 2015
    Posts:
    22
    Ok, pre-sale questions:

    - First beginner video tutorial is about asking for firewall settings on windows - does that mean Forge won't work on mobile platforms (android/ios)?
    - Can I expect tutorials on the wiki (which is private) going beyond things like "Buffered Networking Instantiate", because quite frankly that means nothing to me? Is there a step by step tutorial on how to build a basic networked game for example? Please tell me you're not like this: http://www.forimpact.org/wp-content/uploads/2014/01/HowToDrawOwl.jpg :)
    - I heard about "client-side prediction" as a good technique to limit lag, what sort of mechanism can I expect to find in Forge around limiting lag, jitter and low bandwidth issues?
    - It's my understanding that forge networking allows for a fully self-hosted VPS solution, am I right? I really don't like p2p solutions and being able to provide a lag free server is must have for my game.
    - I'm writing a bumper car simulator. Each car is driven by rb.addForce, and players can steer while being pushed. This is similar to what you'd experience when playing battlefield with vehicles: you can bump into each other, and steer even though you are being bumped into. Will Forge be a good platform for such a game, in terms of allowing for some semi-realistic physics with rigidbody objects being pushed around by each player?
    - And finally, the support for bots - think counterstrike-style bots - are they doable with Forge networking, say, have the possibility to instantiate a number of bots per server? If so, roughly where would the code sit, and how would it be instantiated?

    Thank you.
     
    Last edited: Oct 17, 2015
  22. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Depends on the Server Hardware, on our Forge Zombies example we had about 50+ Zombies (Positions, rotation, scale) synced easily with no problems.
     
  23. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Why hello there.

    That is a lot indeed for mecanim movements. I wouldn't say you need too high bandwidth dedicated servers depending on how you hook up your mecanim syncing (We recommend syncing variables and locally animating it on the client).

    1) I will say this again is dependent on how much information is being synced per animation. It can handle as much hardware is allowed on the server. For that we have synced perfectly fine 50 objects with position, rotation and scale with no problems and don't see how it could be any difficult going a bit more to 100 with adding animations.

    2) We do have Bare Metal coming in the future that will remove any of the overhead of Unity, that would essentially act as what the Photon Server does.

    3) Not at the moment from what our developers are working on. Some are working on FPS, MMO Casual, Augmented Reality, etc. I don't know of any showcase doing a large scale AOI world MMO (like wow) that we know of, but it is all possible with Forge for sure.
     
  24. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    I see what you mean, like events to hook up to other plugins. I'll keep that in mind when we focus on this feature.

    Well take a look at those other third party solutions in the future to see how we can easily integrate them into our own solution, but as of this moment we are still focused on stability this month and bug fixes with some feature updates.
     
  25. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    We have a project we are still working on from the uFPS, we are excited to get back to working on the uFPS integration after this month. We hope that this will help people in the future with any integrations of future plugins as well.
     
  26. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Are you using the Latest version from the website? Currently we are at 16.4 which is our latest stable release. Please let me know if it is still causing any issues and send me an email to support@beardedmangames.com
     
  27. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Yes, it would be fine to network a game as such. I personally would sync the simulation of the push to the other user and set the variables it needs to do handle the information locally but you can also sync the Position/Rotation/Scale if need be too.
     
  28. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Haha nice.
     
  29. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Should be fine, we were able to sync 50 networked objects (position/rotation/scale) perfectly fine w/o any hiccups.
     
  30. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Oh wow, we made a networked version of Angry Bots in the past, but this one seems very clean and up to date. I can put it on the roadmap for next month to see if we can work on it as it looks fun.

    Thanks for pointing this out. :)
     
  31. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    1) It works on iOS and Android perfectly fine, although if you are hosting on those devices you will want to port forward or have some Nat Punchthrough setup enabled on the Master Server.
    2) Haha, we do have a bit more of the tutorials on the Wiki but they are more so text based rather than videos. It is community driven so that everyone is able to provide their feedback on it. What we provide is a framework for all types of networked games you can create. It doesn't even have to relate to gaming at all and that's the beauty of it. It is a advanced piece of code that just lets you do things with networking painlessly. We provide realtime support on our slack for any oddball questions that pop up as well as our other developers provide any input to point you in the right direction. So far it is working great and haven't had too many people complain about any major problems with it. We do need to brush up on our tutorials as some of them can be a little out of date but the logic behind it is still there. I'll definitely raise the priority of the video tutorials for next month so that you can get more in depth ones for what you need (Send me an email to support@beardedmangames.com for anything you have questions on and would like a video of).
    3) This is all possible, I would recommend having the information handled by the server and simulated to the clients on that. Depending on what needs to be sent back and forth I would say it is doable. Many different ways to network a game like this so feel free to ask others in the Slack if you do decide to commit. :)
    4) Yes, the code for the bots can be on the game itself but the logic handled by the server. All the clients are doing is being synced by the server and the server would sync the data that it sees to the clients. The server will always be up to date and see everything, so it makes sense to have the logic for the bots on the server.
     
  32. Greg-Bassett

    Greg-Bassett

    Joined:
    Jul 28, 2009
    Posts:
    628
    Cranick likes this.
  33. LastDude

    LastDude

    Joined:
    Aug 5, 2015
    Posts:
    15
    Are there any games that were made with Forge Networking (preferably shipped)? Could you list some of them?
     
  34. Ben-BearFish

    Ben-BearFish

    Joined:
    Sep 6, 2011
    Posts:
    1,204
    Has Forge been tested with Unity's WebGL build? Are there any additional things we have to worry about with Forge and WebGL?
     
    Nateply likes this.
  35. BFGames

    BFGames

    Joined:
    Oct 2, 2012
    Posts:
    1,543
    Not looked at forge for a long time due to work. But just bought it on level 11 sale, and are going to use it for a prototype at the end of this year :)

    Seems like it really came a long way since i tested it in beta :)
     
    Cranick likes this.
  36. BFGames

    BFGames

    Joined:
    Oct 2, 2012
    Posts:
    1,543
    Forge is pretty new and mutliplayer games take a loooong time to develop, so my guess is no :)
     
    Cranick likes this.
  37. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    This is an issue, thank you very much for pointing this out!
     
  38. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Not at the moment, we are still relatively new to the game with Unity Assets, but I will say that in the near future we definitely have some rising stars that are coming up to showcase.

    Whatever that game does take the spot we will gladly use it as a reference with their permission of course.
     
  39. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Not extensively, we have our testing focused on other platforms that support sockets right out of the bat and WebGL is something that will be fully supported once we have the greenlight from Unity of what they are going to stick with. I would recommend sending an email to support@beardedmangames.com if you have further questions about this. As of right now it doesn't work with WebGL just yet. :)
     
  40. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Thanks for your support and welcome back! Definitely a lot has changed as well as restructuring of our websites.
     
  41. Greg-Bassett

    Greg-Bassett

    Joined:
    Jul 28, 2009
    Posts:
    628
    Np! I am really interested in Forge, especially seeing all the review comments on the Asset Store.

    I do own Photon PUN+ which I got during one of the Unity Madness Sales with a view to using for a future title I have planned.

    However, what are the advantages/benefits of Forge over Photon? I see lots of users commenting on how simple Forge is to get up and running, I have watched your YouTube's and it does look super easy to get started! :)

    Look forward to your reply and I love your comment on your developers page "Forge is a platform designed for dreamers much like ourselves.", that's me! :)
     
    Cranick likes this.
  42. BFGames

    BFGames

    Joined:
    Oct 2, 2012
    Posts:
    1,543
    The most important difference is that with Photon PUN you cannot have an authoritative server setup and you a limited to 500 msgs/s per room. Both Forge and Photon PUN have its strengths so it depends on what game you want to make. I released a game with Photon PUN on Steam, but for the next project i need something else thats why i will go with Forge.
     
  43. terravires

    terravires

    Joined:
    Mar 27, 2013
    Posts:
    103
    @Cranick I've sent you several messages with different methods all without a reply. I also posted here a few weeks ago to say I'm not getting a reply, and other then "oh no" message, you haven't replied to the rest. Sent few emails to your support and a conversation message here starting from Oct 6th.

    I'm not sure what to make of this, as it seems like you want to be active to other people's questions/requests. I sent one last email and then posted here to see if you reply. :rolleyes:
     
  44. sepp26

    sepp26

    Joined:
    Aug 22, 2015
    Posts:
    1
    Is the Example ForgeWriteCustom still working? ( i am using Version 16.5 from the website) - if i start it i get an Exception:
    NullReferenceException: Object reference not set to an instance of an object
    ForgeExample_WriteCustom.Start () (at Assets/Bearded Man Studios Inc/Forge Networking Examples/Examples/Write Custom/Scripts/ForgeExample_WriteCustom.cs:44)

    Also the documentation on the website seems to be outdatet:
    http://developers.forgepowered.com/Tutorials/GettingStarted/Hosting-A-Server

    doesn't work as some others.

    I bought the product because you stated that it would be super easy to handle - but the documentation and examples should be updated - otherwise a network novice is not able to test it.
     
    Last edited: Oct 23, 2015
  45. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    So sorry, sent you a reply email just now. Please check your inbox to see if you got it! Thanks.
     
  46. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Sorry about that, will check it out on my end.

    I always recommend the Wiki as it is more updated than the website as like you said sometimes we have two versions out that are (1 Stable, 1 Latest).
    http://wiki.forgepowered.com/index.php/Tutorial:Hosting_a_Server

    Can you tell me what version of Unity you are using as well as Mac or PC?
    Thanks.
     
  47. shamunity

    shamunity

    Joined:
    Sep 18, 2015
    Posts:
    22
    Thank you @Cranick for your earlier reply, much appreciated. I'm about to press the 'buy' button but I have one last, perhaps silly question:

    My game is bot heavy currently written using behaviour trees and all running on the client (obviously). When I make my game multiplayer, where will this code live? If i have multiple servers with multiple rooms, how can I spawn bot code written in unity on a server, that will interact with multiple humans?

    I'm sorry if my question is daft, but imagine counterstrike with 8 humans and 8 bots, playing on the same server, is what i'm trying to achieve.

    Maybe there's a tutorial somewhere?
     
  48. Exeneva

    Exeneva

    Joined:
    Dec 7, 2013
    Posts:
    432
    How tightly integrated is your TCP adapter in Forge? Our TCP communication layer is based on code we found on the Internet and unstable in a few areas. We're looking to replace it, but not reformat our entire server structure. Is it possible to extract the TCP communication layer, or would we have to restructure our network setup to just use Forge?
     
  49. Fenris2

    Fenris2

    Joined:
    Aug 25, 2014
    Posts:
    61
    I am new to networking but the idea is usually that the server will run the bot code. This could be a dedicated headless unity instance, or this could be one of the clients that also acts as server. Either way, think of the server as the hub that all clients talk with via RPC (I believe forge preferred), and/or networked shared variables.

    Essentially, the clients will make requests and the server will more or less approve/tell them what happened and what is happening (what they see, positions of enemies, shooting, etc). Usually there will be prediction in here in that the client will assume it's player can keep going forward if that appears valid to it, and render accordingly while waiting on the server to confirm actual locations and such.
     
    Last edited: Oct 24, 2015
  50. Xazerek

    Xazerek

    Joined:
    Nov 3, 2014
    Posts:
    134
    Is that networking enough for MMORPG game? 500-1k players for one server.