Search Unity

Third Party SmartFoxServer Multiplayer Game Engine

Discussion in 'Multiplayer' started by g_a_p, Oct 12, 2018.

  1. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    Since 2004, SmartFoxServer is a comprehensive SDK for rapidly developing multiplayer games in Unity. It comes with a rich set of features, an impressive documentation set, tens of examples with their source code, powerful administration tools and a very active support forum.
    Thanks to its simplicity of use, versatility and performance, SmartFoxServer currently powers hundreds of projects all over the world, from small chats and turn-based games to massive virtual worlds and realtime games.

    In this thread we will keep the Unity community updated on the latest news and releases of SmartFoxServer. You can also follow us on Facebook or Twitter.

    Latest news and updates
    • Server release v2.19.0
      Main release notes (see all):
      [NEW] Tomcat i updated to version 9.0.70.
      [NEW] GeoLite database updated.
      [NEW] Extension Flood Filter added, which allows to configure Extension calls rate limits on a per-request basis.
      [NEW] In AdminTool's login view, port and encryption checkbox are set automatically based on the URL protocol.
      [FIX] GameAPI sending an invitation from the server side raise an exception (using null as the inviter object).
      [FIX] AdminTool's menu button on mobile devices partially not working due to notifications container covering it.
      [FIX] In AdminTool's Dashboard module, server uptime slowly diverges if browser window is minimized or loses focus.
    • Latest server patch v2.20.0
      [NEW] Updated Tomcat http server with release 9.0.87, with several bug and security fixes, and performance improvements.
      [NEW] Improved License Server communication with faster response times. Also the License Server is now reachable from China since the infrastructure was moved from Google App Engine to Amazon Web Services.
      [NEW] Added <disconnectOnFullQueue> setting in core.xml to auto-disconnect slow clients whose packet queue has reached max capacity. By default the setting is not active. For more details see the documentation.
      [NEW] GeoLite database updated to the latest release.
    • Client API v1.8.3
      [FIX] Deprecated function in SFSWebSockets.jslib file required by Unity WebGL projects.
    • Examples Pack v2.1.0
      The latest version of our examples pack for Unity features a brand new Shooter demo, a first/third person combat game which substitutes our outdated First Person Shooter example.
      All examples are also available as separate projects in the Asset Store:
      https://assetstore.unity.com/publishers/7020
    • Overcast v1.0.0
      The latest Overcast update introduced SmartFoxServer Clustering and a number of new features and improvements. Our clustering solution provides automatic horizontal scaling, automatic load balancing, advanced cluster-wide matchmaking, advanced monitoring and management via SFS2X AdminTool, extended SFS2X client side API with new events and requests.
    • Blog - SmartFoxServer Roadmap
      With the new year we have started working on a set of major new features and improvements that will come to SmartFoxServer in due time. Find out what’s cooking.
    See also:
    SmartFoxServer 2X
    SmartFoxServer 2X is an authoritative server based on a custom high-performance and scalable architecture that can handle tens of thousands of clients even on commodity hardware.
    It is fully expandable with your custom game logic written in Java or JavaScript and it provides integrated support for database connections, a fast and highly optimized network protocol with compression and SSL support, HTTP tunneling for clients behind proxies and firewalls, embedded HTTP server for web content and tons more. https://www.smartfoxserver.com/products/sfs2x#p=features

    The Community Edition gives full access to the platform for free and without time limits. It allows 100 concurrent users and provides 100% of the features. https://www.smartfoxserver.com/download/sfs2x

    Overcast - The SmartFoxServer Cloud
    Overcast is a dedicated cloud-based hosting service for SmartFoxServer 2X that provides a complete stack to build and run rich multiplayer games at any scale.
    With Overcast developers can deploy any number of SFS2X instances in the cloud, world-wide, with a simple web-based interface. Each instance runs in its dedicated server with unlimited CCU and provides 100% of the SmartFoxServer 2X features.
    Overcast also introduces SFS2X Clustering, to add horizontal scalability to games and apps with new tools to manage a SmartFoxServer cluster in the cloud. It provides customizable Load Balancing and Orchestration, extended client and server API and lots more.
    https://overcast.smartfoxserver.com

    Client API for Unity
    The client C# API is distributed in the form of three DLL libraries to be used in conjunction with each other inside Unity to cover all its building targets. https://www.smartfoxserver.com/download/sfs2x#p=client

    Documentation
    The comprehensive online documentation covers all aspects of multiplayer development with SmartFoxServer. http://docs2x.smartfoxserver.com/

    A series of tutorials for the Unity platform provide an insight into features of increasing complexity, starting from the basic connection to a full-fledged realtime game with MMO capabilities. http://docs2x.smartfoxserver.com/ExamplesUnity/introduction

    Our white papers discuss the fundamental high level aspects of multiplayer programming, like performance, scalability, security, architecture and more. http://docs2x.smartfoxserver.com/Overview/white-papers
     
    Last edited: Apr 19, 2024 at 4:20 PM
  2. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
  3. Ceciphar

    Ceciphar

    Joined:
    Jan 21, 2017
    Posts:
    51
    I don't think I'm understanding this.
    So smaetfox can be a sever without paying for anything extra correct?
    But then in the doc it shows smartfox just handling all the play information and a cloud sever that we pay for is connecting the players.
     
  4. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    Still in Java right?
     
    e199 likes this.
  5. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    Yes, but Extensions (through which you write your server-side game logic) can also be written in JavaScript.
     
  6. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    SmartFoxServer 2X has a free Community Edition which is full-featured but accepts max 100 concurrent users. If you need more concurrent users, you can buy a commercial license (perpetual or elastic).
    It is not clear what you mean. Can you please rephrase? Thank you.
     
  7. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    As I understand it the original SmartFox was also in Java, and I do understand why you guys kept it in Java, but with that said: I think it's a massive hinderance to games being developed in Unity, simply because C# code can be shared between the Unity game client and a server running on something like .NET Core which performs incredibly well, and this cuts down development time/effort and reduces potential bugs as you have less duplication of code needed to be done for two different languages.
     
    DebugLogWarning and e199 like this.
  8. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    While I agree that using the same language on both sides can be convenient, it looks like you're making a number of unwarranted assumptions.
    In our experience it's far from a "massive hindrance" to use a different language on client and server side (just as it isn't, for example, in web development). We have talked to hundreds of customers who use different environments for client and server side and:

    a) this has never been a major issue in development
    b) the amount of client code that can be reused verbatim on both side is a minor portion

    In a Unity game many of the client side game objects/classes would depend on Unity stuff such as extending MonoBehavior, reading transforms, accessing the Scene etc... all operations that can't be translated on the server side.

    Also server side classes representing client entities usually need a smaller subset of properties to represent them on that side, so a rewrite is typically necessary. This is also true for methods, as you will need different behaviors for the same entity, based on which side you're on (i.e. you don't want your client/rendering methods on server side and you don't want your server logic in the client classes).

    Finally you have the non-trivial difference where Unity runs essentially mono-threaded, while the server side necessarily requires parallel execution, with all the implications that this entails. So once again code needs to adapted.

    my 2c
     
  9. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    SmartFoxServer 2X Patch 2.13.4 is now available for download.

    Release notes
    [NEW] Added support for allowed websocket origins. Provides extra configuration parameters under ServerSettings > Web Server, to specify which origins are allowed to connect via websocket. Useful to protect against connections coming from URLs other than those hosting the actual game/app.
    [FIX] Improved BlueBox performance via dedicated thread pool to avoid a corner case interference with socket engine performance.
    [FIX] Websocket max message size is now synchronized to the maxIncomingPacketSize parameter found in config/core.xml.

    Download the SFS2X 2.13.4 patch from here
     
  10. Ceciphar

    Ceciphar

    Joined:
    Jan 21, 2017
    Posts:
    51
    what i meant is, smart fox hosting the servers or will we have to host own with one of the hosting service you support/advertise?
     
  11. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    We don't provide the hosting service. You can install SFS at any hosting service of your choice. We advertise a few on our website, but you are not forced to go with those.
     
  12. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    New blog article: Security for HTML5 games

    In this new article on our blog we show how to use and configure websocket origins in SmartFoxServer 2X to better secure HTML5 games. We also take a deeper look at the issue of cheating clients and propose several ideas to improve the security of your online games.
    https://smartfoxserver.com/blog/security-for-html5-games/
     
  13. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
  14. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    Thanks to the feedback of a user on our support forum, we spotted a minor issue in the client API, where a flag indicating if UDP is available was inconsistent with the actual behavior. So we just published v1.7.11 to fix it.
    You can get the updated API at this url: https://www.smartfoxserver.com/download/sfs2x#p=client
     
  15. umen

    umen

    Joined:
    Oct 2, 2012
    Posts:
    49
    Hey i have few questions .
    1. How do you support load balancing web sockets ? does your server can be used as load balancer for TCP/UDP/WS?
    2. do you have in your site some good mobile games architecture examples / tutorials ? to set up real mobile game
      MMO game ?
    3. Does your server supports connection reconnect to save some kind of persistency?
      Thanks !
     
  16. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    It depends on what king of load balancing you are thinking about.
    If you mean a way to separate users connected to the same server into separate Rooms (lobbies, for example), this can be easily achieved using server side Extension.
    If, instead, you are referring to a way to redirect users to different servers, we don't have a built-in solution. Depending on the game type there can be many different ways of distributing users that is pretty difficult for us to provide a generic enough solution for multiple use cases.

    We have a good number of tutorials and examples in our documentation website: http://docs2x.smartfoxserver.com/ExamplesUnity/introduction
    They are not specifically targeted at mobile devices (even if some of them work fine if deployed to a device) because their purpose is to describe specific features of SmartFoxServer. Creating a full game for mobile would have additional requirements (for example adapting to different screen sizes, or implementing on-screen controls) that would make the code more complex, an useless for the purpose of teaching how to use SmartFoxServer.

    Yes, we have a pretty advanced reconnection system. You can read all the specs at this url: http://docs2x.smartfoxserver.com/GettingStarted/reconnection-hrc-plus
     
  17. umen

    umen

    Joined:
    Oct 2, 2012
    Posts:
    49
    Thanks allot for your answer , i took the time to read thru your documents , and they great . few more question which have been unclear to me.
    1. Do you support synchronic (MT) connections? or only async ?
    2. Do you support UDP ? if yes do you wrap it with TCP like interface so the API is the same ? can you point me to documentation .?
    3. what is your recommendation for mobile MMO game ? in terms of protocol ?
      UDP or TCP or WS? does all of them supported by your HTTP tunneling tech fall back?
      This subject is most interesting to me , as im beginner in the mobile land and i like to know what is the best way to do it , do you have resources / info about the subject ?
      Thanks!
     
  18. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    Sorry, I don't know what do you mean by that exactly. Connections are neither synchronous nor asynchronous they simply abstract a low level network session.

    Maybe you're referring to the general programming model? If so, the SmartFoxServer API are event based, therefore asynchronous, meaning that when you send a request/message your current thread does not block to get an answer, instead you will receive an update later when the server replies.

    Yes we support UDP.
    Our API are high level, so you don't deal directly with low-level network details, instead you send requests and you can specify whether to use TCP or UDP via a simple flag. So to answer your question more directly, yes you don't need different code to work with either protocol.

    It is a very broad question. There are many different events going on in an MMO. For instance chat messages need to be delivered reliably so TCP should be used, while position changes may or may not need to be reliable based on the type of game.
    For example in our FPS example we use UDP as we employ a very high update rate and we can compensate for packet loss in exchange for faster updates.

    If you use WS you don't need HTTP tunnelling as WS is already part of the HTTP protocol.
    Other than that, yes.

    From a server side perspective mobile or non-mobile doesn't make much of a difference. They are all computers connected over the same networks :) So the distinction is kind of moot.

    Most of the time this distinction is more meaningful when talking about the client/rendering side because you need to keep in mind the limited cpu/gpu resources.
    This is to say that 95% of the material you find in our documentation applies to any device, be it mobile, semi-mobile (laptops?) immobile :)

    Hope it helps
     
  19. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    With the end of 2018, in order to wish our Merry Christmas and Happy New Year to all our customers and friends, we're happy to announce an amazing 25% discount promotion on all SmartFoxServer 2X perpetual licenses and add-ons! The promotion begins on Dec. 17th 2018 and will last until the end of the year.
     
    Last edited: Dec 31, 2018
  20. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    To celebrate the New Year we are extending the Christmas promotion until January 15th., offering a 25% discount on all SmartFoxServer 2X perpetual licenses and related add-ons.

    Best wishes for a Happy New Year!
     
    Last edited: Jan 16, 2019
  21. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    We just published a new distribution of the C# API (1.7.11a) which now includes API documentation xml, to show the methods descriptions in Visual Studio during code autocompletion.
    You can get the updated API at this url: https://www.smartfoxserver.com/download/sfs2x#p=client
     
  22. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    In the latest article on our blog, we take a quick tour of the fundamental changes that Java releases 9 through 11 have introduced, their implications for development, deployment and how SmartFoxServer 2X will move forward in relation to the new and faster cycles of Java releases.

    You can read the article here:
    https://smartfoxserver.com/blog/java-9-to-11-and-smartfoxserver-2x/
     
  23. posibillian_tech

    posibillian_tech

    Joined:
    Jan 31, 2017
    Posts:
    12
    Is there a way to have this in java?
     
  24. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    Do you mean for the client API or the server API?
     
  25. posibillian_tech

    posibillian_tech

    Joined:
    Jan 31, 2017
    Posts:
    12
    For the server API, currently there is no documentation inside the IDE as far as I know.
     
  26. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    This is a little more complex than the same for the client API, but we will look into it for the next release. Thanks.
     
    posibillian_tech likes this.
  27. AliAnkara

    AliAnkara

    Joined:
    Dec 17, 2017
    Posts:
    7
    Each game developer wants a cost effective and high quality server.
    How do you think the highest quality server is my SmartFoxServer 2X?
    is the best price for my SmartFoxServer 2X?
    Is 100 users free? for SmartFoxServer 2X
    How is the future for SmartFoxServer 2X?
     
  28. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    Hi,
    I am not sure what you mean by that? Can you rephrase your question?
    You did not mention any prices, so I am not sure what you're referring to... care to expand on this?
    Yes it is, with all the features of the commercial license and with no time limits. We just require that you add a "powered by SmartFoxServer 2X" in your game opening screen, and you're good to go.

    You mean what are our development plans? We're constantly supporting the server (and related APIs) with updates and new features and right now we're working on some new exciting idea that will be released during the year.

    Hope it helps
     
    Last edited: Jan 31, 2019
  29. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    posibillian_tech likes this.
  30. posibillian_tech

    posibillian_tech

    Joined:
    Jan 31, 2017
    Posts:
    12
  31. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    posibillian_tech likes this.
  32. posibillian_tech

    posibillian_tech

    Joined:
    Jan 31, 2017
    Posts:
    12
    Thanks!
     
  33. dio85

    dio85

    Joined:
    Apr 22, 2017
    Posts:
    3
    Any plan for Login scene example? (client and server side) Thanks the answer and sorry my bad english language.
     
  34. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    All our examples show how to implement the client-side login. In particular the Tris examples uses a dedicated scene.

    For the server-side part (which includes access credentials custom validation - for example against a database), you can refer to this tutorial: https://smartfoxserver.com/blog/how-to-create-an-extension-based-custom-login/

    This can be useful tool: http://docs2x.smartfoxserver.com/ExtensionsJava/login-assistant
     
  35. dio85

    dio85

    Joined:
    Apr 22, 2017
    Posts:
    3
    Ohh Thanks! :)
     
  36. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
  37. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
  38. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    Starting from April 2019 and until the end of the month we're offering a 40% discount on all old SmartFoxServer PRO licenses when converted to SmartFoxServer 2X.

    In other words, you can convert an old 1.x license and get 40% off of any new SmartFoxServer 2X licenses.

    In order to get the discount make sure to consult our license conversion page and follow the simple procedure.
     
  39. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    HeadClot88 likes this.
  40. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    We just released v1.7.12 of the SFS2X C# client API for Unity / .Net / Mono / Universal Windows Platform.
    This new version fixes a possible concurrency issue in Room, User and Buddy Variables collections.

    You can download the API at this url: https://www.smartfoxserver.com/download/sfs2x#p=client

    NOTE
    We decided to port the fix to the latest version of the API still supporting .NET 2.0 compatibility too.
    You will find API v1.7.8.1 on the same download page linked above.
     
  41. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    Tiny-Tree likes this.
  42. TomWoodberry2

    TomWoodberry2

    Joined:
    Apr 8, 2013
    Posts:
    2
    Hi,
    I'm leaning heavily towards using SmartFox for my unity project but I have one question concerning pricing that I can't wrap my head around when it comes to network services in general.

    I want to distribute a server with my game so that the users can host their own dedicated servers. Would each server have their own licence and CCU count, or would they be registered to the game id and add up to a total CCU?
     
  43. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    Hi. You can freely distribute SmartFoxServer 2X Community Edition with your game, provided that you show a readable "Powered by SmartFoxServer" notice in your game screen, as per CE requirement. In case your users need to host games with more than 100 CCU (the user limit for the Community Edition), they can contact us to get a commercial license for their server.
     
  44. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,315
    can we mix licenses? for example one master server with unlimited licenses, but area simulation servers use 100 ccu ?
     
  45. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    Sure. And if you have a "master server" with its own license, you are not required to show our logo even if you are also using a number of Community Edition (100 ccu) servers.
     
  46. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    We are receiving a lot of love from Voltaic Island Games. Thank you guys!
    You can follow the development of Wayward Vale on their Twitter account: https://www.twitter.com/voltaicisland

    Schermata 2019-06-06 alle 11.27.22.png
    Schermata 2019-06-06 alle 11.27.09.png
     
  47. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    The new version 2.13.6 of SmartFoxServer 2X is available for download at this url:
    https://www.smartfoxserver.com/download/sfs2x#p=updates

    What's new?
    - Patched an issue in Jetty websockets causing potential native memory leaks
    - New geolocalization database
    - Added new AdminTool's Servlet Manager module to upload and manage Jetty servlets
    - Added new feature in AdminTool's Server Configurator to upload SSL certificates
    - Added support for "X-Forwarded-For" header for websocket/BlueBox to detect IP of clients behind a proxy

    The new version of the standalone version of the SFS2X AdminTool is available at this url:
    https://www.smartfoxserver.com/download/sfs2x#p=extras
     
    Last edited: Jun 18, 2019
    Tiny-Tree likes this.
  48. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    For those who use it, we just opened a channel on the Discord's Baas/MPlayer GameDevs server.
    This is a permanent invitation to join: https://discord.gg/4k2KDPw
     
  49. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281
    Packet loss is a potential issue for multiplayer games and recognizing it earlier rather than later can be very helpful in making a game more enjoyable, especially for players with sub-optimal connections.

    In the latest article on our blog we’re exploring the different types of packet loss, how to identify the issue and how to solve it when it appears:
    https://smartfoxserver.com/blog/understanding-packet-loss/
     
  50. g_a_p

    g_a_p

    Joined:
    Mar 16, 2015
    Posts:
    281