The cricket game I always wanted to make

Cricket Pro (WIP) is a management sim in the style of Football Manager, with a match engine calibrated against real cricket and 1,429 real players. It’s a live project. I scope, design and test it, with an AI coding agent writing the code.

Role
Builder, product owner, designer, domain expert, tester
Timeline
Aug 2026 – now
Built with
Claude Code, Claude Design · .NET 10, Avalonia, SQLite
Status
Preparing for beta release
Redesign · WIPMatch day. Mid-chase at Lord’s. The over break asks who bowls next, with the field and the batter’s plan in the same panel.
Real matches analysed for player data
22,703
Real cricketers in the game
1,429
Formats calibrated against real cricket: Test, ODI, T20
3
Steps in the model that decides every delivery
9

The board

I ran the project from this board. Each card links to its part of the story.

Scope4
P1-02Calendar: windows, availability, NOCs
blocked
P2-03Contracts and squad status
P2-04The board, objectives, job market
P3–P5Press, training, auctions, weather, DRS and more
UX1
P2-01Career setup
UX done
20–23 AUGBefore the board

How it started

I’ve wanted a cricket game as deep as Football Manager for years. Cricket Captain and Cricket Coach came close. In August I started building my own.

if i wanted to make a proper cricket simulator game, similar to football mamanger and/or cricket captain and/or cricket coach 2014. What would i need to do? … Help me plan.MY FIRST PROMPT · 20 AUG

Four days later there was a match engine tuned against real Test, ODI and T20 numbers, a simulated world and a desktop app. I spent those days on scope, the Laws of cricket and playing every build. I corrected the follow-on rule, flagged far too many declarations, and saw that a bug patched three times in three places was one modelling mistake.

Commits per day, and the bugs I found

In cricket this is a Manhattan chart. Each gold dot is a bug I found by playing the build.
24 AUGThe re-scope

Adding a design process

After four days the game worked, but nobody had designed it. External audits scored it 64/100 for UX and 11/24 for UI. I paused feature work and set up a process with a UX stage, a UI stage, a spec and then the build, all tracked on the board above.

I also had the agent interview me about the game I wanted. My answers became 17 numbered product decisions, including these:

D2You play a manager with a board above you and a job you can lose
D3You run match day yourself, and can hand decisions to your captain
D11Build the foundations first, even if little is playable until phase 2
D14Check WCAG 2.2 AA at every UI stage

The pipeline every feature goes through

Design runs ahead of build. A feature is done when both tracks pass.
P2-02Done

The hub

The hub is the screen you come back to between matches, and the first feature through the full process. A season is a routine, so the inbox only flags decisions waiting for you. Designing the error states turned up four bugs in existing code, including a live match lost when you closed the window.

Card sorting and tree testing need 15 to 50 people, and I was the only user. I noted that gap in the design docs.

Redesign · WIPThe redesigned hub.
P1-04Done

Design system and player visuals

The app had a rule against hard-coded colours and spacing from the first screen. A count still found 290 of them. So I turned the rules into tests that fail the build, and the count can only go down.

Hard-coded spacing values left in the app

The first accent was gold. It looked fine on a button, then failed on a full tile, where one caption measured 1.57:1. It moved to steel, then teal, and gold became the focus ring.

Turf green, gold, steel, teal

Switch sizes

For player screens I started from Football Manager and then went my own way. In this game your scouts can be wrong about a player. Results like runs and wickets are printed exactly. Attributes are bars with a band showing how sure your scouts are.

How sure your scouts are

Try it
Example player. The band narrows the more you watch him.

Three marks for eleven roles

A dashed ball means a batter who can bowl a bit.
Redesign · WIPSelection, with role marks, stars, form and status chips.
X-03 · X-09Done

Real players

I picked the sources, Cricsheet’s ball-by-ball archive and Wikidata, and every cut-off was measured on real data. The first all-rounder rule made Joe Root an all-rounder. The first real world picked Kevin Pietersen for 2026. Real birth dates and a cut-off for active players fixed both.

If a country can’t field a legal XI from real players, the import stops. It never invents a player.

From archive to roster

What the data decided

Names shared by more than one cricketer
530
Bowlers with their real bowling style
98.4%
Players with a real birth date
97.5%
Years since a player’s last game to be picked
4
P2-05Done

Match day, designed twice

The first match-day design was made without my input. It was solid, and it found 18 bugs in the existing code, three of which could wipe a career. But nobody had asked the person who would play it. I asked to be interviewed, and six of my answers changed the design.

Without meAfter my interview
Match day is a screenMatch day is its own mode, with room for the ground and pitch map
The game skips overs it thinks are dullEvery over stops. You set the pace with “simulate to”
Success is fewer than 20 stops a dayDropped, because it rewards using the feature less

Stops and questions at the over break

Try it
A stop lets you change things or play on. A question needs an answer first. The aggression meter is my design.

Every part passed its tests. Next to the wireframes, it still didn’t match. The skip control had no button, and the pitch map was squeezed into a strip. Tests only checked the logic, so from then on I compared every screen with its wireframe myself.

That evening I made match day the top product principle. If a single match doesn’t feel like real cricket, the rest of the game doesn’t matter. It also led to quick play: one match, no career, about ninety seconds to the first ball.

As builtMatch day as built: a T20, Pakistan v England.
28 AUG → 8 SEPMy call

Bringing parallel work back together

To go faster I ran several agent sessions at once, each on its own branch. It got more done, and it caused problems. The board went stale, one feature was built twice, and a trial merge found 17 errors git had missed. On 8 September I brought everything back into one place: 19 branches down to 2, with 789 tests passing.

Parallel branches, 24 Aug – 8 Sep

Simplified
SINCE SEPWork in progress

The visual redesign

The build had the right behaviour and plain screens. I’m now redesigning every screen in Claude Design, with the design system and the match-day decisions as the brief. None of it is in the game yet.

Match day, as built and redesigned

Drag to compare
Match day as built: Pakistan v England T20 with the ball tracker, wagon wheel, scorecard and the batters at the creaseAs builtRedesign
Left: the build on 8 September, a T20 between Pakistan and England. Right: the redesign of the same screen, during a Test at Lord’s.
  • The match follows youA score bar on every screen, and a button that tells you when a decision is waiting.
  • One panel for the over breakBowler, field and batting plan in one place, then “Bowl the over”.
  • A ground you can useField settings drawn on the ground, with every fielder named.
  • Shared partsThe same tables, role marks, stars and form strips on every screen.
NEXTIn progress

Next: preparing for beta

  • Finish the redesignBring the new screens into the game, starting with match day.
  • Check the career statsReal career statistics are imported and need verifying.
  • Ratings from real dataOne attribute at a time, each measured before the next.
  • LicensingReal names swapped for fictional ones before a wider release, and Afghanistan added by hand.

My prompts by kind

~184 prompts
Estimated from the session logs. Most approved planned work. Scope calls and playtest feedback changed the game.

Bugs I found by playing

What I learned

  • Turn rules into tests earlyA rule that only lived in a document collected 290 exceptions.
  • Bring the domain knowledgeThe Laws, the realism and the stats were mine to catch.
  • Get interviewed on your own projectThe match-day design changed most when I answered questions.
  • Play the buildMost of the bugs that mattered showed up when I played it.
  • Commit before working in parallelParallel sessions saved time and cost a clean-up.
Sources: the project’s board, git history, session transcripts and design documents. Prompts are verbatim, typos included.The full day-by-day story is in the build log.