SmartFoxServer 2X

Introduction

SmartFoxServer 2X (aka SFS2X) takes the core SmartFoxServer philosophy established by the Basic and Pro editions and expands it in new directions, introducing hundreds of improvements and focusing on a few precise goals: simplicity of use, versatility and performance.

  • Simplicity of use: all unnecessary complexities of previous versions of SmartFoxServer have been cleaned up, making the client/server API more intuitive, streamlined and richer.
  • Versatility: most parts of the architecture have been re-designed to make it largely more flexible. In turn this helps developers to design their applications more conveniently and with a finer-grained level of control.
  • Performance: SmartFoxServer is known for its top-notch performance. SFS2X continues this trend employing version 3.0 of its custom network engine (codename: BitSwarm) which provides binary protocol with dynamic compression, UDP support, JMX monitoring, HRC system for transparent reconnections, high performance http-tunneling and heaps more. It’s also been benchmarked against well known all-purpose socket engines (Mina and Netty) showing top performance under all conditions.

Features

In over 6 years of experience with SmartFoxServer Basic and Pro we have learned from hundreds of customers all over the world how they use our product and what they need to create engaging applications, games and virtual worlds.

The SmartFoxServer 2X platform builds on top of this huge experience, providing one of the most versatile, extensible and feature-rich platform for massive multiplayer development.

For a description of the basic features please refer to the SmartFoxServer Pro page and the comparison table. In the next tables instead you fill find a summary of the most interesting improvements and innovations that have been included in SFS2X, divided into: Server core features, Platform features and Client API features.

Server core features

Fully multi-platform Runs on Windows (32/64bit), Linux (32/64bit) and other Unix-based variants.
Visual config and management Full visual configuration done through the Administration Tool (aka AdminTool) which also provides advanced realtime statistics, runtime Zone/Room/User management, Ban management and lots more. The AdminTool also offers a modular architecture allowing the integration of third party modules.
High performance network engine BitSwarm is version 3.0 of our ultra-light, high performance TCP/UDP socket engine providing unique features for multiplayer games:
  • highly scalable non-blocking design which beats most of the all-purpose socket engines in both stability and performance
  • further improved architecture and performance with lightweight memory footprint
  • low latency and minimized unnecessary buffer/memory copy
  • core support for Non-Player Characters (NPC) at Session level (socket-less)
  • pluggable Dropped Packet Policy manager
  • configurable threading model
  • high performance HTTP tunneling for clients unable to establish socket connections (using our proprietary BlueBox technology)
  • transparent re-connection system which allows sessions to transparently reconnect to the application without loosing their state after and abrupt disconnection
Highly efficient protocol Binary protocol providing major improvements in server and network performance, delivering an average of 5x in encoding times and 6x in packet size reduction with respect to SmartFoxServer Pro.
Protocol cryptography All communications can be protected with standard TLS protocol.
Enhanced security Many security features already built-in:
  • login data is always transmitted via secure login mechanism to avoid password detection at the socket level
  • the Permission Manager allows to create any number of user profiles that allow different clients to access only a portion of the server features according to your custom rules
  • the Anti Flood filter protects the server from flooding attacks and offers a fine grained configuration for each possible server request
  • the Words filter supports regular expressions and white-list/black-list modes, offering a very flexible tool to filter profanities; the filter can be applied to public/private messages, room and user names and accessed via simple API from server side code. It also provides events for logging and further customizations
  • an advanced banning system provides tools for manual and automatic banning, persistence and fine-grained settings for each banned user
  • IP filtering allows to control the maximum number of sockets coming from the same IP address
Painless dependency management Any additional Java dependency (database drivers, development libraries, etc) can be deployed in a snap without messing with the classpath. Just drop the files in the right folder and you are ready to go.
Effortless deployment Whether you deploy in the cloud or on a regular server, the setup process is simplified by the unified installer supporting all 32/64bit architectures and providing installation of the software as a service.
BlueBox 2.0 Enhanced and fully integrated BlueBox technology offers unbeatable performance for HTTP tunneling, providing connectivity to all those clients behind restricted network conditions.
Outstanding stability We strive to provide the best balance between performance and rock-solid reliability. The server engine has been stress tested for thousand of hours under high pressure including crushing traffic, unreal request load, bandwidth and resource constraints, unstable networks with high packet loss, flooding attacks and more.

