Game Engine Integration

Unity dedicated server hosting

Container-based orchestration. No Unity Multiplay SDK required. Sub-second session starts at global scale.

Unity 2021+ Linux dedicated server No UGS dependency Any matchmaker

Gameye orchestrates your Unity dedicated servers using the same mechanism it uses for any game engine: containers. You build a Linux dedicated server, package it as a Docker image, and Gameye handles the rest — session allocation, placement, health monitoring, and termination. No Unity Multiplay SDK, no Unity Gaming Services dependency, no engine coupling.

Your matchmaker calls the Gameye Session API when a match is found. A containerized Unity server starts in under 0.5 seconds. Players connect directly. When the session ends, the container is reclaimed. You pay only for capacity reserved — not per-session, not per-GB.

60% server cost reduction — Clone Drone in the Danger Zone (Doborog Games)
0.5s average time to a running dedicated server session
120M+ game sessions orchestrated since 2019

How integration works

The integration has two parts: packaging your server, and calling the Gameye API from your matchmaker or backend.

Session lifecycle
  1. Players queue — your matchmaker handles party formation and skill-based matching
  2. Match found — matchmaker calls the Gameye Session API to request a dedicated server
  3. Gameye starts your containerized Unity server in the nearest available datacenter (~0.5s)
  4. Gameye returns the server IP and port to your matchmaker
  5. Matchmaker delivers connection details to players' clients
  6. Players connect directly to the dedicated server — Gameye is not in the data path
  7. Session ends — Gameye reclaims the container automatically

Packaging your Unity dedicated server

Gameye runs Linux containers. You need a Linux dedicated server build and a Dockerfile. Here's the minimal setup:

1
Build a Linux dedicated server

In Unity Editor, install the Dedicated Server build support module (Unity 2021.2+). Under File → Build Settings, switch the target to Dedicated Server and platform to Linux. This produces a headless binary with no graphics or audio subsystems. For Unity versions before 2021.2, build for Linux with -batchmode -nographics.

2
Write a Dockerfile

Base your image on a suitable Linux base (Ubuntu 22.04 LTS works well). Copy your server build output, set the entrypoint to your server binary, and expose your game port. Unity Netcode for GameObjects and Mirror both default to UDP 7777 — adjust to match your networking library's configuration.

3
Push to a container registry

Build and push your image to any OCI-compatible registry (Docker Hub, GitLab Registry, AWS ECR, GCP Artifact Registry). Gameye pulls from your registry during session allocation.

4
Register your image with Gameye

Provide your image name and registry credentials during onboarding. Gameye pre-pulls your image so it's ready to start immediately — no cold-pull delay at session start.

5
Call the Session API from your matchmaker

When a match is found, POST to the Gameye Session API with your image name, target location, and any launch arguments (scene, game mode, max players). You'll receive the server IP and port in under 0.5 seconds.


Matchmaker integrations

Gameye is matchmaker-agnostic. Any system that can make an HTTP call to the Gameye REST API can allocate a session. Off-the-shelf integrations are available for the most common matchmakers used with Unity games:

Pragma

Native integration via Pragma's matchmaking extension points. Gameye allocates sessions in response to Pragma match events.

Nakama

Native Fleet Manager implementation. Gameye's Nakama Fleet Manager handles the full session lifecycle including player join/leave tracking and backfill.

AWS FlexMatch

Use Gameye as the server allocation layer behind FlexMatch. Keep FlexMatch's matchmaking rules; remove AWS GameLift as the compute dependency.

Idem

Gameye integrates with Idem's matchmaking platform for server allocation, enabling skill-based matching with fast dedicated server delivery.

Custom / in-house

Call the Gameye REST API directly from your own matchmaker, Unity backend service, or any server-side code. Full API reference in our docs.


Infrastructure

Gameye runs your Unity dedicated servers on performance-optimized bare metal with the latest AMD Ryzen and EPYC CPUs — consistent tick rates and stable frame times even in CPU-intensive sessions. Cloud bursting is available for launch spikes and free weekends.

21 providers

Multiple bare metal and cloud providers in every major region — no single-provider dependency.

200+ datacenters

Europe, North America, South America, Asia-Pacific, Middle East, and Africa — including London, Amsterdam, Frankfurt, Singapore, Tokyo, São Paulo, Mumbai, Dubai, Johannesburg, and more.

