Data.exe
An automation game set inside a 1998 desktop. You feed an AI by hand, then build the machines that do it for you.

- Role
- Game Designer, Writer & Programmer
- Team
- 2 people, with Uluç Kaymak
- Studio
- Tuesday Market (publisher: InEv Creative)
- Format
- Automation / incremental
- Status
- In development · Demo on Steam
- Tools
- Godot 4, GDScript, Python
Highlights
- Designed a four-tier automation economy. Two tiers are measured, two are still being tuned.
- Priced every card against the measured wallet. Unspent Tokens fell from 66% to 2.4%.
- Built a player model from a real 140-minute play log.
- Gated each tier behind a review that checks only the result. Wrote all the mail.
On this page
- I designed the automation economy and its progression.
- The player progresses from manual input to automated production.
- Playtesting changed the prices and progression.
- I compared a player model with real play logs.
- Employee reviews unlock the next stage of production.
- Delivery size and upgrades determine the player’s income.
- Colleagues’ letters carry the story through the working day.
- These tools support the implementation and balance work.
I designed the automation economy and its progression.
The player feeds a company’s AI by dragging file icons, then builds the machines that do it. I did the game design, the economy, the review ladder, the pacing and the tools that measure it, and all of the writing. I also wrote the code for the simulation, windows, saving and tests, with Claude. Uluç Kaymak made the AI Core’s look and sound.
The loop: make tokens, feed the AI, buy the fix for the bottleneck in front of you, meet the next one. When a machine falls behind, files pile up in front of it, so the desktop is also the diagnostic screen. The design rule was keep it dead simple.
The player progresses from manual input to automated production.
New machines start slow on purpose, so the player tires of carrying before tuning the line.
A line up close, and the late game
Playtesting changed the prices and progression.
| Before | What showed it | After |
|---|---|---|
| Every price ×1.5 per step | A real play log: 66% of 2.52 million Tokens unspent at minute 140 | Price ladders that steepen as they climb: ×2.5, then ×3.5, then ×4.5. The model leaves 2.4% unspent |
| The Folder Cannon cost 500 Tokens when it unlocked | Play notes: ten minutes with nothing to buy | Prices tied to the wallet. Cannon 120, first tier 13 minutes shorter |
| A tutorial scene and a reward window every level | Five real play logs: unlocking, affording, buying, placing and using a machine came minutes apart | One help card tied to the real action, one quiet receipt per level |
Three more changes
| Before | What showed it | After |
|---|---|---|
| Carriers dropped extra files at a full machine | QA script: 16 to 19% of 526 tokens scattered in ten minutes | Carriers wait. No files lost |
| A passable review sat unclaimed for 14 minutes | A real play log | A red “!” in My Quests |
| Late game at 33 fps, 2,856 draw calls | Profiling: one folder window rebuilt 480 times a second | 60 fps, 706 draw calls |
I compared a player model with real play logs.
The target is twelve reviews in about four hours. To test a build without finding a new playtester each time, I built a player model from my own 140-minute play log:
| What the real log showed | In the model |
|---|---|
| A median of 3.0 seconds between clicks in a buying burst | Clicks every 3 seconds |
| A median of 33 seconds from a notification to the first purchase | Opens the shop 30 seconds after a notification |
| A shop visit with no notification about every 7 minutes | Checks the shop every 7 minutes |
| Another Data.exe bought when it cost up to about 4 minutes of income | Buys one when the price is at most 5 minutes of income |
- Player model
- My play
The September 2026 build. The model lands within about ten minutes of my play at six of eight reviews. The last two drift because the model ran on the new prices and my play did not.
The numbers
| Review | Player model | My play |
|---|---|---|
| 13→12 | 24:57 | 35:35 |
| 12→11 | 49:00 | 48:04 |
| 11→10 | 54:56 | 60:19 |
| 10→9 | 70:07 | 72:54 |
| 9→8 | 107:37 | 106:33 |
| 8→7 | 123:51 | 118:16 |
| 7→6 | 161:25 | 122:22 |
| 6→5 | 181:49 | 126:23 |
It also found an AI level-up gift that blocked the line for 48 minutes.
Later builds pulled the early game forward. On one of them almost every level handed the player a new machine, so I put short levels between them. Each machine now arrives a little later, on purpose:
| Before | After | |
|---|---|---|
| Folder Cannon placed | 6:32 | 7:31 |
| Loader placed | 7:51 | 10:01 |
| Sweeper placed | 9:39 | 12:51 |
| First review, 13 → 12 | 8:51 | 11:01 |
| ZIP opens, 12 → 11 | 20:14 | 22:21 |
One 60-minute run of the model, before and after. Later reviews are not re-measured on that build yet.
Employee reviews unlock the next stage of production.
Employee Level is a rank from 13 down to 1, and a review is the exam for the next rank. It watches the line for 60 to 120 seconds and checks only the result. Failing costs nothing. Each tier of the economy opens after a review.
All twelve reviews
| Review | Asks for | Unlocks |
|---|---|---|
| 13 → 12 | FIRST AUTOMATION: one minute of machine delivery. “Deliveries by hand are appreciated, not counted.” | A second Data.exe |
| 12 → 11 | EVERY TAP SERVED: steady delivery, little junk | ZIP |
| 11 → 10 | FIRST ZIP: ZIPs delivered by machine | Mass Coupling: file part of a line into a folder |
| 10 → 9 | CLEAN DESKTOP: at most 60 loose files | RAM |
| 9 → 8 | FIRST RAM: RAM delivered | File Crawler, a storage machine |
| 8 → 7 | THE DEPOT: more RAM, a clean desk | SharedMem.exe, a 58-node upgrade board |
| 7 → 6 | QUALITY CONTROL: average quality 4 or more | Folder Templates: saved folders to place again |
| 6 → 5 | DEPARTMENT EXAM: “Nothing new is asked; everything is asked for more.” | CPU |
| 5 → 4 | FIRST CPU: CPU delivered | CPU Override |
| 4 → 3 | ASSET UTILISATION: five RAM a second by machine | Rotary Grabber, a slow arm that carries one file |
| 3 → 2 | THE AI’S NEW DIET: CPU fed by machine | |
| 2 → 1 | FULL AUDIT: “Every figure, at once.” | “There is nothing above this.” |
Review numbers from the RAM tier on are still placeholders.
Delivery size and upgrades determine the player’s income.
- DataBy hand, then the first machines.
- ZIP5 Data make 1 ZIP. Opens after review 12 → 11.
- RAMMoney and AI food. Opens after review 10 → 9.
- CPUMoney, food and a speed boost. Opens after review 6 → 5.
Each delivery pays Tokens. The AI levels up on what a delivery contains, and Tokens also get a multiplier for its size, so tuning payouts never moves the AI’s levels.
Bigger deliveries pay more. A delivery’s total weight sets its multiplier, from ×1.00 up to ×9.00.
Only the Folder Cannon delivers in one batch, so only the Cannon earns it. A salvo of 25 ZIPs used to go past the top of the ladder, and every later capacity card bought nothing. Now 25 loose tokens pay ×2.25 and 25 ZIPs pay ×9.00, so packing stays worth it. A validator checks that splitting a delivery never pays more.
Prices are tuned to the measured wallet at each unlock. A first-tier machine costs what the player holds then plus 30 seconds of income. A card that clears a jam costs two to three minutes.

