Source: https://gameye.com/blog/bare-metal-vs-cloud-game-servers/

---
title: "Bare Metal vs Cloud Game Servers: Cost and Performance (2026) | Gameye"
description: "Bare metal runs steady multiplayer load faster and cheaper per player. Cloud covers spikes and regions without bare metal. Clock speed, egress and cost compared, with when to use each."
---

# Bare Metal vs Cloud for Multiplayer Game Servers: Cost, Performance and When to Use Each

Bare metal is the better default for multiplayer game servers. Cloud is the better overflow. Here is the comparison on clock speed, cost per player and egress, and when pure cloud still makes sense.

[Andrew Walker](https://gameye.com/blog/author/andrew-walker/)
_Head of Business Development at Gameye_

Oct 12, 2026

For most multiplayer games, bare metal is the better place to run your steady player load, and cloud is the better place to absorb spikes. Bare metal gives each server a whole physical core at a higher clock for less money per player. Cloud gives you capacity you can add in minutes and remove when the spike is over.

The rest of this post covers the numbers behind that answer and the cases where pure cloud is still the right call.

## The comparison at a glance

|  | Bare metal | Cloud VMs | CPU per game server | Whole physical cores. Gameye’s fleet averages 4.7 GHz, on AMD Zen 4 and Zen 5 where available | Virtual cores. Mainstream AWS instances run about 2.8 to 3.9 GHz, and on hyperthreaded types such as c7i one vCPU is half a physical core|
| Performance under load | No hypervisor and no other tenants on the machine, so tick times stay steady | Shared hosts can add CPU steal time and hyperthread contention, which shows up as tick spikes|
| Price per vCPU-hour | Gameye charges $0.07 on demand and $0.035 reserved | AWS GameLift gen-6 and gen-7 Linux on demand runs about $0.044 to $0.063|
| Bandwidth | Included on Gameye, on every provider and region | Free on GameLift gen-6+ since June 2026. Self-hosted EC2 still pays about $0.09/GB for the first 10 TB|
| Time to add capacity | Hours to days for a new machine | Minutes|
| Best for | Baseline load you can predict | Launch spikes, events and regions with no metal nearby|

The cloud price per vCPU looks lower. The next two sections explain why it usually isn’t lower per player.

## Clock speed decides how many players fit on a core

A game server’s simulation tick runs mostly on one thread. How fast that one thread runs sets how many players, or how many matches, one core can carry before the tick rate drops.

That makes clock speed the number to compare, not vCPU count. A 4.7 GHz dedicated core does more game-server work than a 3.5 GHz virtual one. The [cost comparison calculator](https://gameye.com/cost-comparison/) uses 1.15 as its default ratio, which is Gameye’s 4.7 GHz fleet average divided by the 4.1 GHz boost clock of AWS c8a, the closest AWS instance by clock speed. Your own ratio depends on your game, so benchmark one match on each before you decide.

The second factor is what a “vCPU” is. On a hyperthreaded cloud instance, two vCPUs share one physical core’s execution units and cache. Under load they compete, and the slowest ticks get slower. On bare metal there is no hypervisor between your server and the CPU, and nobody else’s workload runs on the machine.

## Cost per player-hour, including egress

Price per vCPU-hour is the wrong unit. The useful one is what it costs to host one player for one hour, and that depends on how many players fit on a core and what you pay for bandwidth.

Take a title that needs about 150 effective cores at peak, roughly one fast core per 20 players. At a sustained 3,000 concurrent players across a 730-hour month, the [Gameye vs AWS GameLift comparison](https://gameye.com/gameye-vs-aws-gamelift/) works out to:

| Option | Monthly cost | Gameye reserved | About $3,833|
| Gameye on demand | About $7,665|
| AWS GameLift on demand | About $9,400 to $13,400, depending on instance type|

Those figures come from published clock speeds and prices with standard hyperthreading and IPC adjustments. They are a model, not a vendor benchmark.

Bandwidth matters as much as compute. AWS made outbound bandwidth free on GameLift generation-6 and newer instances in June 2026, which closed most of that gap for GameLift customers. Studios that run their own servers on EC2, which is common with backends such as Pragma or Nakama, still pay standard EC2 egress of about $0.09/GB. Edgegap charges about $0.10/GB on top of compute. That line grows with every player you add. Gameye includes all data transfer in the hourly rate.

## Why metal first, with cloud only when metal runs out

Pure bare metal leaves you short of capacity on launch day. Pure cloud means you pay cloud prices for load you could have predicted.

A hybrid avoids both. You put the predictable base on dedicated machines and send only the overflow to cloud. Gameye places every session this way. It always tries bare metal first and only uses cloud when bare metal in that region is full. When the spike passes, the cloud capacity goes away and so does its cost.

This is how Gameye handled two large launches:

- Torn Banner Studios’ Chivalry 2 reached 250,000 concurrent players in its first 30 minutes and nearly 1 million players in its first month.

- No More Room in Hell 2 ran more than 500,000 game server containers in one launch weekend.

## When pure cloud still makes sense

Bare metal isn’t the right answer for every game.

- **You are still prototyping.** If you run a handful of servers a few hours a day, the setup effort of dedicated machines isn’t worth it. Pay-per-second cloud or a pay-per-second platform is simpler.

- **Your load is all spikes.** A game that runs weekend events and is quiet the rest of the week has no steady baseline to put on metal.

- **You need a region with no metal nearby.** Some regions only have cloud capacity close to players. For those players, a nearby server matters more than a faster core.

- **You are already deep in one cloud’s services.** If your backend, data and team all live in AWS, the operational cost of a second environment can outweigh the saving. GameLift’s free bandwidth on gen-6+ makes this easier to justify than it was.

Even in these cases, measure cost per player rather than cost per vCPU, and check again when your player count grows.

## How Gameye places sessions

Your matchmaker calls `POST /session` with a region and a Docker image. Gameye picks a machine and returns an IP address and port, with an average container start time of 0.5 seconds. There is no Gameye SDK to build into your server.

Behind that one call, Gameye works across 21 infrastructure providers and more than 200 data centers:

- **Placement.** Bare metal first, always. Cloud only when bare metal in the region is exhausted.

- **Hardware.** Dedicated bare metal averaging 4.7 GHz across the fleet, using AMD Zen 4 and Zen 5 where available. Gameye guarantees that reserved node pools run on Zen 4 or Zen 5, at no extra cost.

- **Pricing.** $0.07 per vCPU-hour on demand and $0.035 reserved, billed per second, with no egress or bandwidth fees.

- **Reliability.** A 99.7% contractual uptime SLA, and 99.9% measured uptime over the trailing 12 months.

See [infrastructure](https://gameye.com/infrastructure/) for the provider and hardware details, [how it works](https://gameye.com/how-it-works/) for the session flow, and [pricing](https://gameye.com/pricing/) for the full rate card.

## Summary

- **Bare metal** is the better default for the load you can predict. You get faster whole cores, steadier ticks and a lower cost per player.

- **Cloud** is the better overflow. You can add it in minutes for a launch or an event, and use it in regions with no bare metal nearby.

- **Compare cost per player-hour**, including bandwidth, not price per vCPU.

- **A metal-first hybrid** puts your base load on bare metal and only pays cloud prices for the peak.

To test it with your own server, [start a free trial](https://trial.gameye.com/) and run a match on Gameye’s bare metal, or [talk to an engineer](https://gameye.com/contact-us/) about your load profile.
