Platform

Solutions

Resources

Company

Login

Start for Free

Automated & Distributed Game Server Orchestration on the World's Largest Public Edge Computing Infrastructure

Automated & Distributed Game Server Orchestration on the World's Largest Public Edge Computing Infrastructure

For Flawless Multiplayer

Near Zero Latency, Limitless Rapid-Scaling & Instant Global Deployments

Near Zero Latency, Limitless Rapid-Scaling & Instant Global Deployments

Near Zero Latency, Limitless Rapid-Scaling & Instant Global Deployments

+58%

+58%

Latency Reduction vs
Public Cloud

Latency Reduction vs
Public Cloud

550+

550+

Locations
Worldwide

Locations
Worldwide

Scaling &
Concurrent Players

~3s

Game Servers Deployment
to All Locations

0

Dev Ops Engineers to Manage your Backend

99.99%

Availability

+58%

Latency Reduction vs
Public Cloud

550+

Locations
Worldwide

Scaling &
Concurrent Players

~3s

Game Servers Deployment
to All Locations

0

Dev Ops Engineers to Manage your Backend

99.99%

Availability

+58%

Latency Reduction vs
Public Cloud

550+

Locations
Worldwide

Scaling &
Concurrent Players

~3s

Game Servers Deployment
to All Locations

0

Dev Ops Engineers to Manage your Backend

99.99%

Availability

How We Make It Possible

How We Make It Possible

Edgegap

Leading Competitor

Edgegap

Leading Competitor

Edgegap

Leading Competitor

Game Servers Deployed on the World's Most Distributed Network
Reduce Latency by 58% for your Game

Edgegap caches game servers to its distributed network of 550+ global locations across 17+ providers, 5x times more locations than its competitors.

On-demand & just-in-time, Edgegap's orchestration automatically deploys the ideal game server location nearest to players as to reduce latency by up to 58% and delivers up to 78% “real-time” latency (sub-50 ms) vs. traditional public cloud.

The 2022 Online Gaming Connectivity Report explores the current state of the online gaming ecosystem from the player’s perspective; how do the players experience connectivity and latency, and how do they react when issues occur.

Download Report

Download Report

Solutions for Every Project

Authoritative Servers

The ultimate level of control, quality and performance; ideal for competitive games or projects that require perfect player experience.

Distributed Relays

Flexible solution to match your multiplayer ambitions and improve from the limited, baseline peer-to-peer networking solution.

Flexible solution to match your multiplayer ambitions and improve from the limited, baseline peer-to-peer networking solution

Solutions for Every Project

Authoritative Servers

The ultimate level of control, quality and performance; ideal for competitive games or projects that require perfect player experience.

Distributed Relays

Flexible solution to match your multiplayer ambitions and improve from the limited, baseline peer-to-peer networking solution.

Automated Orchestration that Leverage the World's Most Distributed Edge Network

Fully Managed
Game Servers

Deploy Globally
in Seconds

Limitless
Scale

Edgegap manages the full lifecycle, including multi-cloud deployment, scaling as required, and closing sessions to make it easy for devs

Sub-3 seconds, on-demand deployment of game servers worldwide automatically - all regions, no ops required.

Designed to scale seamlessly, our orchestration handles any traffic volume through automation & rapid-scaling of 17+ providers.

Always Online: 99.99% Availability

Always Online: 99.99% Availability

Always Online: 99.99% Availability

Eliminate risks related to launch planning & server provisioning with automated, on-demand and instant rapid scaling across 17+ providers.

Eliminate risks related to launch planning & server provisioning with automated, on-demand and instant rapid scaling across 17+ providers.

Includes automated DDoS attack protection for total security & peace of mind

Includes automated DDoS attack protection for total security & peace of mind

Uptime

(Last 90 days)

API

100.00%

Console

100.00%

Overall uptime

100.00%

Last 24 hours

100.00%

Last 7 days

100.00%

Last 30 days

100.00%

Last 90 days

Compatible &
Cross-Platform

Compatible &
Cross-Platform

