
Headless Server
A headless server runs the game simulation with no rendering, no audio and no input device attached. Stripping the client-side work leaves the expected baseline for a server: physics, state and networking, plus whatever else the developer chooses to run there. With no display or GPU to depend on, the build is also much easier to package in a container, which is how dedicated servers are commonly deployed and scaled.
,
What Does a Headless Server Strip Out, and What Has to Stay?
A headless build removes everything a player sees, hears or touches: the renderer, shaders and textures, audio, the UI and the input devices. What stays is what decides the match: the simulation loop, physics, game rules and networking. That is the baseline. Whether AI, logging or anything else also runs on the server is the developer's call.
The line is rarely as clean in the code as it is on paper. Game logic often reads from the presentation layer without anyone deciding it should: a hitbox attached to an animated bone, a cooldown counted in rendered frames, a gameplay event fired from an animation or a UI callback. In the client, all of that works, because something is always being drawn. In a headless build nothing is, and logic that depended on it stops or drifts.
The habit that prevents it is simple to state: anything that changes the outcome of the match belongs in code that runs whether or not a frame is drawn. For how headless relates to dedicated and authoritative servers, see dedicated server.
Why Do Headless Builds Break Things That Worked in the Editor?
Because engine defaults assume someone is watching. The editor always renders, so these problems usually appear only once the server build runs on its own.
Animation that stops when nobody sees it. Engines save work by skipping animation on objects no camera can see, and on a headless server no camera sees anything. In Unreal, a skeletal mesh on a dedicated server does not refresh its bone positions unless it is set to always tick its pose and refresh bones, so hit detection against those bones uses stale positions. In Unity, an Animator whose culling mode stops animating when nothing renders has the same effect.
A loop with no frame cap. A client is paced by its display. A headless process has none, so without a target frame rate or a server tick rate it runs as fast as it can and keeps a core busy between ticks. On a server billed by the vCPU, that is cost with no match on it.
Different build pipelines. Unity's Dedicated Server build target also strips assets the server does not need, such as textures and audio, which shrinks the build. Godot 4 exports a dedicated server that strips visual resources and runs with the
--headlessflag. Unreal builds a server target only from an engine compiled from source, not the launcher version, which makes the first server build a long step.
The basic build steps for each engine are on the dedicated server page.
How Does a Headless Build Make Containers and Orchestration Possible?
A container packages a program with what it needs to run and nothing more. It has no screen attached and, on most hosts, no GPU. A client build expects both. A headless build expects neither, which makes it much easier to package as a Linux image with Docker and run on any host that runs containers.
Once the server is an image, an orchestrator can start it on demand, close to the players, and stop it when the match ends. A smaller build helps: a smaller image downloads and starts sooner on a host that has not run it before. On Edgegap, the median server deployment time from a cold start is 2 seconds over a rolling 30 days, measured to container ready, before the game engine starts (platform data, 18 September 2026). Engine startup comes on top, and that part depends on the build.
Removing graphics is also what lets several servers share one machine. How many fit is set by memory per instance and by how much of each tick's CPU budget the main loop uses, both measured in a profiled build. A multi-room server goes further and hosts many matches in one process, so the number worth sizing becomes rooms per vCPU.
Should You Ship Your Headless Server to Players?
Some studios do. Factorio, Valheim, Satisfactory and Enshrouded give players a server build that runs without graphics, to host on their own machine or a rented one. Those games account for a large share of the searches for this term.
It suits games where a group plays in one persistent world for weeks, such as survival and building games. The studio hosts less, and communities can keep playing for as long as they keep a server running. The trade-off is control. A server players run is a server players can modify, and a patch reaches it only when its owner updates. For competitive games, where fairness depends on the server, studios usually keep the server build to themselves.
A word from our sponsor (ourselves!)
Warm pools make allocation fast because you pay for servers that sit idle. Edgegap provisions a fresh game server in a median of 2 seconds from cold start, measured to container ready before your engine starts, so a server exists only once a match needs one.
Edgegap's Take (just our opinion, take it with a grain of salt!)
Build Headless Early, Then Keep Measuring It
The first headless build is often made close to launch, and that is when its problems surface, all at once. Making it early does three things.
It lets you feel the game online. A playtest on localhost hides latency; the headless build on a real server shows how the game plays from where players are. Edgegap's free tier covers a playtest: no credit card, 1.5 vCPU and 3 GB of memory, one deployment at a time, with a 60-minute cap (pricing, read 5 October 2026).
It starts the measuring habit. CPU per tick and memory per instance, tracked from the first build, tell you how many matches fit on a vCPU.
And it makes improvement continuous. Hosting is billed by the vCPU-minute, $0.00115 on Edge Cloud (same source), so a saving on one match repeats on every match you host. That makes the server build often the biggest lever on hosting cost, and worth working on for the life of the game. For Unreal, the barrier to that first build is compiling the engine from source. Edgegap's Docker Extension builds a Linux server without it, cutting build time from 2.5 hours to 8.5 minutes on average (October 2025).
,










