In this new installment we’re going to take a look at a list of tips to improve and optimize a SmartFoxServer 2X deployment.
The list is organized in several categories starting at the higher level of your application and proceeding towards the lower level setting of the server. Completing this process will help make a more secure and efficient deployment of your game server. Continue reading
In this article we are going to explore the integration between a website’s login and SmartFoxServer’s login system, to avoid asking the player his/her credentials twice.
The scenario we’re working with is the following:
- the player opens the game’s home page and logs in
- after some browsing he hits “Play”, the game loads and the user is presented with another login screen to access SmartFoxServer
The objective of the article is to hide this last step, integrating the website’s session with SmartFoxServer, without sacrificing the security aspects. Continue reading
This time we’re going to take a look at the top common errors and pitfalls that can be easily avoided when developing and deploying a multiplayer game with SmartFoxServer 2X. The list is compiled from a selection of topics that are quite popular in our support forums.
Knowing about these common pitfalls can possibly save you a significant amount of time and head scratching. Let’s see what they are.
Java 8 has been out for year now and it’s probably the most “radical” release of Java ever. With the new functional/lambda additions it feels almost like a new language.
SmartFoxServer 2.10 fully supports Java 8 but since it comes as a patch it still relies on the previous runtime (Java 7) coming with SFS 2.9
If you’re interested in taking advantage of the new Java 8 features for your server Extension code you can follow these simple steps:
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
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
Attaching an Extension at Room level is a convenient way to provide each game Room with its own logic. Different Rooms can use different code and manage their own game rules very conveniently. Continue reading
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?”
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.
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