SmartFoxServer 2X v2.10.0 is out!

ssl-image

SmartFoxServer 2X v2.10.0 is out, providing protocol encryption for all TCP and UDP communications. The secure connection uses the standard TLS protocol with X.509 certificates for counterparty authentication and AES 128-bit symmetric encryption for data exchange.

The release comes as a cumulative patch (requires SFS2X 2.9.x) and also provides a series of fixes and additions as discussed in the past months in the support forums.

The update comes with new client API for ActionScript 3, C#/Unity and Java/Android (encryption support for C++ and Objective-C clients, will be available in the next few weeks).

You can read the full release notes and download the patch from this page.

The importance of ping times

In this brief article we will take a look at the simple concept of “ping times” and how we can use it in our multiplayer games to improve the user’s experience.

The connection speed is the single most important key element in an online game as it affects the whole experience. Being able to detect slow downs and “hiccups” could help removing some of the frustration when the client’s network is not behaving as expected. Also, being able to signal critical network issues could help the final user improve their game performance. Continue reading →

SmartFoxServer Pro to 2X Promo

50offAre you interested in moving your multiplayer game based on the older SmartFoxServer Pro to the more advanced and feature-rich SmartFoxServer 2X, but you don’t want to waste your existing license/s?

Until May 10th 2015 our special promotion allows you to convert to SmartFoxServer 2X by taking advantage of a 50% discount on its retail price.

And if you want to convert three or more licenses you get an additional 10% volume discount. Read all the details on this page!

Using the trace(…) command from anywhere in your Extension code

The trace(…) method is a useful little tool to log any information in the log files for debugging your Extension code.

It is available in the main Extension class and in every Request or Event handler. However, often times, developers need to log messages from other places in their code such as data classes, or any other object that doesn’t extend the Request/Event base classes.

How can we call trace(…) from somewhere else? Continue reading →

Building a simple stress test tool

One of the questions that often pops up in our forums is “how do I run a stress test on my game”?

There are several ways in which this can be done. A simple way to stress test your server side Extension is to build a client application that acts as a player, essentially a “bot”, which can be replicated several hundreds or thousands of times to simulate a large amount of clients. Continue reading →

The singleton solution

One of the questions that often gets asked in our support forums is something along the lines of “How do I create a singleton class where to store data that is global among all Extensions?”

singleton

This is a relatively complex subject in SmartFoxServer because each Extension is loaded in a separate Class Loader, thus making it more difficult to create a singleton that can be shared.

If you’re not entirely familiar with how Extension loading works you can consult this article for a quick overview. Part of these rules are essentially inherited from the Java Virtual Machine (JVM) architecture and, even if they might seem a bit convoluted, they help with reloading new code at runtime without stopping or restarting the server.

There is however a simple deployment trick that can be employed. Using the extensions/__lib__/ folder we can deploy a jar file with one or multiple classes that will be accessible from any Extension, even throughout multiple reloads.

In other words this will not change the way in which you deploy your Extension in SmartFoxServer 2X, however you will need to export the Singleton class(es) to a separate jar file that will be deployed to –> extensions/__lib__/

From a coding point of view nothing changes, which means that you don’t need to create a different project for your Singleton(s). You can keep them with your main Extension project and just deploy them differently, as described. Most Java IDEs will allow you to export a number of selected classes to a specific jar file, which can then be deployed as we have discussed.

Decoding DAU, MAU and CCU

In this article we will try to demystify several acronyms related to online traffic that are commonly found in the multiplayer/online lingo, but are usually not well understood.

Even without knowing anything about online gaming many of us are familiar with concepts such as “unique visits”, “daily visits” etc… which represent different metrics of online activity, typically in the context of a website traffic.

More recently, especially since the inception of social networking and online gaming, we have seen new acronyms being used such as DAU (daily active users), MAU (monthly active users) and CCU (concurrent users). But how exactly are these values calculated?, What do the represent? And how do they translate between each other? Continue reading →