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
Head of Business Development at Gameye

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 metalCloud VMs
CPU per game serverWhole physical cores. Gameye’s fleet averages 4.7 GHz, on AMD Zen 4 and Zen 5 where availableVirtual 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 loadNo hypervisor and no other tenants on the machine, so tick times stay steadyShared hosts can add CPU steal time and hyperthread contention, which shows up as tick spikes
Price per vCPU-hourGameye charges $0.07 on demand and $0.035 reservedAWS GameLift gen-6 and gen-7 Linux on demand runs about $0.044 to $0.063
BandwidthIncluded on Gameye, on every provider and regionFree on GameLift gen-6+ since June 2026. Self-hosted EC2 still pays about $0.09/GB for the first 10 TB
Time to add capacityHours to days for a new machineMinutes
Best forBaseline load you can predictLaunch 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 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 works out to:

OptionMonthly cost
Gameye reservedAbout $3,833
Gameye on demandAbout $7,665
AWS GameLift on demandAbout $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:

When pure cloud still makes sense

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

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:

See infrastructure for the provider and hardware details, how it works for the session flow, and pricing for the full rate card.

Summary

To test it with your own server, start a free trial and run a match on Gameye’s bare metal, or talk to an engineer about your load profile.