skip to content
all writeups
4 min read updated Aug 25, 2026

Game dev devlogs: decisions justified in public

A day with published game engineering writing, mostly Valorant's – valued not for transferable technique but as a model of how to justify a technical decision, which is the part of written assignments I find hardest.

otjcollegegame-devnotes

This was an online-learning day spent with published game development engineering devlogs, mostly Riot’s writing on Valorant. I do not work in games and I am not about to start. Almost nothing here is transferable technique. I kept reading because of something the writing does that mine does not.

Constraints I do not have

Valorant’s engineering problems come with budgets I have never had to meet. Matches run on dedicated, server-authoritative game servers – Riot runs well over a hundred match instances per physical host – simulating at 128 ticks a second, which gives each tick 7.8125 milliseconds before the next one is due. Riot’s netcode writing states the latency target plainly: 35ms ping to 70% of the player base, delivered over Riot Direct, its own network backbone, rather than the public internet. The same writing describes squeezing per-tick server work down from an initial 50-millisecond frame to under 2 milliseconds by launch so the tick fits its budget. On top of that, the opposition is not only other players: it is thousands of people actively trying to subvert the client you shipped them.

The tightest constraint I had personally worked under, until recently, was Cloudflare’s cap on outbound requests per invocation – and before that, every constrained environment I had known limited memory or time, never request count. That was a genuinely new shape of limit for me, and it is a rounding error next to a per-tick deadline with a scoreboard attached. That gap is why the reading was useful. Tight budgets force the reasoning into the open, because you cannot hand-wave a millisecond.

How they justify a decision

The pattern, repeated across the netcode and anti-cheat writing, is: state the constraint as a number, price the options, choose, then publish the choice with the reasoning still attached. Two examples stayed with me.

Wallhacks. Riot cannot stop players from hacking their own client, so they shrank what the client is given. The server culls enemy position data a player isn’t currently allowed to see – the Fog of War approach – so a modified client has nothing useful to draw until an enemy comes into view; Riot puts the cost at under 2% of server frame time today, down from roughly half in its first prototype. The trade is client-state fidelity against size of the cheat surface, and they took the side that costs the attacker. Riot is upfront it isn’t complete: DMA hardware that reads physical memory directly bypasses what a server-side visibility check can filter, so Fog of War can’t fully close that hole.

The kernel driver. Valorant’s anti-cheat, Vanguard, goes as deep as a consumer product can go: a signed kernel-mode driver that, by default, has loaded at system start-up since launch. Riot’s own name for the reasoning is the “Who Loads First?” problem: a driver that only starts with the game could be beaten by a cheat that loads earlier and unloads before anything catches it. The cost is named too – a component with that reach sitting on every player’s machine, and the trust that has to be earned to keep it there. Since June 2026, players on sufficiently hardened Windows 11 machines can opt into an “on-demand” mode that drops the boot-time requirement. The 128-tick dedicated servers are, on the same logic Riot applies to its netcode work, defended on competitive-integrity grounds, with the follow-on routing and performance work presented as the bill for having chosen them.

The part I am worst at

None of this taught me a technique. What it modelled was justification: constraint, priced options, decision. Justifying a technical decision is the weakest part of my written assignments. I will say what I built and what it does, and quietly leave out why the alternative lost – usually because at decision time I had not made the alternatives explicit to myself, so there was nothing to write down afterwards.

The devlogs do it differently, and it is not a writing trick. Their alternatives are explicit because they actually had to be chosen against. Writing the justification is easy when the decision was genuinely reasoned and impossible when it was not, and I can tell the difference in my own retros. So the change I am taking from this day sits upstream of the writing: when I make a technical choice, write down what it beat and what it cost. The prose then writes itself – the way it evidently does for engineers with an eight-millisecond budget.

Sources

Read on 25 August 2026, from Riot’s own technology news rather than secondary write-ups. The reading this entry describes was a topic, not a reading list, so what follows are primary sources for the claims above, not a record of what I personally read that day.

  • VALORANT’s 128-Tick Servers – the 128-tick figure, the 7.8125ms per-frame budget, the 50ms-to-under-2ms server frame time improvement, and the “108 games per host” figure behind the dedicated-per-match server claim.
  • Peeking into VALORANT’s Netcode – the server-authoritative networking model, the 35ms-ping-to-70%-of-players latency target, Riot Direct as Riot’s own network backbone, and the competitive-integrity framing behind the 128-tick decision.
  • Demolishing Wallhacks with VALORANT’s Fog of War – the Fog of War mechanism itself and the under-2%-of-frame-time (down from roughly 50%) performance figure.
  • A Message About Vanguard From Our Security & Privacy Teams – Riot’s own statement that the kernel driver runs at start-up and is signed by Riot’s own EV certificate.
  • Incoming: Vanguard On-Demand – the “Who Loads First?” framing for why the driver has historically started at boot, the June 2026 on-demand mode that lets it start with the game instead on sufficiently hardened Windows 11 systems, and the admission that Fog of War can’t fully block DMA-based cheats.