Realtime multiplayer games have been around for over four decades, even though their popularity is a much more recent phenomenon, and they remain one of the trickiest type of games to develop. Delivering a smooth and responsive action for the players while hiding the latency and limitations of the network is still a major source of coding pain.
Also many games heavily rely on physics to add extra realism and interesting mechanics which in turn adds more complexity to make sure that all players are accurately in synch with each other.
With the emergence of powerful 3D engines such as Unreal and Unity these complex features have been integrated with the visual and rendering systems, hiding the intricacies of physics simulations and networking, and making it more accessible to all developers.
In this article we’re going to take a deep look at the available solutions for multiplayer action games, explore different architectures and examine the multiplayer side of engines such as Unity.
For each method we’ll discuss the pros and cons and finally we’ll propose an integration with SmartFoxServer 2X that we think provides the best of both worlds. Continue reading
We have a strategy game for which we built native client apps in Android, iOS and HTML5. We are also exposing the client functionality as a rest api for apps to be built for Amazon Alexa and Google Assistant. That rest api is being built on Node.js and we want to consume the same services hosted on SFS2X, so that we can manage all the platforms from the same server base and provide unified experience.
Starting from this new version, we completely reviewed the build process of the API.
This fixes some compatibility issues of the internal third-party libraries with module bundlers (like webpack) and also brings:
- reduced API file size (-41%)
- a source map to help debug the API, should unexpected issues show up in the future
- the official SFS2X API package for the npm package builder
- Node.js compatibility
As always, the new package is available on the download page of our website (other than in the npm repository, from now on).
In order to showcase the usage of the API with npm and webpack, we also released a variant Connector example describing the project setup and build process, including the new source mapping option.
We have just released a new client side API update across all supported platforms, ironing out a few bugs that were reported recently.
In particular we have solved an issue whereby reconnecting an encrypted session would cause a server side error and fail to reconnect.
Make sure to check our client API section of the website to read the release notes and download the updates.
With the release of patch 2.13.1 SmartFoxServer 2X adds support for lambda expressions in Java Extensions. Also we have added support for this new JDK 8 feature in the Java client API, starting from release 1.7.1
If you’re not familiar with lambda expressions we highly recommend to take a look at our introductory article where we illustrate the basics and show how to integrate the feature in your server side code.
In this new article we will focus on the client side of things but, before getting started, make sure you are already using the JDK 8 (or later) and the SFS2X Java API 1.7.1 (or higher) Continue reading
With the release of patch 2.13.1 SmartFoxServer 2X adds support for functional Java and lambdas in server side Extensions. In this article we’re going to take a closer look at how we can use lambdas in our server side code. Continue reading
We’ve just released the new SmartFoxServer 2X update 2.13.1
The release provides security fixes for a third party library, support for Java 8 lambdas in server side code and performance improvements.
You can read the full release notes and download the update at this page.
In the last blog post we talked about what happens behind the scenes when we pull the ethernet cable or shut down the wifi network, and why this isn’t a reliable way to test a “sudden disconnection” scenario.
In this new article we’ll continue our journey “behind the scenes” taking a look at mobile devices and in particular at how to correctly handle the switch between networks, such as WiFi, 3G and 4G. Continue reading
In this brief article we’re going to take a look at what really happens when we shut down a device’s wifi or unplug the ethernet cable off of a computer. While intuitively one would expect the current connections to go down, this is likely not the case.
We are going to see why this happens and clarify a few misconceptions that arise when testing disconnection scenarios in a multiplayer game. Continue reading
A recent discussion on our support forum brought up the struggle of sending enough details to the log files when an Exception is caught on the server side. In this article we provide a few options to improve error reporting in your Extensions and avoid those puzzling, single-line errors. Continue reading