Platform features

Rich client-server framework Rich client and server framework with dozens of functionalities out-of-the-box: Session management, Room management, chatting, advanced lobby and Game Matching features, persistent Buddy Lists, moderation, server Variables and lots more.
Fully extensible Plug your Java server-side code to create complex interactions, advanced game logic, custom credentials checks and tons more. Server-side Extensions are the most powerful tool at your disposal to build your application, from a simple turn-based game to a massive virtual world or a fast real-time action game. Additionally you can use JavaScript language to code your Extensions.
Business data analysis The advanced reporting console called Analytics allows you to dive into usage data of your multiplayer game / multiuser application.
Built around a number of metrics which mimic the classic website usage metrics (visits, unique visitors, etc) and new metrics specifically designed for multiuser environments, Analytics offers an unmatched view over your business, providing an insight into SmartFoxServer 2X usage from a demographical, technological and applicative perspective.
Vastly improved Zone architecture Enhanced Zone configuration, Room Groups, improved Room management, fine-grained event configuration, security filters integration and lots more.
Enhanced Room features Rooms support renaming, locking, resizing, hiding and more.
Game API A dedicated set of API provides powerful tools for match-making, game invitations and challenges, public and private games, custom player and game searches based on any numbers of custom parameters and tons more.
MMO API A dedicated set of API extends the functionality of regular Rooms by adding an Area of Interest (AoI in short) to determine the spatial range of the events that will be received by users. The AoI parameter represents the area within which users will affect each other, for example when sending public messages, updating User Variables, etc.
A "proximity list" substitutes the regular user list on the client side, optimizing the number of updates that the user receives and making it the perfect tool to create large Massive Multiplayer Online worlds.
BuddyList 3.0 The Buddy List system provides rich server-side events, pluggable persistence, temporary buddies, online/offline status, nicknames, buddy messages and more, to easily integrate messenger-like functionalities in any application or game.
High-Resilient-Connections (HRC) System The HRC system provides transparent reconnection to unstable client connections allowing players to re-enter a game without losing their state. Indispensable for any betting or contest-based game.
Redesigned Java Extension API Vastly improved, simplified and better organized server-side framework with respect to SmartFoxServer Pro, including:
  • new server events
  • simplified development flow and deployment cycles
  • hot-redeploy of Java Extensions (no server restart needed)
  • simplified Class Loader management
  • simplified classpath management (auto-detection of jar files, no need to mess with the core classpath)
Match Expression Engine Clients and server can execute complex queries on users and Rooms in order to extract very specific items. Matching expressions are chain-able and easily built using a natural syntax that mimicks programming languages.
SFSObject/SFSArray Highly flexible data structures used throughout the framework, they represent the client/server message contents at a high level. Additionally they allow to finely tune how each bit of data is encoded at the wire level, providing support for 20 different data types.
Server Variables Room Variables, User Variables and Buddy Variables allow to keep custom state for each entity on the server providing auto-updates to the interested clients. New advanced capabilities have been added such as the use of nested objects, global Room Variables and server-only Variables.
Database integration Unique and simplified way of accessing data sources based on the ODBC and JDBC standards including configurable connection pooling.
Localized error messages Multi-language support for error-messages. All error messages are code-based. We provide English based description of each error and developers can add their own translations.
Logging and reporting Improved exception reporting with friendly messages and verbose description of issues. The use of Log4J allows improved flexibility and provides tools for log analysis even from a remote location.

Client API features

Truly multi-platform SmartFoxServer 2X supports all major web-based and mobile technologies with a set of consistent API, allowing to create real multi-device access to your games and virtual worlds. Support includes:
  • Unity (standalone, iOS, Android, WebGL, Universal Windows Platform publishing)
  • Godot Mono (standalone publishing)
  • HTML5
  • iOS devices
  • tvOS devices
  • Android and Java2 SE/EE
  • Universal Windows Platform
  • .Net/Mono
  • MacOS
  • Flash platform (Flash/Flex/AIR)
  • C++