Edgegap’s platform is compatible with the game engine, netcode, game tools and services you use every day to make your game possible.

Python

import os

import requests
from dotenv import load_dotenv
from flask import Flask, request, jsonify

load_dotenv()

# Getting our settings from env
ARBITRIUM_TOKEN = os.getenv("ARBITRIUM_TOKEN")
APPLICATION = os.getenv("APPLICATION")
VERSION = os.getenv("VERSION")

app = Flask(__name__)


@app.route('/servers', methods=['POST'])
def start_server():
    # How you access the user's IP is unimportant for us, but you will need it to create a deployment.
    # Here the user sent its IP in the request to get the TODO application, along with its username. 
    # We will inject it into the environment variables of our deployment.
    data = request.get_json()
    ip = data.get("ip")
    username = data.get("username")

    headers = {
        "Content-Type": "application/json",
        "Authorization": ARBITRIUM_TOKEN
    }

    # Building request body from the API specifications (/v1/deploy)
    deployment_request = {
        # These are mandatory to create a deployment
        "app_name": APPLICATION,
        "version_name": VERSION,
        "ip_list": [
            ip
        ],
        # These are not mandatory, but recommended
        "env_vars": [
            {
                "key": "message",
                "value": f"Welcome {username} to your personal TODO application!"
            }
        ],
        # Arbitrium will make a POST request to this URL once the deployment container is accessible.
        "webhook_url": "https://your-api.com/webhooks"
    }

    # Sending the request to Arbitrium to create a deployment
    response = requests.post("https://api.edgegap.com/v1/deploy", json=deployment_request, headers=headers)
    
    # Getting the Request ID from our request
    request_id = response.json().get("request_id")

    # Sending the Request ID to our client. Not mandatory, but it can be helpful to retrieve the deployment.
    return jsonify({"request_id": request_id}), 200


@app.route('/webhooks', methods=['POST'])
def webhook_route():
    # Accessing the data we need to forward to our client.
    data = request.get_json()
    request_id = data.get("request_id")
    
    # This is the URL that our client needs to connect to access the TODO application online.
    # Port 3000 is the one we set in our Dockerfile and our version
    connection_url = data.get("ports", {}).get("3000", {}).get("link")

    connection_data = {
        "request_id": request_id,
        "connection_url": connection_url
    }

    # Notifying our client of the connection informations
    requests.post("https://your-route-to-notify-user-client.com", json=connection_data)

    return 204


if __name__ == '__main__':
    app.run()

Python

import os

import requests
from dotenv import load_dotenv
from flask import Flask, request, jsonify

load_dotenv()

# Getting our settings from env
ARBITRIUM_TOKEN = os.getenv("ARBITRIUM_TOKEN")
APPLICATION = os.getenv("APPLICATION")
VERSION = os.getenv("VERSION")

app = Flask(__name__)


@app.route('/servers', methods=['POST'])
def start_server():
    # How you access the user's IP is unimportant for us, but you will need it to create a deployment.
    # Here the user sent its IP in the request to get the TODO application, along with its username. 
    # We will inject it into the environment variables of our deployment.
    data = request.get_json()
    ip = data.get("ip")
    username = data.get("username")

    headers = {
        "Content-Type": "application/json",
        "Authorization": ARBITRIUM_TOKEN
    }

    # Building request body from the API specifications (/v1/deploy)
    deployment_request = {
        # These are mandatory to create a deployment
        "app_name": APPLICATION,
        "version_name": VERSION,
        "ip_list": [
            ip
        ],
        # These are not mandatory, but recommended
        "env_vars": [
            {
                "key": "message",
                "value": f"Welcome {username} to your personal TODO application!"
            }
        ],
        # Arbitrium will make a POST request to this URL once the deployment container is accessible.
        "webhook_url": "https://your-api.com/webhooks"
    }

    # Sending the request to Arbitrium to create a deployment
    response = requests.post("https://api.edgegap.com/v1/deploy", json=deployment_request, headers=headers)
    
    # Getting the Request ID from our request
    request_id = response.json().get("request_id")

    # Sending the Request ID to our client. Not mandatory, but it can be helpful to retrieve the deployment.
    return jsonify({"request_id": request_id}), 200


