Showcase
SPEDITION
A management game about a haulage business switching to electric. You build a fleet, run tours, make or lose money. Thirty seconds in, you get it, without me explaining anything. That was the brief I set myself: if I want to make electrification tangible, the tool must not need a manual.
The real motivation went further. From the outside, running a haulage business looks simple: you move goods from A to B and get paid for it. The game shows the other truth. Alongside the switch to electric, which stays the main thrust, it maps the sober economic reality most hauliers actually work in. That is why the economics are built in hard, not as scenery.
Browser, no backend. 16 modules, roughly 5'900 lines of TypeScript, with simulation, interface and reference bot kept strictly apart. 353 KB, loads nothing from third-party servers, stores nothing, sets no cookies.
12 playable years, 2019 to 2030. From diesel operation through CO2 road tolls and subsidy windows to the question of whether the business still carries itself at the end.
Calibrated, not guessed. Every balancing decision is checked against roughly 15'000 simulated operating weeks, 24 full runs of twelve years each, with a fixed random seed so two strategies can be compared under identical market conditions. 30 versions in six weeks.
Play SPEDITION →Runs in the browser, no sign-up. The game is available in German only.
Where you can see how I think
Five decisions that shaped the game, each with the price it cost.
The margin deliberately calibrated low
I designed the game around a realistic EBITDA of roughly ten to twelve percent, so that normal play leaves two to four percent margin at the end. Up to eight is possible if you are genuinely good, but that is not the normal case. And you can slip into a loss very quickly if you are not paying attention. A game that tempts you with fantastic profits would falsify the actual hardness of a business where every cent per kilometre counts.
The model punishes short-term decisions
You can make moves that look good at first but are thought through only for the short term, and that end up producing a negative operating result. That is deliberate. The economic reality of a haulage business does not reward the quick win, it rewards the considered decision, and that is exactly what you should feel in your own result.
No AI opponent, an abstract market instead
I could have built a simulated competitor reacting to every move. I dropped it. The price would have been a complexity that distracts from the actual point: your own decision about when and how to switch. Competition is there, but as a frame, not as a fellow player.
Truck generations rather than individual models
Real vehicle models would have turned the game into a data maintenance project and would have aged badly. Generations, meaning what the technology can do at that stage, stay understandable and do not age.
Software as a passive upgrade
You buy it, it works, done. I deliberately avoided building software as an active move you have to keep operating. The point is that software works in the background of a real operation, not that you click around in it.
An AI player that tests the game against itself
To calibrate it I built an AI player that plays SPEDITION on its own. It actively tries different paths: what do I have to do, and when, to win outright, what to just scrape through, what sends the business under. That shows me whether the balance holds, whether the realistic band of outcomes survives, and whether every outcome actually has a route that gets you there. The real lever is volume: the player gets through any number of games in no time, thousands of them if that is what it takes. By hand it would be impossible.
Watch a round, but not a thousand
You can start the AI player inside the game and watch it play a round. Running it thousands of times stays with me as the developer, and deliberately so: if that were public, it would be an easy way to outsmart the game.
Built together, with the work split clearly
The game was built alongside an AI model, and the division of labour was clear. The reality checks came from me, out of practice: a yard does not have 150 kW of grid connection sitting there. No haulier pays 55 cents for public charging. The switch does not pay off by tightening costs, it pays off through the order book, once the lucrative tenders start asking for electric. The implementation in the model and the systematic checking came from the AI, through the simulation player, which exposed where the numbers only looked like progress and were in fact scatter: across forty runs the median moved by forty thousand euros, and several supposed improvements turned out to be worth nothing.
Why the AI stays in its box
Cases like that are exactly why I steer the AI deliberately instead of letting it run and hoping for the best. The simulation player is the check above the AI, not a replacement for it. Anything meant to be reliable has to stay verifiable, and verifiable means guided.