Elite is the hardest AI in Cell Division. It’s also the smallest file in the app bundle: a ~262 KB neural network that lives on your phone, plays instantly, and never calls a server. This post is what that actually means for you when you tap “Play vs. Elite.”
Elite isn’t a cloud call
A lot of modern mobile games stream their “AI” from a server somewhere. That’s why they need an account, an internet connection, and occasionally a subscription. Cell Division doesn’t. The entire opponent ships inside the app bundle you downloaded from the App Store — a single 262 KB file that contains the weights of a neural network.
Put that number in context: 262 KB is smaller than one App Store screenshot. It’s smaller than most of the icons in your home screen folder. It’s already on your phone the moment you finish installing the game, and it will still work if you delete the app from the cloud, switch to airplane mode, or board a plane.
Why it feels instant
When you play against Elite, the AI’s move appears roughly as fast as you can lift your finger. There’s no spinner, no “AI is thinking…” indicator, no perceptible pause. That’s not a stylistic choice — it’s what happens when the opponent is a single pass through a small neural network instead of a search tree exploring thousands of positions.
A typical “strong” game AI works by simulating many possible futures for every move. That gets you a strong opponent, but it also gets you a visible delay on every turn, and it drains the battery. Elite does its thinking differently: the hard work happened once, on a workstation, months before you installed the game. What ships with the app is the learned result, not the thinking process.
Why it plays well
Elite was trained to imitate a much stronger opponent — an AlphaZero-style program that ran on a workstation, thought hard about every position, and played itself for many thousands of games. We then taught a much smaller network to reproduce that opponent’s move choices. The small network inherits most of the taste of the big one, at a fraction of the size and speed.
The practical consequence: Elite’s moves look considered. It doesn’t fall for obvious traps, it sets up long-term pressure, and it will punish a sloppy opening. If you’re coming off the lower difficulty tiers and it feels like a different game, that’s because it is — the lower tiers follow a handful of hand-crafted scoring rules, and once you know those rules you can beat them. Elite isn’t following rules. It’s pattern-matching against a library of positions a stronger player has already thought through.
What Easy, Medium, and Hard are for
The first three difficulty tiers — Easy, Medium, Hard — are built from 14 hand-crafted board features: things like “how many pieces would this move capture” and “does this move leave my group connected to the edge.” Each tier weighs those features differently. They’re great for learning the game and for finding a level of opposition you can comfortably beat.
Hard is the ceiling of what we could do with hand-written rules. Past that, the next move up wasn’t “more rules” — it was giving up on rules entirely and letting a neural network learn the shape of good play from examples. That’s Elite.
What Elite isn’t
A few things we want to be explicit about, because mobile-game AI has a trust problem:
- Not a cloud service.Elite makes zero network calls while you play. You can run the whole game in airplane mode.
- Not a subscription.Every difficulty tier, including Elite, is available in the free tier of Cell Division. We’re not gating the smart opponent.
- Not random.Given the same board, Elite picks the same move every time. It’s deterministic by design, so you can study its choices if you want to improve.
- Not scripted.There’s no lookup table of openings, no “the AI plays X if you play Y” tree. The network evaluates every position from scratch.
- Not watching you.No telemetry on your moves. No account required to play single-player. The game never sees the games you play.
The short version: Elite is one of the smallest, cheapest, and most privacy-respecting opponents you can ship in a mobile game. We like that about it, and we think it’s the shape more mobile-game AI ought to take.
For developers
If you’re an engineer reading this and you want the implementation details — how we export from PyTorch to ONNX, how we patched Expo’s Android autolinking with a config plugin, and how we run real ONNX inference inside Jest — those are all over at the Island & Pine studio blog: Shipping a CNN game AI on-device in Expo with ONNX.