Skip to content

Other Side

In game development, you end up integrating with native app teams over REST APIs a lot. iOS clients, PC clients.

They're excellent programmers. They understand rendering pipelines, maintain 60fps while building complex GUIs, and manage memory with precision. I respect them. But once it's HTTP on the other side, things seem to get unfamiliar fast.

Data that doesn't change — user profiles, for instance — gets fetched on every screen transition. No concept of caching. When an API returns an error, they branch on the response body's message string instead of the status code. I tweaked the wording of an error message once and their client-side logic broke. Though to be fair, that's partly on us for serving an API where the message was the only thing to branch on. I've also seen code that couldn't tell a 404 from a 500.

Point it out and they usually fix it right away. They just didn't know. Their battlefield is GPUs, rendering, and user experience — not HTTP specs or REST design principles. Same way I can't write shaders.

Think a little deeper, and they're probably just cornered. Deadlines bearing down, barely enough time to focus on the game experience itself. API integration is peripheral work to them. Something that just needs to work. No room to be thorough.

We have our own faults too. Server-side developers toss nulls into API responses without thinking twice. For a native app, null is a matter of life and death. In a strictly typed world, an unexpected null crashes the app.

We're integrating without really understanding each other's world. When the pipe joints leak, it's not one side's fault. But the repair call usually comes to us.