The multiplier ladder, and more of the shop
Data weighs 1, RAM 3, ZIP 8 and CPU 10. RAM and CPU weights are set by hand: at its content value a single RAM landed in the ×2.6 bracket, and capacity cards stopped mattering.
| Delivery weight at least | Pays |
|---|---|
| 1 | ×1.00 |
| 2 | ×1.10 |
| 3 | ×1.20 |
| 5 | ×1.40 |
| 8 | ×1.60 |
| 10 | ×1.70 |
| 12 | ×1.80 |
| 20 | ×2.10 |
| 25 | ×2.25 |
| 50 | ×2.60 |
| 100 | ×3.00 |
| 200 | ×9.00 |
There are no tooltips. The game talks through Windows 98 tray balloons and taskbar badges.

Colleagues’ letters carry the story through the working day.
The AI never speaks, and the mail treats it as something hungry. Four colleagues write to the player, and each challenges them to a timed contest. Nobody says that automation is making the staff unnecessary too.
The four colleagues and five lines from the mail
- Harriet Voss, Data Processing: warm, fast by hand, signs off with (:
- Mr. Pell, Logistics: one sentence at a time, a record “since 1997”.
- Dana Kroll, Facilities: by the book, copies HR on every letter.
- Unit 11-K, Compliance: writes in capitals, and is a machine.
“UNIT 11-K IS AN EMPLOYEE. THIS HAS BEEN VERIFIED.”
Unit 11-K, asked “Are you a person?”
“The record is yours. The parrot came with the record. It will not leave.”
Mr. Pell, after the player wins his contest
“Facilities cleared desk 2C1 today. The inventory says it has been empty since 1997.”
Mr. Pell, about his own desk, at Employee Level 2
“I looked at the building’s staff list the other day and my name wasn’t on it. It must be a mistake (:”
Harriet, at Employee Level 1
“Desk 9F0 has been recycled. It was untidy. I am writing from the Recycle Bin’s queue until HR finds me a folder. HR has been copied.”
Dana, at Employee Level 2
These tools support the implementation and balance work.
Team, engine, code, tests and AI use
Uluç Kaymak made the shader and animations of the AI Core, the AI’s glowing drop zone, the delivery and AI Core sounds, the cursors and the desktop colour. He also tuned the ripple and CRT shaders and fixed the Start menu and window layout.
- Godot 4.7, GDScript, on a Windows 98 UI template. About 52,000 lines of game code and 44,000 of tests, 1,411 automated tests in all.
- The simulation is the authority. Windows only display it. Each file has one ID and one owner, so nothing is lost or duplicated.
- Numbers and formulas apart: balance in resource files, formulas in one script, 1,525 text keys in one sheet.
- Headless reports give each card’s unlock and payback minute, and which stage limits the line at each minute.
- Performance: a late-game pass took the frame rate from 33 to 60 fps.
- Playtests: an in-game form sends the event log and save.
- Trailer: the game records its own shots at 2560×1440, and Python scripts cut them with ffmpeg.
- AI use and bought assets. I wrote code with Claude. The icon sheets were made with an image generator, and the Desktop Pal sprites come from bought pixel-art packs. The 12 languages were translated with LLMs and edited by a translator at InEv.





