Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[NEW] Forge Networking Released!

Discussion in 'Multiplayer' started by Cranick, Jun 12, 2015.

  1. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    06/23/2015
    Announcement:
    Asset Store Version Released!

    We have released Forge Networking on our website!

    Price: $74.99
    Announcement: Website Release!

    Reasons to use Forge over UNET or other solutions:
    • We provide full source code for every platform
    • No plugins needed, all source in native Unity C# code
    • Fast support. We focus on our system and can get bugs fixed in days, not months. Also since full source is provided, the community can submit bug fixes or features
    • No CCU or DAU limitation
    • Support for Unity 4.6+ as well as Unity 5+
    • Built in server browser
    • Built in local area network server finding
    • Support for TCP communication
    • Others thoughts

    Requirements
    Unity 4.6x or 5.x
    Unity 4.6x free requires Good Ol' Sockets


    Version Notes - Please see post below for further release information
    Release V2

    Removed the serialize easy position, rotation and scale
    Added new serialization of position, rotation and scale so that you can serialize individual dimensions (like just x or both x and z, etc.)
    Updated comments for Simple Networked Mono Behavior class
    Updated Start Game to use main thread manager rather than depend on networking manager
    Updated Start Game to not need the Update any longer
    Added comments to the Start Game

    Release V1
    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
    Updated ServerAPI to use new parse cloud RESTful methods
    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

    Download
    http://developers.forgearcade.com/Profile
    Support Email: support@beardedmangames.com
    Main developer portal: http://developers.forgearcade.com/
    Main tutorial portal: http://developers.forgearcade.com/Tutorials
    Main Forums: http://forums.forgearcade.com/
    Main Feedback Portal: http://developers.forgearcade.com/Feedback
    Main Unity Forum Thread: http://forum.unity3d.com/threads/su...rary-including-windows-universal-apps.286900/
    Beginner Videos: https://www.youtube.com/playlist?list=PLaMPnrbpanJ7DazlqTkZHHBSt8D5dx4Um
    Intermediate Videos: https://www.youtube.com/playlist?list=PLaMPnrbpanJ6DC4RmaEbyHgcnqi6HrfTt
    We are still waiting on review for the asset store release but for now you are able to purchase through our website! Feel free to discuss on our forums at http://forums.forgearcade.com/ if you have any questions, or comment below here. :)
     
    Last edited: Jan 17, 2016
  2. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Just an update! We have released 6 versions in 4 days! The following is a list of all of the updates we have done.

    Release V1:
    • 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
    • Updated ServerAPI to use new parse cloud RESTful methods
    • 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

    Release V2:
    • Removed the serialize easy position, rotation and scale
    • Added new serialization of position, rotation and scale so that you can serialize individual dimensions (like just x or both x and z, etc.)
    • Updated comments for Simple Networked Mono Behavior class
    • Updated Start Game to use main thread manager rather than depend on networking manager
    • Updated Start Game to not need the Update any longer
    • Added comments to the Start Game

    Release V3:
    • Fixed warnings with Unity 5 and the platform checks in StartGame
    • Added new [NetSync] attribute so that it is easier than ever to replicate a variable across the network
    • [NetSync] Now can have callbacks so that you can execute methods upon change of the value of the variables!
    • Added more comment documentation into NetworkedMonoBehavior
    • Commented NetRef
    • Added new global NetworkCallers enum
    • New Ping methods implemented in the core system to better track network latency
    • Added license (seat) count to your profile page on the developer portal
    • Fixed runtime warning in NetWorker for editor catch exception e log

    Release V4:
    • Added some helper messages and exceptions for new users
    • Fixed bug where Type byte was having issues being sent as a parameter of RPC
    • serverDisconnected event is now called on client when the host forceully closes with a string message
    • The main player is now accessable statically through NetworkedMonoBehavior.Player
    • Added new BeardedManStudios.Network.Cache static class for easy transient key-value storage (to become persistent)
    • Added a indexer for the BMSByte (opperator overloading for the [])
    • Fixed WriteRaw to prepend with proper byte before sending
    • Added an optional bool to the BMSByte constructor to prepare for raw
    • Cache class now communicates with server/client and allows for storing of data bound to a string key
    • Fixed bug with using alternative BMSByte constructor
    • Now WriteRaw can be reliable if a reliable key string is provided
    • Updated documentation to use NetworkedMonoBehavior as to not confuse new users

    Release V5:
    • New enforced input based authoritative server controls (including mouse) on NetworkedMonoBehavior
    • NetworkedMonoBehavior now has client side prediction as an optional boolean
    • Updated the layout for the NetworkedMonoBehavior editor (Will make it look pretty very soon)
    • New disconnect method for when application quits on SimpleNetworkedMonoBehaviors
    • New destroy on disconnect option for NetworkedMonoBehaviors
    • New documentation layout on the website so that it is easier to look through
    • New autostart scene and script. Now you can have unity auto build and start (N) clients for testing

    Release V6:
    • Updated the exception text when instantiating objects not in the lookup for better steps to fix
    • New packet loss simulation for UDP (Can be set in StartGame script inspector *See StartGame.cs for implementation*)
    • New latency simulation for UDP (Can be set in StartGame script inspector *See StartGame.cs for implementation*)
    • Fixed error with Unity 5.0.1 having issues with the editor window
    • Made time inbetween pings longer, it was just too short
    • Added experimental frame number on inputs for authoritative input

    Release V7/7.1/7.2:
    • New callback method allowed for when you do a Networking.Instantiate
    • New NetworkStart virtual function that can be overridden and used rather than doing networked based things in the Start function
    • Fixed rare critical bug where 2 classes that derive from SimpleNetworkedMonoBehavior are sorting differently on different builds
    • Fixed race condition with Networking Manager and its Awake method
    • Fixed new race condition with Networking Manager with Instantiate

    Release V8/8.1:

    • Position, Rotation and Scale on the NetworkedMonoBehavior can now be independantly lerped
    • Updated the website tutorials to include running a headless linux server
    • Second upload to the Asset Store
    • Instantiate callbacks now only called on the machine that requested the instantiate

    Release V9/9.1:

    • Removed useless diagnostics log in the SimpleNetworkedMonoBehavior
    • Now you can have any derivitive of a SimpleNetworkedMonoBehavior on any child objects in a prefab and multiple ones
    • Multiple SimpleNetworkedMonoBehavior scripts on one object
    • Fixed a bug that happens on a long running instance where rpc can cause out of range buffer issue

    Release V10/10.1/10.2/10.3/10.4/10.5/10.6:
    • Updated the crash that was happening on the master server during LINQ expression
    • Fixed issue with AddNetworkVariable having null NetSync causing null reference
    • Add a disconnect to the main thread manager check
    • Main thread manager is now created at runtime when connecting or hosting
    • Updated the NetworkedMonoBehavior UI bugs on lerping position, rotation and scale
    • Updated the NetworkedMonoBehavior UI so that the colors match the action better
    • Fixed issues with iOS not connecting and creating a player properly because of race conditions
    • Fixed issues with static cache causing problems with multiple open sockets
    • Fixed max player count for Master Server
    • Fixed the Networking.Disconnect to not be dependent on the networking manager
    • Fix for the servers not updating the player count on the master server
    • Fixed spamming of the ping for master server
    • Fixed max player count
    • New master server
    • Server browser updated to work with master server
    • Striped out arbiter from menu as it will be revamped and current functionality can be replaced with master server
    • Cleaned up BMSByte code
    • Removed warnings on editor script
    • Updated UI for NetworkedMonoBehavior
    • Updated disconnect bug on UDP
    • Updated networking disconnect to validate owning netWorker before closing webplayer policy server
    • Updated the quick start menu
    • Fixed server list class to support new master server get hosts method
    • Added master server ip string to the start menu
    • Start menu will register a server if a master server ip address is provided
    • Fixed bugs related to multiple connections in networking manager

    Release V11/11.1/11.5/11.6/11.62/11.65:
    • Created a reset for SimpleNetworkedMonoBehavior when disconnecting from network
    • Clients disconnecting and reconnecting with the Networking.Disconnect(); method will now be able to reconnect correctly
    • Experimental version of NAT Hole Punching ready for larger scale testing
    • Removed old NAT Hole Punching test server id
    • Added Master Server helper method to set static ip for NAT hole punching
    • Added custom read events being properly handled on the server as well
    • Bug fixes for custom read event on supporting receivers of All, AllBuffered, and AllProximity
    • Refactored some code for cleanup on Write Custom to be more readable
    • Updated example scene to include a custom read event handled by the server only
    • Fixed NetworkingManager.Instance null inverted check in Networking class
    • BMSBytes can now be serialized across the network with object mapper, which means it will work for RPC calls, WriteCustom and anywhere else that serializes arguments
    • Ditto the last line except with a byte array
    • Added rudimentary position offset for serverIsAuthority and client side prediction to control "rubber banding"
    • Added rudimentary rotation offset for serverIsAuthority and client side prediction to control "angle snapping"
    • Removed the network object from the buffer of an object that is Network.Destroy();
    • Server now correctly resets the buffer of objects that have been passed through to others from a destroy
    • Removed excess code that can cause issues to high velocity games with instantiate and destroying while other users connecting
    • Cleanup on NetworkingStream properly pass the NetworkID and SimpleNetworkedMonoBehavior that it called from, now correctly assigns itself
    • Fixes to the buffering of Instantiates and Destroys, will now properly remove all buffers of the object that was destroyed from an instantiate
    • Added a Powered By Forge Scene
    • Removed excessive logos from build
    • Fixed critical non-buffered delete bug for future joining players
    • Fixed inverted logic error for delete which was found in Bare Metal development
    • Fixed issue with multiple scripts on single object with authoritative and non-authoritative
    • Fixed rigidbody issues with mixed NetworkedMonoBehaviors on same object
    • Fixed collider issues on mixed NetworkedMonoBehaviors on the same object
    • Added new floating poin input scripts for authoritative model
    • Master server no longer pings the hosts
    • Hosts now ping master server as to stay in the list

    Release V12/12.01/12.2/12.3/12.31/12.4/12.5/12.6:
    • Fixed disconnect and reconnect bug so that the host/clients can now disconnect and reconnect
    • Updated static variables to reset in SimpleNetworkedMonoBehavior
    • Fixed issue where NetworkingManager.Instance becomes null on disconnect
    • Fixed issue where player (isPlayer object) was not being destroyed on disconnect
    • Fixed desync with instantiates and destroys, tested with 34 players and 30 "zombies"
    • Fixed issue where disconnect was being called two times when a client leaves
    • Now remote objects can be specified to be spawned for other users
    • Now support for Forge Transport Object
    • 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
    • Fixed issue with serializing a byte array before other data types in an RPC call
    • 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 renderes)
    • Added event to fire when player enters proximity of current player (good for things like enabling renderes)
    • 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

    Release V13/13.1:
    • NetworkReceivers.Owner has been added so now only owners of a particular object can be targeted
    • Individual values can now ignore interpolation with NetSync.Interpolate.(True|False) - Default is true, this only works if Network Interpolation is turned on
    • Updated core to support owner receivers. This targets the owner of the SNMB only
    • Only writing exception files on UNITY_STANDALONE
    • If Linux selected as build mode, StartGame will have auto start server option
    • Extracted logic from UDP to be global logic for packet read
    • New public Send method in NetWorker to send raw byte[] messages to any endpoint
    • Updated the core Forge framework to make it more compatable with TCP
    • Updated bug in core framework reliable packets with multiple end users
    • Reliable packets have been better optimized for targeting players more efficiently
    • WriteRaw now updated for targeted use cases and reliable is actually reliable
    • Reliable responses happen quicker and do not need to be added to multiple places anymore
    • Fix for issue NetworkedMonoBehaviors exception that was being thrown with long lived transport
    • Updated the default update time for the network to cut bandwidth in half by default
    • Updated NetworkedMonoBehaviors to have no dependency on main thread when replicating values
    • Fixed issue with position desync randomly happening
    • Fixed issues with NetSync interpolation being defaulted to false
    • Fixed issue with callback not firing from NetSync on non-interpolated values

    Release V14/14.1/14.2/14.3/14.31/14.35/14.4/14.5/14.6/14.14.61/14.62:
    • 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 - http://forum.unity3d.com/members/danielsnd.398765/
    • 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
    • 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
    • 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
    • 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
    • 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
    • New IBRPCIntercept interface that will allow you to intercept RPC logic from the client for security
    • Fixed major bug with initial spawning locations of clients not being replicated when they join sometimes
    • Fixed major bug with initial clients not updating to starting sync values not replicating sometimes
    • Fixed issue with byte[] having extra bytes at the end when sent across the network
    • Added [NetSyncToServer] where variables marked with this only go to the server and not other clients
    • DataInitialized is now set to true after NetworkInitialized method call
    • Objects will once again teleport to initial positions rather than interpolate to them
    • Fixed race condition bug with multiple clients joining simultaniously with a large rpc list
    • Fixed issue with spawning objects with child behaviors and the id getting out of sync preventing spawn
    • Object mapper (and everything else) now supports sbyte
    • Fixed bug where non-numeric objects were not getting set by the NetworkInitialized method
    • Fixed error with iOS throwing exception on disconnect
    • Removed .intercept() for iOS
    • iOS no longer slows down as time goes on when disconnecting and reconnecting (tested with Zombie example)
    • Updated UI so that it now starts off collapsed and takes up less space
    • Updated UI so that there is a button to turn off all position and rotation rather than clicking each one to turn off
    • Updated the NetworkInitialized bug to work with number type variables
    • Removed redundant initialization call from the server for objects
    • Fixed exception that is thrown on server when client abrupbly disposes the connection
    • Added dontDestroyOnLoad to SNMB, if set true the object will not be cleaned up on network on scene change
     
    Last edited: Sep 3, 2015
  3. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Release V8:
    • Position, Rotation and Scale on the NetworkedMonoBehavior can now be independantly lerped
    • Updated the website tutorials to include running a headless linux server
    • Second upload to the Asset Store
    • Instantiate callbacks now only called on the machine that requested the instantiate

    Also want to thank unity for featuring us on the front page! Really happy and excited to get this to you all! :)
     
  4. truefx001

    truefx001

    Joined:
    Jan 30, 2013
    Posts:
    132
    So what's the difference between your Networking solution and the new UNET ?
     
  5. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hello there! :)

    Well there are quite a few differences actually. The first one that a lot of our users like is that we provide full source code. This way they can alter how the system works to best fit what they need. Also quite few of our newer users come from using UNET for some time actually and were happy with the transition.

    We will not be having CCU limitations on the system for larger scale, we actually built the system so that you can create a large scale distributed networking system yourself as well. Another difference that enables this is that we allow multiple socket connections in one instance.

    We also have been working on a "non-Unity instance" server (which also will be open source). This will allow you to be able to have a messaging server that is super light weight without having to route through a Unity instance.

    Another difference is we offer a server side cache system. This allows you to store data (indexed by strings) on the server and allow clients to query this data as a cache database.

    Another difference is that we will be making our Arbiter system available for users as well so that you can develop your own REST api's and database connections for your server/games. This server is developed and designed in a LAMP structure so that it is easy to find tons of documentation on.

    Some opinions on the difference are that we focus on making this networking system, we do not have an entire engine that demands our time (also allows for fast and direct support) :). We also develop this networking system because we are developing our own network games, so that also means we have a stake in the system's usefulness and success. Also, we focus on creating user requested features. In fact we have a lot of new features that were implemented purely based on our users feedback and suggestions. We have our own portal for feedback and bug reports. We are happy to have such an active community who gives great suggestions and even helps to add to Forge! :D

    I am sure that there are tons more reasons why we are actually getting quite a few people leaving UNET to use Forge, but we have been so focused on our system that we really only look at UNET to make sure that we match it's feature set.
     
  6. MornFall

    MornFall

    Joined:
    Jan 11, 2013
    Posts:
    160
    @farrisarts :

    Hi,

    I have been trying to make my little game work with Unet for about two weeks now. The core game actually works... what does not is the matchmaker...
    Now, i am nowhere the skilled programmer that some are here, learning it by myself for a few years now. But i still managed to get the game working...
    What i am trying to accomplish here is simple : It is a 1 v 1 TowerDefense game ( For Now ). So i have the simplest form of network : press Play, find a match, if not, create one and wait for someone to get in. All units follow a predetermined path and never stops, so i only sync their " HealthPoints" , while the host handles all the "Spawning turrets here, Spawn unit there"... Pretty simple.
    What i need is that system to be reliable and easy to make. That involves having a relay server somewhere, that actually works properly...

    Would your solution be good for what i need ? and how hard would it be a nuub programmer like me to make it work the way i need ? ( again, it s all working on Unet, exept i have no little to no documentation and now way of knowing what the heck is going on with that matchmaker ).
     
  7. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hello there! Thank you for the questions :).

    So our system is being used for a very large range of games and genres. The system will support what you need out of the box. We also will be releasing a master server system within this week which will have the ability to support matchmaking services. We also have a large number of new users on our system and we do our best to help every single one of them not only with their questions, but to learn all about networking. Our favorite form of tutorials for our system is video tutorials, which eventually will be leading into programming for networking tutorials using our system for beginners to advanced users.

    If you wish to wait and see that we follow through with what we say we are going to do, in making this master server, before supporting the system; feel free to watch the main thread (http://forum.unity3d.com/threads/ne...ly-cross-platform.286900/page-19#post-2179918) or watch our subreddit or developer portal.

    Please let us know if you have any further questions :)
     
  8. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Big Announcement! - Forge Cloud Hosting Beta

    NO CCU COSTS, NO CCU LIMITATIONS

    We promised and now we are delivering (as usual). We are officially opening up beta requests for Forge Cloud. That's right, it is the same cloud hosting we promised from the beginning . You pay for what you use, nothing more.
     
    Last edited: Jul 11, 2015
  9. Ben-BearFish

    Ben-BearFish

    Joined:
    Sep 6, 2011
    Posts:
    1,204
    @Cranick After reviewing the different options for networking in Unity, it seems like a lot of people recommend Forge. I had one question though that might be specific, but I thought it was worth asking. Has anyone used Forge in a console Unity platform, such as Wii U, Xbox One, PS4? If so have there been any issues?
     
  10. Cranick

    Cranick

    Joined:
    Nov 20, 2011
    Posts:
    310
    Thanks for taking the time to consider us!

    We haven't had anyone use it for it yet, but as long as it supports sockets then it shouldn't be too much of a problem. Although when we do get somebody who is using it for those specific platforms, we would like to make sure to knock out any bugs that it may have on them as we don't have a developer license for those ourselves.

    Hopefully this answers your questions. =)
     
  11. truefx001

    truefx001

    Joined:
    Jan 30, 2013
    Posts:
    132
    Hi there,
    we will be using Forge with Playstation 4 and Xbox One, we have a developer license for both and also the dev kit's.
    So please be aware that we will have a lot of questions around Forge :) . At the moment however our focus is on polishing the Early Access for Steam we got Greenlit recently and changing our Multiplayer framework from Badumna to Forge right now.
     
    Ben-BearFish likes this.
  12. Ben-BearFish

    Ben-BearFish

    Joined:
    Sep 6, 2011
    Posts:
    1,204
    That's great to hear from the both of you. I'm very interested in hearing the feedback for that. Thanks.
     
  13. SORELLE

    SORELLE

    Joined:
    Jun 26, 2015
    Posts:
    3
    Hi, Please i want to know more about authoritative server and client side prédiction
     
  14. UnbreakableOne

    UnbreakableOne

    Joined:
    Nov 16, 2013
    Posts:
    168
    Does Forge support consoles like PS4 and Xbox One?
     
  15. R1PFake

    R1PFake

    Joined:
    Aug 7, 2015
    Posts:
    533
    Hello, can someone answer these questions for me.

    SHORT: Can i use Forge to create matches like in photon without any portforwarding and without hosting my own server/matchmaker?

    LONG:

    Okay first what i do/need, we are a small indie team (3 people) we are working on a turn based "card/board" game, so we only need so send some RPC's with the current action (play card X, move unit to positon Y, etc) BUT the most important part, we want the player to be able to host a lobby (max 4 players), we DON'T want to host our own servers, we need something so that the client can create/host a lobby and other play can join without any port forwarding or enterning IP adresses or anything like that.
    We tried UNET and it works so far, but there is no information how much the service will cost after the "Beta" so we don't really want to use it, when we don't even know how much we have to pay for the matchmaker after the "release".

    We also looked at Photon and it does exectly what we want and we almost wanted to use it, but then we found Forge which says that we have to pay once and can then use it for ANY game without any CCU limit, and of course we want to check that befor using photon and paying ~90€ for 100CCU and maybe even more if we need to upgrade / monthly

    But my question is, does Forge really do the same as photon? there is not much information about the matchmaking system, we only found somethng about the "Arbiter", but it looks like we cant' test it in the free version because i can't even create a app on the website and we can't enter any keys in unity (we watched the videos, so either they changed something or its not possible in the free version)
    It seems like the Arbiter does what we need and what photon does, it has a server browser etc but does it really help to connect the people or does it just save the IP and say the client connect to IP X and Port Y and the host would still have to forward ports etc?
     
    LYR4S likes this.
  16. robinlancee

    robinlancee

    Joined:
    Feb 7, 2013
    Posts:
    20
    Hello, i try to get Serverping like 1-999 in serverbrowser but i can't make it working.

    is there something like host.ping
     
  17. Ben-BearFish

    Ben-BearFish

    Joined:
    Sep 6, 2011
    Posts:
    1,204
    @truefx001 I was wondering how the port to Forge went and whether you got it working on consoles?

    @Cranick Do you know if Forge works in WebGL?
     
  18. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
  19. Leonid

    Leonid

    Joined:
    Aug 20, 2013
    Posts:
    90
    Hi!
    Networking.ChangeClientScene doesn't work.
    v20, v19.
    Errors:
    "NullReferenceException: Object reference not set to an instance of an object" - on SceneController's "Networking.ChangeClientScene(player.PlayerObject.OwningNetWorker, sceneName);" row,
    and
    "IndexOutOfRangeException: Array index is out of range.
    BeardedManStudios.Network.NetworkingStream.Read (Int32 count) (at Assets/Bearded Man Studios Inc/Forge Networking/MainScripts/Core/NetworkingStream.cs:454)"


    code:
    using UnityEngine;
    using BeardedManStudios.Network;
    using UnityEngine.SceneManagement;
    using System.Collections;

    public class SceneController : SimpleNetworkedMonoBehavior
    {
    string sceneName = "DefaultSceneName";

    protected override void NetworkStart()
    {
    base.NetworkStart();
    if (Networking.PrimarySocket.IsServer)
    {
    Networking.PrimarySocket.playerConnected += PlayerConnected;
    }
    }

    void PlayerConnected(NetworkingPlayer player)
    {
    sceneName = SceneManager.GetActiveScene().name;
    ChangePlayerScene(player);
    }

    void ChangePlayerScene(NetworkingPlayer player, string sceneName = null)
    {
    if (string.IsNullOrEmpty(sceneName))
    sceneName = this.sceneName;

    Networking.ChangeClientScene(player.PlayerObject.OwningNetWorker, sceneName);
    }

    void OnDisable()
    {
    Networking.PrimarySocket.playerConnected -= PlayerConnected;
    StopAllCoroutines();
    }
    }
     
  20. rXp

    rXp

    Joined:
    Sep 24, 2013
    Posts:
    8
    Hello,

    I am really interested in forge it seems to be the perfect middle for me :)
    I just have a couple of questions, I hope you will be able to tell me yes or no, @farrisarts :
    - Can I really just use simple UDP packet to be efficient as I want without the hassle of handling the ack ?
    - Would it be possible to transform my custom master server into a matchmaking server ? I don't want the client to be able to cheat a choose their opponent.
    - I know it is not officially supported but if I get a PS4 dev kit would you help us get everything working ? :)
    - I like understanding what is under the hood, is there a place where I can ask more specific question if the need be ?
    I will be making pretty much my own packets and I need as little overhead as possible. I will need to make my own predictions on both client with a rollback system.
    I'm scared the system would force me to do certain things that would destroy that.

    Thanks for the help :D

    rXp
     
  21. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Hello :)
    We have been putting a lot of our effort into FNR which has much greater scene support with the new design. We are giving FNR out for free to people who own Forge Networking at the moment. I would highly suggest the migration to FNR to anyone currently on FN (classic). Are you on Slack? If so what is your username and I can get you added to the FNR group if you would like. If your project is really deep into the FN process, please send me a message on Slack (@brentfarris) and we can see what we can do :)
     
  22. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    If I understand your question correctly, yes, Forge takes care of all of the connections

    Yes

    If you are willing to work with us and allow us to work with you in confirming PS4 as a supported platform for Sockets within Unity then we would love to :)

    Slack is the place for you. If you purchase through the Asset Store then you just need to check out this link: http://developers.forgepowered.com/...nityAssetStore/How-to-Register-Invoice-Number

    FNR (Forge Networking Remastered) allows you to control your own packets, we have developers who use raw binary data for their network and use the tools that Forge gives them to take care of the transport.
     
  23. rXp

    rXp

    Joined:
    Sep 24, 2013
    Posts:
    8
    Your tool seems godlike I will buy that ASAP and get right on it ! I think you just saved me :)
     
  24. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881
    Haha, thanks! Also be sure to join Slack so you can download Forge Networking Remastered. It is the next version of Forge Networking and is a massive upgrade. Also we have a bunch of active people in Slack who are able to help you get up and running :).
     
  25. Leonid

    Leonid

    Joined:
    Aug 20, 2013
    Posts:
    90
    Hi! Thanks for reply.
    Yeah, i would like to try new Forge!
    I'm FN owner, but i'm not on Slack. How can i get there?
     
  26. Brent_Farris

    Brent_Farris

    Joined:
    Jul 13, 2012
    Posts:
    881