Multiplayer Chess

Playing chess online with friends is fun, but if you have any difficulties, find your answers right here.

Why do I need the newest version to play in online multiplayer?

We are continuously improving SparkChess in all its areas: the AI chess engine, the multiplayer service, the user interface, additional tools and so on.

The multiplayer service is particularly sensitive because of the complex interactions and also because a small number of players will always try to cheat their way into the leaderboards.

Whenever we update the multiplayer functionality, we need to consider how two players with different versions will interact. To give you a very simple example, if one player has Chat capability but the other doesn’t, what do we do? Do we let the chat-enabled player send messages to the other one, even though those messages will never be received?

Most cases are more difficult, for example when a move needs to be resent due to a client disconnect.  Even more complicated, when we discover a way to stop cheaters, we may need to effectively ban all old versions.

We try to keep these breaking changes to a minimum and even then we give a few months of transition period, but we can’t support old versions indefinitely.

Why did the game end unexpectedly?

Multiplayer games may end unexpectedly due to connection issues on your – or your opponent’s – side.

The multiplayer service has an uptime of 99.99%. On any day, about 10,000 people connect and anywhere from 30,000 to 50,000 games are being played. Frustrating as it may be, only an insignificant number of them end unexpectedly.

In general, a game will end abruptly when one player can communicate correctly with the server but their opponent can’t.  Unlike real-time FPS multiplayer games for example, chess cannot be fault tolerant. In a real-time game one player may miss one or more updates from the server and still keep playing (often the player sees the enemy “jump” from one place to another). But as chess is turn-based, players must be in perfect sync – one player can’t just move twice or ignore a non-responsive opponent!

A player may miss a server move due to many reasons: a bad internet connection or a browser bug are just some of the culprits. For example, Google Chrome can ignore a move received from the server if the browser tab is not active. Or a player may not be connected to the internet and not realize it as the system still reports it as being up.

If a player is disconnected, the SparkChess Multiplayer Service will attempt to reconnect automatically and resend any move that might have been missed, but this must be done within a certain time window as the opponent can’t wait indefinitely.

If you receive a message that the game is out-of-sync and it has ended, it usually means that there was a miscommunication between you, the multiplayer service and your opponent. Since version 10.8.7 we made sure you don’t lose any points in this case. In version 11.2.6 we further decreased the chances of an Out-of-Sync to negligible values.

If you lost any points due to a game ending unexpectedly, please contact us mentioning your username, your opponent’s username, the date & time the match took place and the number of points you lost.

Why did the game end unexpectedly in draw?

A game may end unexpectedly in Draw if your opponent is unresponsive and, despite being online, did not receive the move in time (you should see the message “Sending Move” for some time before this happens). A player can be unresponsive for many reasons, including a network issue on their side or an old device.

The Multiplayer service cannot “punish” your opponent by declaring you the winner. If you are unhappy with the result, please contact us mentioning your username, your opponent’s username, the date & time the match took place and the number of points you lost.

Can I play correspondence chess?

SparkChess was designed for quick games. Few players have the patience for correspondence chess and there were very few requests for us to add this. If you think we should support correspondence chess, please contact us.

What is the meaning of the Connection Quality icons?

We have added Connection Quality Indicators for the multiplayer service. They are shown at the bottom of the Invitation Window.

They look like this:

SparkChess Multiplayer Connection Quality Indicator

From left to right, here’s what the icons mean:

  1. The bars show the network latency (also known as “ping time” or “round-trip time”), which means the amount of time needed for information to travel from your device to the SparkChess multiplayer servers and back. 4 green bars indicate a fast and stable network connection, while 1 red bar shows a slow and potentially unstable one. The number of bars you get depend on your physical location (users in North America are more likely to get 4 bars) and connection type. A laptop Ethernet connection will always be faster and more stable than a slow 2G cellular one.
  2. The Socket icon indicates whether your connection is through a web socket or by HTTP fallback. A green socket connection indicator means there’s a dedicated communication channel open between your device and the SparkChess multiplayer server. They are very fast but if the connection breaks due to your internet connection, you may get quickly disconnected from the server. HTTP fallback is much slower; it may not be affected by intermittent issues but this also means it may not detect immediately when your network is down. 93% of the connections to SparkChess are made via socket connections. HTTP fallback is used only if, due to peculiarities of your network, a socket connection cannot be established. As of SparkChess 11, all connections should be via sockets. We removed the HTTP fallback as it could cause unexpected issues with slow clients.
  3. The Lock icon indicates an encrypted connection. If you play SparkChess online through a secure HTTPS connection, the connection to the multiplayer server is required to be SSL-encrypted as well. As of SparkChess 11, encryption is always enabled.

How does filtering work in multiplayer?

Because the number of available players is changing constantly, Full Version owners may filter the Invitation list based on their preferences.

Currently the following filters are available:

  • by score: with this filter enabled, only players within 10% of your score will be shown. So if you have 1000 points, you’ll see only players with at least 900 points and at most 1100 points.
  • by subnet: The filtering is done by IP address. Only players with IP addresses from your “virtual neighborhood” are shown (technically speaking it’s a Class-C subnet). This usually means only players from the same building or block, although it depends on your Internet provider. This mode is perfect when you want to play with a coworker or at home with another person in the same house.
  • by country: only players determined to be in the same country as you are shown. This method may not be always available. Players who’ve just created accounts may not have their country determined yet.

We should mention that your location (both the IP and the country) are safe. Another player cannot learn your location.