OpenGL got us on screen. It proved the map pipeline, validated our materials, and let designers see the world they were building. But competitive shooters do not live on proof-of-concept frame times. They live on margin - the spare milliseconds you spend on particles, HUD, dense geometry, and the rewind pass that folds a round back on itself.
We converted the renderer to Vulkan. The gain was not incremental. It was the kind of jump that changes what you allow yourself to put in a frame.
What changed technically
Vulkan gave us explicit control over command buffers, memory, and synchronization. Less driver guesswork. Less CPU overhead per draw. Better utilization when the scene gets heavy - multiple operators, weapon effects, and the full HUD stack running on top of a detailed interior.
The migration was a full rewrite, not a flag flip. Shaders, pipelines, and resource lifetimes were rebuilt with a 128-tick server in mind. We were not chasing benchmark screenshots. We were buying headroom for netcode, prediction, and the systems still landing on the roadmap.
What it feels like in-game
Frame pacing tightened. Stutters we had learned to ignore under OpenGL simply stopped. Input-to-photon latency dropped in ways players describe before they can measure them - rounds feel colder, cleaner, more immediate.
That matters for a game where peeks are millisecond trades and spray control is muscle memory. A renderer that holds 240 FPS on a mid-tier machine is not vanity. It is fairness.
Room for what is next
The Vulkan path reserves budget for replay cameras, destruction, and additional maps without rewriting the engine every time content scales up. We are building a simulation that will grow. The renderer needed to grow with it.
OpenGL was the bridge. Vulkan is the highway. The map you will play on was authored for this pipeline - and the performance profile is finally worthy of the design.
