Measured, not promised: how we test Kinloom
Eight SDKs held to one reference, real models on real runs, and the bug a slow test machine found on launch day.

An AI library for games makes promises that are easy to say and hard to keep: it is fast, it is safe, it never breaks the game. So every claim on Kinloom's page comes with a run in the repository: the method, the raw results, the cost, and what went wrong.
One reference, eight SDKs
Python is the reference. Every other SDK, in C#, GDScript, TypeScript, C++, Rust, Java and Lua, runs the same scenario against a scripted model and must give the same transcript, send the model the same requests word for word, and agree on more than 550 shared test cases. The examples in the documentation are compiled in every language. All of it runs on Linux, macOS and Windows on every change.
Real models, real numbers
Tests never call a real model; the measurements do, and they are counted. Over 40 replies through OpenRouter, the first word came in 1.06 seconds at the median and the whole reply in 1.61 seconds, for about $0.0005 a reply. We wrote 45 attacks against a character's secret, from false authority to prompt injection, and read every answer by hand: the hosted model kept the secret.
We also measured the coding agents that will wire Kinloom. Over 30 requests, answers that ran and used a fitting call went from 8% to 88% with Kinloom's instructions. Given one brief, aider with DeepSeek added rivals, a race engineer, a commentator and a race director to a racing game in 4.5 minutes, and the game still ran with no key and with 50 hostile answers.

The bug launch day found
On the day the repository went public, one test failed on a macOS machine: a reply that was supposed to keep what the model had already said came back empty. It looked like a slow machine, but it was a real bug. When the model's own time limit fell in the same instant as the reply's deadline, the call ended in an error and the words already streamed were thrown away, so the player got the offline line instead.
The fix keeps those words as the reply, cut at the end of a sentence, in Python and in every SDK that streams. A new test reproduces the case on any machine. That is the point of measuring: the slow machine found what a fast one never would.
What we have not measured yet
Whether players find these characters more human than a plain prompt is still open: the blind test is written but not judged. Defold, Bevy and Unreal have not been run, nor mobile, console or web builds of Unity. We will say so until they are.