DDoS mitigation

All providers in the Gameye network are selected partly for DDoS protection capability and peering quality — relevant for competitive multiplayer titles that attract targeted attacks.

Automatic failover

If a provider or datacenter has an issue, new sessions are routed to the next-best option automatically. No manual intervention needed.


Why Gameye for Unity studios

No Unity Multiplay SDK required

Gameye orchestrates the server process — not the engine. Your dedicated server binary runs as-is. No Unity Gaming Services dependency, no Multiplay SDK to integrate and maintain.

Sub-second session starts

0.5s average from API call to running server. Players don't wait between "match found" and being able to connect — critical for competitive games where wait time kills retention.

No egress fees

Bandwidth is included in Gameye's capacity pricing. Unity Multiplay, AWS GameLift, and Azure charge per-GB egress — for a multiplayer shooter, bandwidth alone can be 40–60% of your infra bill. With Gameye, it's zero.

Proven cost reduction

Doborog Games reduced server costs by over 60% after migrating Clone Drone in the Danger Zone to Gameye. "It's reassuring to know that we could scale up indefinitely as we prepare for platform events and sales." — Brian Jordan, Co-founder & CTO.

Works with your CI/CD

Push a new Docker image tag → Gameye serves the new build. Roll back by pointing to a previous tag. No fleet rebuild, no multi-hour deployment cycle.

No lock-in

Your server is a Docker image. If you ever want to move, you take the image with you. No proprietary SDK baked into your binary — nothing that ties you to Gameye at the engine level.


Migrating from Unity Game Server Hosting

Unity Multiplay (now Unity Game Server Hosting under Unity Gaming Services) ties your hosting decision to your engine vendor. Studios that have outgrown one-vendor constraints, or want more control over providers, regions, and pricing, typically migrate to Gameye in a few steps:

1 Build a Linux dedicated server using Unity's Dedicated Server build target — same binary your players connect to, no code changes needed
2 Package the build as a Docker image and push to any container registry
3 Replace Unity Multiplay allocation calls in your matchmaker or backend with Gameye Session API calls
4 Remove the Unity Multiplay Server SDK from your game server binary — Gameye doesn't need it
5 Push your image, get your API token, and run sessions in sandbox before cutting traffic over

See the full Unity Game Server Hosting migration guide →


Frequently asked questions

Does Gameye work with Unity Netcode for GameObjects?

Yes. Gameye is transport-layer agnostic — it orchestrates the server process, not the networking stack. Unity NGO, Mirror, Fish-Net, Photon Fusion server mode, and custom networking solutions all run on Gameye without modification. The only integration point is the Gameye Session API, called from your matchmaker or backend when a match is found.

Does Gameye support Windows Unity dedicated servers?

Gameye runs Linux containers. Unity supports Linux dedicated server builds via the Dedicated Server build target (Unity 2021.2+) or by targeting Linux with -batchmode -nographics in earlier versions. If your dedicated server currently only runs on Windows, switching to a Linux build target is typically straightforward. Our team can help scope that work during onboarding.

How does my Unity server know when to shut down?

Your game server can shut itself down when the session ends (e.g. when the last player disconnects or the match timer expires). Gameye detects when the process exits and reclaims the container. You can also call the Gameye Session API to terminate a session explicitly from your matchmaker or backend. No Multiplay-style "server ready" handshake is required.

Can I pass launch arguments to my Unity server?

Yes. The Session API accepts an arguments array that's passed directly to your server binary at startup. You can pass scene name, game mode, max players, custom config flags, or any other command-line argument your server accepts. Arguments are specified per-session, so different match types can start different server configurations from the same image.

What port should my Unity server expose?

Expose whichever port your networking library listens on. Unity NGO and Mirror default to UDP 7777; Fish-Net uses 7770 by default. Declare your port in your Dockerfile and in your Gameye image configuration. Gameye returns the correct IP and port to your matchmaker after session allocation — clients connect directly using those details.

Can I run multiple game modes from the same Docker image?

Yes. Since scene, game mode, and any custom flags are passed as launch arguments at session start, a single Docker image can serve all your game modes. You don't need separate images per mode. This simplifies your CI/CD pipeline and reduces the number of image versions you need to manage.

Get started

Sandbox access in 24 hours.

Request your API token, push your Unity server image, and run your first session — no sales call required.