Skip to main content

Regions

warning

This experimental feature requires the regionAffinity flag to be enabled. If not enabled, nothing written on this page will apply. Easel will continue with its existing behavior which is to match players to any other player in the world.

When players are too far away from each other, they will experience long delays between when they press a button and when the action happens on the screen. This is called latency. When there is high latency, the game feels unresponsive. Easel automatically matches players to other players that are close to them in order to reduce latency, and give players the best experience possible.

Regions

In Easel, each continent is a region:

  • North America
  • South America
  • Europe
  • Africa
  • Asia
  • Oceania
  • Antarctica

Neighboring regions

By default, players are matched to other players not just in their home regions, but also nearby players in neighboring regions. This is useful because it makes it more likely that players will be able to find a game quickly even when there are not many players online. For example, a player in New York (North America) may be matched to players in São Paulo (South America) or Paris (Europe). See the Example matchups section below for more examples.

tip

Easel is unusually good at intercontinental multiplayer games. This is because its peer-to-peer rollback netcode can act as if the server is in the middle of the ocean, something which is normally geographically impossible. In these situations, players experience half the latency that they would normally experience. See Why Easel halves the latency for more information.

Spanning more than 2 regions

Easel's networking model is like there is a virtual server at the midpoint between all players. Sometimes, it is like the virtual server is in the middle of the ocean.

If a North America player and Europe player are in the same game, it is like the server is halfway between them in the Atlantic ocean. When this happens, Oceania or Asia players will be unable to join the game because they are too far away from the virtual server, even if they normally might be able to play with the North America player had the Europe player not been there.

In general, Easel will not match players to other players in more than 2 regions as the latency would be too high.

Which players are considered nearby

Players may be matched to other players in neighboring regions if we expect them to achieve a network latency of 80ms or less. Rollback netcode should be able to erase some of this network latency, and so players should experience 60ms input latency in most cases when playing with other players in neighboring regions.

info

We have hand-configured which countries and states are considered to be close enough to be matched together. As Easel is still new, we are still collecting data and will continue to improve our configuration over time.

Disabling neighboring regions

Matching players to neighboring regions increases the number of players that can be matched to each other, but also increases the latency of the game. If you would like to turn this off, change the home parameter in network.toml to continent instead of its default continentPlusNeighbors. This may be appropriate if your game is mostly a single player game, and it is better to prioritize latency over finding other players.

Roaming

A player can enable Roaming Mode to play with players from other regions.

User-enabled roaming

Use a RoamingToggle, a RoamIntent or RoamingDialogIntent to provide your players the option to enable roaming.

The simplest and recommended method is to simply add a RoamingToggle element to your Toolbar. This will add a toolbar button that, when clicked, asks the player whether they would like to switch to roaming mode. The popup dialog lists how many players are online, and explains that latency may be higher when roaming, so that the player can make an informed decision.

pub page fn owner.HomePage {
Toolbar {
RoamingToggle
}
}

Default roaming mode

You can change the default roaming state of your players using the roam parameter in network.toml.

warning

Setting roam = true in network.toml will mean players on the other side of the world will be matched with each other. They will experience a lot of lag, and so this is not recommended.

Latency for the roaming player

When a player in Roaming Mode is matched to another player that is normally too far away from them, all the extra lag will be assigned to the roaming player. Effectively, they are given no votes over location of the virtual server, and so the non-roaming players will not notice any extra lag.

If all players in the game are in Roaming Mode, then the lag will be shared equally between all players, as if there is a server at the exact midpoint between all players.

Parties

Players can create parties to play with only their invited friends (see PartyIntent). When players are in a party, all players are set to Roaming Mode by default so that they will always be able to find each other.

Example matchups

North America

A player in New York, USA will be matched with:

  • Other players in North America
  • Players on the northern side of South America, including Brazil
  • Players throughout most of Europe, including the UK, France, Germany, Poland and Ukraine

A player in San Francisco, USA will be matched with:

  • Other players in North America
  • Players on the northern side of South America, including Brazil
  • Players on the western side of Europe, including the UK, France and Spain
  • Players on the eastern side of Asia, including Japan and Korea
  • Players from Oceania, including Australia and New Zealand

South America

A player in São Paulo, Brazil will be matched with:

  • Other players in South America
  • Players on the southern side of North America, including the USA and Mexico but not Canada

A player in Santiago, Chile will be matched with:

  • Other players in South America only

Europe

A player in Paris, France will be matched with:

  • Other players in Europe
  • Players on the northern side of Africa, including Algeria and Egypt
  • Players across most parts of North America all the way up to the west coast, including San Francisco

A player in Kyiv, Ukraine will be matched with:

  • Other players in Europe
  • Players on the western side of Asia, including the UAE
  • Players on the northern side of Africa, including Algeria and Egypt
  • Players on the eastern side of North America, including New York

Asia

A player in Seoul, Korea will be matched with:

  • Other players in Asia
  • Players on the western side of North America, including San Francisco
  • Players in Oceania, including Australia and New Zealand

A player in Dubai, UAE will be matched with:

  • Other players in Asia
  • Players on the eastern side of Europe, including the Poland and Ukraine
  • Players on the northern side of Africa, including Algeria and Egypt

Africa

A player in Cairo, Egypt will be matched with:

  • Other players in Africa
  • Players in Europe, including the France, Germany, Poland and Ukraine
  • Players on the western side of Asia, including the UAE

A player in Johannesburg, South Africa will be matched with:

  • Other players in Africa only

Oceania

A player in Sydney, Australia will be matched with:

  • Other players in Oceania
  • Players on the eastern side of Asia, including Japan and Korea
  • Players on the western side of North America, including San Francisco