@app.route('/webhooks', methods=['POST'])
def webhook_route():
    # Accessing the data we need to forward to our client.
    data = request.get_json()
    request_id = data.get("request_id")
    
    # This is the URL that our client needs to connect to access the TODO application online.
    # Port 3000 is the one we set in our Dockerfile and our version
    connection_url = data.get("ports", {}).get("3000", {}).get("link")

    connection_data = {
        "request_id": request_id,
        "connection_url": connection_url
    }

    # Notifying our client of the connection informations
    requests.post("https://your-route-to-notify-user-client.com", json=connection_data)

    return 204


if __name__ == '__main__':
    app.run()

Low Code

Integration takes minutes!

No need to integrate libraries or learn a new product. Get your game server up and running through a simple integration of sending a RESTFUL API call.

Compatible &
Cross-Platform

Edgegap’s platform is compatible with the game engine, netcode, game tools and services you use every day to make your game possible.

Python

import os

import requests
from dotenv import load_dotenv
from flask import Flask, request, jsonify

load_dotenv()

# Getting our settings from env
ARBITRIUM_TOKEN = os.getenv("ARBITRIUM_TOKEN")
APPLICATION = os.getenv("APPLICATION")
VERSION = os.getenv("VERSION")

app = Flask(__name__)


@app.route('/servers', methods=['POST'])
def start_server():
    # How you access the user's IP is unimportant for us, but you will need it to create a deployment.
    # Here the user sent its IP in the request to get the TODO application, along with its username. 
    # We will inject it into the environment variables of our deployment.
    data = request.get_json()
    ip = data.get("ip")
    username = data.get("username")

    headers = {
        "Content-Type": "application/json",
        "Authorization": ARBITRIUM_TOKEN
    }

    # Building request body from the API specifications (/v1/deploy)
    deployment_request = {
        # These are mandatory to create a deployment
        "app_name": APPLICATION,
        "version_name": VERSION,
        "ip_list": [
            ip
        ],
        # These are not mandatory, but recommended
        "env_vars": [
            {
                "key": "message",
                "value": f"Welcome {username} to your personal TODO application!"
            }
        ],
        # Arbitrium will make a POST request to this URL once the deployment container is accessible.
        "webhook_url": "https://your-api.com/webhooks"
    }

    # Sending the request to Arbitrium to create a deployment
    response = requests.post("https://api.edgegap.com/v1/deploy", json=deployment_request, headers=headers)
    
    # Getting the Request ID from our request
    request_id = response.json().get("request_id")

    # Sending the Request ID to our client. Not mandatory, but it can be helpful to retrieve the deployment.
    return jsonify({"request_id": request_id}), 200


@app.route('/webhooks', methods=['POST'])
def webhook_route():
    # Accessing the data we need to forward to our client.
    data = request.get_json()
    request_id = data.get("request_id")
    
    # This is the URL that our client needs to connect to access the TODO application online.
    # Port 3000 is the one we set in our Dockerfile and our version
    connection_url = data.get("ports", {}).get("3000", {}).get("link")

    connection_data = {
        "request_id": request_id,
        "connection_url": connection_url
    }

    # Notifying our client of the connection informations
    requests.post("https://your-route-to-notify-user-client.com", json=connection_data)

    return 204


if __name__ == '__main__':
    app.run()

Low Code

Integration takes minutes!

No need to integrate libraries or learn a new product. Get your game server up and running through a simple integration of sending a RESTFUL API call.

Configure & Tailor

Transparent access to your deployment and orchestration data through detailed reports allowing you to fine-tune to your exact needs.

Latest News

Configure & Tailor

Transparent access to your deployment and orchestration data through detailed reports allowing you to fine-tune to your exact needs

Configure & Tailor

Transparent access to your deployment and orchestration data through detailed reports allowing you to fine-tune to your exact needs

GitHub Icon
GitHub Icon