My Selected Works

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.

Data.exe key art. Old Windows-style windows, gears, folders and memory chips swirl around the game's logo.
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
  1. I designed the automation economy and its progression.
  2. The player progresses from manual input to automated production.
  3. Playtesting changed the prices and progression.
  4. I compared a player model with real play logs.
  5. Employee reviews unlock the next stage of production.
  6. Delivery size and upgrades determine the player’s income.
  7. Colleagues’ letters carry the story through the working day.
  8. 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.

1:44 · Sound on
ZIP lines and Folder Cannons feeding the AI. Every file carries a quality grade, and fold/sec on the HUD is quality-weighted data delivered per second.

The player progresses from manual input to automated production.

By hand: hold E in the Data.exe window, drag the tokens to the AI.
The first machines take over the carrying.

New machines start slow on purpose, so the player tires of carrying before tuning the line.

A line up close, and the late game
A close view of a Data-tier line: a Loader with its Source and Target lines drawn on the desk, a Folder Cannon firing a salvo of files into the Artificial Intelligence, a Pusher, a Sweeper and the Recycle Bin.
A Loader wired from source to target, and a Folder Cannon firing its load into the AI.
Late game: several lines running at once.

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
Minute of play at which each review was passed
  • Player model
  • My play
06012018013→1212→1111→1010→99→88→77→66→5ReviewMinute of playPlayer model: 24:57Player model: 49:00Player model: 54:56Player model: 70:07Player model: 107:37Player model: 123:51Player model: 161:25Player model: 181:49My play: 35:35My play: 48:04My play: 60:19My play: 72:54My play: 106:33My play: 118:16My play: 122:22My play: 126:23Player modelMy 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
ReviewPlayer modelMy play
13→1224:5735:35
12→1149:0048:04
11→1054:5660:19
10→970:0772:54
9→8107:37106:33
8→7123:51118:16
7→6161:25122:22
6→5181:49126: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.

0:34 · No sound
A September 2026 build. The requirements fill, then the stars and the Auditor's letter. Its reward, the File Magnet, was later removed.

Delivery size and upgrades determine the player’s income.

  1. DataBy hand, then the first machines.
  2. ZIP5 Data make 1 ZIP. Opens after review 12 → 11.
  3. RAMMoney and AI food. Opens after review 10 → 9.
  4. 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.

Upgrades.exe showing ZIP upgrade cards, and below them the RAM modules marked RESTRICTED with a Request Employee Level 9 button.
The shop, Upgrades.exe, shows RAM before the review that opens it.
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
Each card names a problem and its fix: “One file a drag is slow. Carry more files in one drag.”

There are no tooltips. The game talks through Windows 98 tray balloons and taskbar badges.

A Zip Creator's Properties window beside Upgrades.exe, with CPU Override running and a throughput graph.
CPU Override: one CPU speeds a machine's job by 25% for five minutes.

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.
More screenshots

Click the picture to zoom · click outside to close