High level functionalities The API hide all the low-level networking details, packet serialization, etc, providing very high level tools to the developer. Creating a Room, launching a game, starting a private chat, managing the buddy list, etc, are all performed in a few lines of code, without getting in the way of your application logic.
Largely improved Room management Room management has been improved under many aspects with respect to the other SmartFoxServer editions:
  • better Room List management; the room list is now obtained at login time, eliminating an extra call to the server for the room list
  • clients do not need to be in a Room to interact with the server anymore
  • Rooms not managed by the local Room Manager can now be joined by just knowing one of their IDs (room id or name)
  • ability to hide Rooms thanks to the isHidden flag
  • Room Variables can be seen from outside the parent Room by setting the isGlobal flag
  • the client can subscribe/unsubscribe to specific Room Groups to avoid listening for too many Room events
Advanced connection events Dedicated events signal a temporary disconnection and related successful re-connection to the server. This allows the developer to know when the HRC system is performing the transparent auto-reconnection and freeze their game logic or provide feedback to the user accordingly.
Disconnection reasons The API are aware of various reasons of a disconnection and inform the user accordingly.
Simplified workflow Simplified workflow and improved architecture allow faster development and easier coding.
Top

Client API

Applications and games interact with SmartFoxServer very easily and securely through a set of client APIs which "speak" the SFS2X protocol. Launching a new game, interacting with friends in the buddy-list or moderating a chat is a matter of a few method calls. Additionally the client can access all the extra functionalities exposed by the custom server-side Extensions, offering a limitless set of possibilities.

The client APIs also provide a consistent framework across all supported platforms, making it very easy to create multiple clients in Unity, HTML5, iOS and Android devices, Flash, etc, all interacting one with each other if needed.

 

The following table shows all the supported platforms and languages.

API language

Platform

C# Java Objective C JavaScript ActionScript 3 C++
Unity
Standalone
         
HTML5        
Godot
Standalone
         
iOS
iPhone
iPad
iPod Touch
   
Android    
Unreal Engine          
Java2 SE          
Mac OS X      
tvOS
AppleTV
       
Flash
Web player
Standalone
         
Universal Windows Platform
Windows 8.1
Windows 10
Windows Phone 8.1
Windows 10 Mobile
         
.Net / Mono          
  Others (*)      

= native | = Unity publishing | = Adobe Air publishing
(*) APIs behavior with other platforms (PlayStation, XBox, Switch, etc) not tested directly.

Top

Licensing

The SmartFoxServer 2X licensing system is based on the number of concurrent users (CCU) allowed to connect to the server. We start from the free Community Edition allowing 100 CCU, up to the Unlimited Users version.

Community Edition

SmartFoxServer 2X Community Edition is the ideal tool for anyone to evaluate and get started with one of the most sophisticated multiplayer frameworks available.

Developers, indie game studios, students, educational institutes... anyone can enjoy developing for free with SFS2X. The Community Edition is full-featured and you will be able to evaluate it as long as you wish, develop your own projects and put them in production at no additional cost.

Important: the Community Edition can be used in both non-profit and commercial projects provided that you show a readable "Powered by SmartFoxServer" notice in your main screen or application GUI.

You can get SFS2X CE directly from the download page.

Commercial licenses

In case you need more than 100 users to connect at the same time, or if you just want to remove the "Powered by" notice from the CE version, you can choose among very affordable commercial licenses for all project sizes and with a friendly upgrade fee.

Please visit the Buy page for additional information.

Resources

DownloadGet SmartFoxServer 2X Community Edition, examples, add-ons and more
DocumentationAccess the SmartFoxServer 2X extensive documentation set which includes more than 50 articles and examples illustrating all the technical details of the server: features, architecture, API usage, configuration, tuning, etc
SupportEnter our support forums, where we provide answers to questions and technical problems; you can also request new features or enhancements to already existing functionalities, or simply contribute to our active community
ShowcaseVisit a small portion of the hundreds of projects built on top of the SmartFoxServer platform by our customers
BuyPurchase the retail license that better fits your needs in terms of concurrent users and additional options
Top